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

Выполняем get запрос по расписанию c#

Напишем простенькую программу, которая будет выполнять get запрос по истечению определенного интервала времени. class Program { private static Timer _timer; public static void Main() { _timer = new Timer(); _timer.AutoReset = true; // вызываем событие каждый раз по истечении указанного интервала времени _timer.Interval = 300000; _timer.Elapsed += new ElapsedEventHandler(OnTimedEvent); _timer.Start(); Console.WriteLine(«Press the Enter key to …

Выполняем действие по расписанию (asp.net, c#)

Раньше я писал программку, которая выполняла get запрос по расписанию, но так же можно написать обычный HttpModule, который будет делать тоже самое. public class MyHttpModule : IHttpModule { private int _hour = 2; private int _minute = 0; private Timer _timer; private bool _excecuted = false; private static object _lockThis; public void Init(HttpApplication app) { …

Выбираем технологии и инструменты для разработки веб приложений

1 Выбор и настройка инструментов для разработки фронтенда (только самые важные): 1.1 Twitter bootstrap — фреймворк позволяет писать качественную верстку и делать адаптивный дизайн. Сайт можно будет смотреть на разных устройствах. 1.2 requirejs — служит для написания js модулей по принципу amd и для асинхронной загрузки скриптов 1.3 globaljs — позволяет делать локализацию на клиенте. …

Делаем водяной знак на картинке (c#, .net)

Нанесем несколько раз картинку watermark на другую картинку. public void DrawWatermark(string watermarkImagePath, System.Drawing.Image image) { using (System.Drawing.Image watermarkImage = System.Drawing.Image.FromFile(watermarkImagePath)) using (Graphics imageGraphics = Graphics.FromImage(image)) using (TextureBrush watermarkBrush = new TextureBrush(watermarkImage)) { if (image.Width < watermarkImage.Width || image.Height < watermarkImage.Height) return; int x = 0, y = 0; while (y < image.Height) { while (x …

Устанавливаем и настраиваем Ninject

Ninject это IoC контейнер для .NET платформы. Установим его и настроим. Установим ninject с помощью менеджера nuget Создадим класс который создает контейнер и разрешает зависимости всех объектов using System; using System.Collections.Generic; using System.Web.Mvc; using Ninject; using Ninject.Parameters; using Ninject.Syntax; using System.Configuration; namespace WebApp.Infrastructure { public class NinjectDependencyResolver : IDependencyResolver { private IKernel kernel; public NinjectDependencyResolver() { …

Транслитерация на C#

При создании ссылок необходимо транслитерировать русские символы в латинские. Я использую класс позаимствованный по ссылке http://usanov.net/748-transliteraciya-rus-2-lat-na-c, немного переписав его в using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; using System.Text.RegularExpressions; namespace WebApp.Infrastructure { public enum TransliterationType { Gost, ISO } public static class Transliteration { private static Dictionary<string, string> gost = new Dictionary<string, string>(); …

Список перечислений в entity framework

Entity Framework может хранить  перечисления в бд как int. А список перечислений ef уже не умеет хранить, но позволяет создавать сложные типы. Создадим сложный тип, который бы хранил список перечислений в поле int. Создадим абстрактный класс public abstract class Enums<T> : ICollection<T> { public Enums() { List = new List<T>(); } protected List<T> List { get; …

Создаем свои шаблоны в EditorTemplates (asp.net-mvc)

В папке EditorTemplates располагаются шаблоны, которые можно вызывать посредством htmlhelper-ов @Html.EditorFor и @Html.Editor. Создадим шаблон для текстового поля создадим файл Text.cshtml в папке /Views/Shared/EditorTemplates и напишем такие строчки в нем: @{ var classAttr = ViewData[«class»]; var placeholder = ViewData[«placeholder»]; var disabled = ViewData[«disabled»]; var readonlyAttr = ViewData[«readonly»]; var name = Html.NameFor(m => m); var id = …

Создаем класс для хранения данных для рабочего потока (Thred Local Storage)

Иногда есть данные которые хочется сохранить для текущего рабочего потока и многие сохраняют их в HttpContext.Current.Items.  Но такой способ привязывает все приложение к asp.net mvc. Создадим класс TLS(Thread Local Storage), чтобы по возможности можно было использовать ThreadStatic или CallContext, в зависимости от режима TlsMode. public enum TlsMode { HttpContext, ThreadStatic, CallContext } public class TLS : ITLS …

Создаем html при помощи RazorEngine без контроллеров mvc (asp.net-mvc)

Подключаем библиотеку RazorEngine при помощи менеджера пакетов nuget. Пишем метод который на вход принимает путь к представлению и модель, а на выходе отдает html строку public static class RenderViewHelper { public static string RenderPartialToString(string viewPath, object model) { string viewAbsolutePath = MapPath(viewPath); var viewSource = File.ReadAllText(viewAbsolutePath); string renderedText = Razor.Parse(viewSource, model); return renderedText; } public static …