Записи с меткой «c#»

Создаем excel документ (c#)

Есть много библиотек, с помощью которых можно создать excel документ. В данной заметке я опишу как использовать библиотеку Epplus. public static class ExcelUtils { public static DataTable ExcelToDataTable(string path) { // https://calmsen.ru/parsim-excel/ } private static void SetDefaultOptions(Dictionary<string, string> options) { if (!options.ContainsKey(«Worksheet.name»)) options[«Worksheet.Name»] = «Лист1»; if (!options.ContainsKey(«Worksheet.TabColor»)) options[«Worksheet.TabColor»] = «Blue»; if (!options.ContainsKey(«Worksheet.DefaultColWidth»)) options[«Worksheet.DefaultColWidth»] = «24»; …

Создаем базовый репозиторий

Для того чтобы контекст бд сохранялся из репозитория в репозиторий, можно сохранять данный контекст в HttpContext.Current.Items и получать его из этого контекста(HttpContext) когда необходимо. Создадим абстрактный базовый репозиторий, который будет содержать данную логику. Наш базовый репозиторий: public abstract class BaseRepository { public DefaultDatabase DbContext { get { return TLS.Get<DefaultDatabase>(«DbContext»); } } } Контекст базы данных создадим …

Собираем статические файлы в dll (asp.net mvc)

Для того, чтобы статические файлы можно было собрать в отдельную библиотеку, нужно у этих файлов поставить свойство «Build Action» в значение «Embedded Resource». После того как все файлы будут находится в отдельной сборке, нужно научить приложение доставать эти файлы из dll. Пусть все статические файлы находятся в папке Content. Например javacript файлы в папке /Content/JS, …

Скрываем публичные свойства, через которых происходит внедрение зависимостей ninject (c#)

Допустим есть свойство, через которое ninject внедряет зависимость [Inject] public IUsersService UsersService { get; set; } И очень хочется скрыть это свойство, так как данное свойство используется только внутри класса. Для этого делаем свойство защищенным или приватным [Inject] proteced virtual IUsersService UsersService { get; set; } И в Global.cs прописываем следующие строки var kernel = …

Реализация паттерна PRG в asp.net mvc

PRG —  post redirect get. Все POST параметры записываются в сессию, и делается редирект на GET. После чего параметры запроса восстанавливают из сессии. Это удобно когда имеются два метода один метод GET который представляет форму, а второй метод POST который сохраняет эти данные . И в случае ошибки делается редирект на форму с уже заполненными неправильными данными. …

Разрешим кросс-доменные запросы (asp.net mvc)

Для того чтобы разрешить кросс-доменные запросы нужно установить заголовок Access-Control-Allow-Origin. Установим заголовок Access-Control-Allow-Origin в web.config <configuration> <system.webServer> <httpProtocol> <customHeaders> <add name=»Access-Control-Allow-Origin» value=»*» /> <add name=»Access-Control-Allow-Headers» value=»Origin, X-Requested-With, Content-Type, Accept» /> </customHeaders> </httpProtocol> </system.webServer> </configuration> Или можно создать атрибут для mvc контроллеров public class AllowCrossSiteJsonAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.RequestContext.HttpContext.Response.AddHeader(«Access-Control-Allow-Origin», «*»); …

Разрешим читать статические файлы с определенным разрешением (asp.net)

Разрешим читать json файлы. Добавим в web.config следующие строчки: <system.webServer> <staticContent> <remove fileExtension=».json»/> <mimeMap fileExtension=».json» mimeType=»application/json» /> </staticContent> </system.webServer> Ссылки: http://stackoverflow.com/questions/22951046/404-not-found-when-i-look-for-json-file-in-asp-net-mvc-app http://www.iis.net/configreference/system.webserver/staticcontent/mimemap

Работаем с xml в c#

Используем класс XmlDocument для работы с xml документом Создаем xml документ из строки var xml = @»<Products xmlns:ons=’http://othernamespace’> <Product Id=’1′>1</Product> <ons:Product ons:Id=’2′>2</ons:Product> </Products>»; var doc = new XmlDocument(); doc.LoadXml(xml); Создаем xml документ из файла XmlDocument doc = new XmlDocument(); doc.Load(@»c:\path.xml»); Создаем xml документ с помощью методов XmlDocument doc = new XmlDocument(); // создаем корневой элемент XmlNode …

Работаем с потоками (c#, .net)

Прочитаем все сразу из потока string content; using(StreamReader reader = new StreamReader(stream)) { content = reader.ReadToEnd(); } Прочитаем построчно из потока List<string> content = new List<string>(); using (StreamReader reader = new StreamReader(stream)) { while (!reader.EndOfStream) content.Add(reader.ReadLine()); } // или content.Clear(); using (StreamReader reader = new StreamReader(stream)) { string line; while ((line = reader.ReadLine()) != null) …

Работаем с pdf ( c#, .net)

В данной заметке будут описаны некоторые методы для работы с библиотекой iTextSharp. Данная библиотека позволяет создавать и изменять pdf документ. создаем документ byte[] pdfDocBytes; using (MemoryStream ms = new MemoryStream()) using (Document doc = new Document()) { PdfWriter.GetInstance(doc, ms); doc.Open(); // do stuff doc.Close(); pdfDocBytes = ms.ToArray(); } задаем фон и размеры для главной страницы …