C# работа с файловой системой

// получить список всех файлов во всех директориях начиная с базовой
Directory.GetFiles(dirPath, "*", SearchOption.AllDirectories); 

// получить список всех подпапок для текущей папки
Directory.EnumerateDirectories(dirPath); 

// получить список файлов в текущей папке
Directory.EnumerateFiles(dirPath); 

Получение информации о вызывающем методе с помощью CallerMemberNameAttribute

Иногда нам нужно получить информацию о методе в котором просиходит вызов фунции. Для этого есть аттрибут CallerMemberName - который позволяет получить имя вызывающего метода.

public void SomeFunc([CallerMemberName] string propertyName = null)
{
           Debug.WriteLine(propertyName);
}

MSDN:

https://msdn.microsoft.com/ru-ru/library/s53w0dze(v=vs.110).aspx

Поиск элементов в Selenium C#

Вот несколько селекторов:

 

By.XPath($"//span[contains(text(),'SomeText}')]")
By.XPath($"//a[contains(text(),'SomeText}')]")
By.XPath("//div[3]/a/span")
By.XPath("//div[@id='sidebar']/ul/li/ul/li[3]/div/a/span")
By.LinkText("Some Link Text")
By.CssSelector("#left-drawer-button > i.material-icons")
By.Id("ElementID")

 

Реализация IEnumerable<T>

class MyClass<T> : IEnumerable<T>
{
	#region IEnumerable<T>

	public IEnumerator<T> GetEnumerator()
	{
		List<T> list = new List<T>();
		return list.GetEnumerator();
	}

	IEnumerator IEnumerable.GetEnumerator()
	{
		return this.GetEnumerator();
	}

	#endregion
}

Ошбки путей при минификации CSS средствами Bundle

Иногда бывает ситуация, когда в css используются пути относительные, и после минификации они перестают работать.

чтоб этого избежать можно сделать вот так:

bundles.Add(new StyleBundle("~/bundles/css/dashboard/black") { CdnPath = cdnPath + "bundles/css/dashboard/black" }
.Include("~/content/css/menusprites.css", new CssRewriteUrlTransform())
.Include("~/Content/kendo/kendo.common.min.css", new CssRewriteUrlTransform())
.Include("~/Content/kendo/kendo.dataviz.black.min.css", new CssRewriteUrlTransform())
.Include("~/Content/kendo/kendo.black.min.css", new CssRewriteUrlTransform()));

то есть использую другое правило CssRewriteUrlTransform

 

оригинал:

http://www.telerik.com/forums/asp-mvc-css-minification-breaks-kendo-bootstrap

Использование динамических объектов с динамическими параметрами

В пространстве имен System.Dynamic  есть класс  ExpandoObject - который представляет объект, члены которого можно динамически добавлять и удалять во время выполнения.

 

dynamic foo = new ExpandoObject();
           foo.Date = System.DateTime.Now;
           foo.IsSend = true;

Программное создание или обновление БД для Telerik Open Access

string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        UpdateDatabase(connectionString);

        #region создание\обновление бд
        private void UpdateDatabase(string connectionString)
        {
            using (var context = new MyEntityModel(connectionString))
            {
                var schemaHandler = context.GetSchemaHandler();
                EnsureDB(schemaHandler);
            }
        }

        private void EnsureDB(ISchemaHandler schemaHandler)
        {
            string script = null;
            if (schemaHandler.DatabaseExists())
            {
                script = schemaHandler.CreateUpdateDDLScript(null);
            }
            else
            {
                schemaHandler.CreateDatabase();
                script = schemaHandler.CreateDDLScript();
            }

            if (!string.IsNullOrEmpty(script))
            {
                schemaHandler.ExecuteDDLScript(script);
            }
        }
        #endregion

Определение символа разделителя десятичного числа C#

Для этих целей служит

string separator = System.Globalization.CultureInfo.CurrentCulture
.NumberFormat.NumberDecimalSeparator;

Этим мы получим разделитель для текущей культуры, также оттуда можно получить еще много чего полезного.

http://msdn.microsoft.com/ru-ru/library/system.globalization.numberformatinfo.numberdecimalseparator.aspx