Задать вопрос
  • Как правильно построить n-layer архитектуру приложения ASP.NET MVC?

    @kttotto
    пофиг на чем писать
    В отдельный слой следует выделять только то, что подвержено изменениям при поддержке, либо будет использоваться как компонент еще где-то. Стандартно это ui/web, dal, business-logic. Иногда в отдельный слой выносят модели, т.к. они могут использоваться как промежуток между разными слоями, особенно если это dto модели.
    Ответ написан
    Комментировать
  • Как правильно асинхронно загрузить файл?

    @kttotto
    пофиг на чем писать
    Это асинхронная загрузка. Ajax по умолчанию делает асинхронны запросы, если сами не сделаете async: false. Проверить асинхронность легко, страница не должна блокироваться во время запроса.
    Ответ написан
    Комментировать
  • Как найти все границы объектов, описанных попиксельно?

    @kttotto
    пофиг на чем писать
    Если это двумерный массив, где каждый пиксель имеет координаты, то почему бы не взять из каждой строки индексы первого черного и последнего черного.

    На C# это выглядело бы так
    var arr = new bool[100][];
    var contour = new List<List<int>>();
    
    for (var y = 0; y < 100; y++)
    {
    	var firstX = Array.IndexOf(arr[y], true);
    	var lastX = Array.LastIndexOf(arr[y], true);
    
    	if(firstX != -1)
    		 contour.Add(new List<int> { firstX, y });
    
    	if (lastX != -1)
    		 contour.Add(new List<int> { lastX, y });
     }
    Ответ написан
  • Как в браузере на C# подвязаться к значениям содержимого?

    @kttotto
    пофиг на чем писать
    MSD в принципе все рассказывает здесь. Внизу страницы есть такой абзац, обратите на него внимание:

    Также можно управлять содержимым веб-страницы через Document свойство, содержащее HtmlDocument объект, который предоставляет управляемый доступ к объектной модели документов HTML (DOM) для текущей страницы. Это свойство полезно, когда используется в сочетании с ObjectForScripting Свойства, чтобы реализовать двусторонний обмен данными между кодом приложения и динамический код HTML (DHTML) в веб-страницы, позволяющей объединять веб-элементы управления и элементы управления Windows Forms в единый пользовательский интерфейс. Можно использовать Document для вызова методов сценария кода из приложения.

    Дальше переходите по ссылке сюда, чтобы глянуть как работать с HtmlDocument и находим там методы для доступа к dom элементам: GetElementById(String), GetElementsByTagName(String). Собственно там достаточно методов чтобы узнать нужные значения со страницы.
    Ответ написан
    Комментировать
  • C# - Как можно сравнить время(DateTime)?

    @kttotto
    пофиг на чем писать
    var periodFrom = new DateTime(2017, 10, 5, 11, 30, 0);
    var periodTo = new DateTime(2017, 10, 5, 12, 30, 0);
    var periodNow = DateTime.Now;
    if (periodNow > periodFrom && periodNow < periodTo)
    {
    	Console.WriteLine("between");
    }
    	else
    {
    	Console.WriteLine("not between");
    }
    
    // 	timeFrom и timeTo выбирай вариант какой нужен
    var timeFrom = periodFrom.TimeOfDay;
    var timeTo = periodTo.TimeOfDay;
    
    var timeFrom1 = new TimeSpan(11, 30, 0);
    var timeTo1 = new TimeSpan(12, 30, 0);
    
    var timeNow = DateTime.Now.TimeOfDay;
    if (timeNow > timeFrom1 && timeNow < timeTo1)
    {
    	Console.WriteLine("between");
    }
    else
    {
    	Console.WriteLine("not between");
    }
    Ответ написан
    6 комментариев
  • Как сменить формат даты в C#?

    @kttotto
    пофиг на чем писать
    var date = DateTime.Now;
    Console.WriteLine(date.ToString("yyyy-MM-dd"));

    Подробно о форматировании даты
    Но s у Вас типа string, поэтому его надо сначала привести к DateTime:
    DateTime.Parse(s);
    или надежнее
    DateTime date;
    var result = DateTime.TryParse(s, out date);
    if(result)
    {
        var dateFormat = date.ToString("нужный формат");
    }
    Ответ написан
    Комментировать
  • Как обеспечить автономность программы от сервера?

    @kttotto
    пофиг на чем писать
    Если хотят учесть такие случаи, обычно используют очереди, готовые или самописные. Прежде чем отдать на сервер, документ в очередь, есть конект - очередь двигается, нет - очередь растет. Не в курсе предметной области, но если важен порядок нумерации, то может стоит нумерацию перенести на сервер? Сервер получил и сам пронумеровал исходя из каких то метаданных, которые придут с документом.
    Ответ написан
    Комментировать
  • Оператор || и == не может применятся к операндам типа стринг и инт?

    @kttotto
    пофиг на чем писать
    C# строготипизированный язык, это не js. Поэтому сравнить можно только строку со строкой и инт с интом.
    Ответ написан
    Комментировать
  • Какие технологии .NET стоит изучать сейчас?

    @kttotto
    пофиг на чем писать
    Зря Вы так о WPF ) Десктоп востребован до сих пор, загляните в вакансии. Но самое востребованное web конечно. Выше постом правильный список и приоритеты там как есть, упустили только мобильную разработку xamarin, но я это на последнее место поставил бы.

    Я бы посоветовал в web. Вакансий много, работы много, разработчиков не хватает.

    И еще плюсану за комент Толстый Лорри.
    Ответ написан
    1 комментарий
  • Обновление модального окна при его последующем открытии Modal Bootstrap?

    @kttotto
    пофиг на чем писать
    У бутстраповского модального окна есть ряд тригеров: перед открытием окна show.bs.modal, после открытия shown.bs.modal, перед закрытием окна hide.bs.modal, после закрытия hidden.bs.modal.

    Обработайте событие hidden.bs.modal
    $('#myModal').on('hidden.bs.modal', function () {
      // здесь .modal-body в дефолтное состояние
    })

    Подробнее здесь
    Ответ написан
  • Как с помощью атрибутов применить метод ко всем другим методам класса на C#?

    @kttotto
    пофиг на чем писать
    c# custom attribute example

    Ну если и это не поможет, то есть класс Attribute, от которого надо отнаследоваться и сделать свою реализацию.
    public class MyCustomAttribute: Attribute
    {
        public string SomeProperty { get; set; }
    }

    Затем использовать
    [MyCustom(SomeProperty = "foo bar")]
    public class Foo
    {
    
    }
    Ответ написан
    Комментировать
  • Как написать метод, который будет выполняться перед каждым другим методом?

    @kttotto
    пофиг на чем писать
    Создаете свой атрибут, где внутри будет отрабатывать Ваш метод А и декарируете методы B,С,D,E этим атрибутом. Каждый раз, перед тем как метод будет запускаться, сначала отработает тот, что в атрибуте.
    Ответ написан
    7 комментариев
  • Можно ли в одну ячейку SQL записать несколько FOREIGN KEY?

    @kttotto
    пофиг на чем писать
    Теоретически Вы можете в одно поле запихнуть весь список id записей, как строку, как массив и т.д., но это очень плохой подход. Я так понимаю, что Вам нужна связь многие-ко многим: должна быть таблица, в которой в одной колонке будет id "этапов", а второй соответствующие этим этапам id документов.
    Ответ написан
    1 комментарий
  • Почему unsafe код небезопасен и его редко используют в C#?

    @kttotto
    пофиг на чем писать
    Ваша задача нормально решается и без unsafe кода, без костылей и наворотов. Просто мыслить в терминах C++ и писать код на C# не совсем сопоставимо. Если хотите менять непосредственно значения, есть передача значений по ссылке, есть out и ref параметры, для 150 однотипных значений есть массивы, есть списки (и для разнотипных) . Просто нужно подумать в рамках идеологии C#.

    Хотя мне не совсем понятна проблема изменить переменные в классе и зачем для этого писать 150 методов. Класс это же объект, который передается по ссылке. Передав объект, Вы будете менять эти переменные у объекта как хотите. Если хотите передать куда-то непосредственно поле класса типа int и хотите, чтоб оно изменилось там, то передайте его как out/ref параметр.
    Ответ написан
    8 комментариев
  • Как зная частоту процессора определить скорость выполнения функции?

    @kttotto
    пофиг на чем писать
    Нет. Процессор, среда исполнения постоянно оптимизируют время выполнения на основе кучи нюансов, на основе предсказаний. Даже на одном железе можно говорить только о каких то средних показателях, запустив в разное время можно получить результат отличающийся в 2-3.
    Ответ написан
    Комментировать
  • ASP.NET MVC не выводит "Hello World"?

    @kttotto
    пофиг на чем писать
    Код в вопросе надо показывать полностью. У Вас в проекте
    using Microsoft.AspNetCore.Mvc;
    namespace PartyInvites.Controllers
    {
        public class HomeController : Controller
        {
            public class HomeContoller : Controller
            {
                public ContentResult Index()
                {
                    return Content("Hello world");
                }
            }
        }
    }

    Вы в класс засунули еще один класс. В C# такое разрешается, поэтому никаких ошибок он не дает. Но метод Index в этом случае не отработает. Я исправил вот так
    using Microsoft.AspNetCore.Mvc;
    namespace PartyInvites.Controllers
    {
        public class HomeController : Controller
        {
    		public string Index()
    		{
    			return "Hello world";
    		}
    	}
    }

    И у меня все замечательно отработало.
    59cd0738318f7344163527.png
    Ответ написан
    1 комментарий
  • Boostrap скрипты во вкладках и слайдере прогружаются в последнюю очередь?

    @kttotto
    пофиг на чем писать
    А Вы видели что при каждом клике слайдера в консоль ошибка летит?
    Index.html:43 Uncaught TypeError: $(...).animate is not a function
        at HTMLAnchorElement.<anonymous> (Index.html:43)
        at HTMLAnchorElement.dispatch (

    Надо разбираться почему $('html, body') не имеет функции animate(). Могу предположить, что не хватает каких-то библиотек jQuery.
    Ответ написан
    3 комментария
  • Несколько элементов в ячейке БД ASP.NET?

    @kttotto
    пофиг на чем писать
    Трудно понять, что именно Вы хотите. Вы лучше саму задачу расскажите.

    В какой таблице надо сделать ссылку на пользователя? UserID это и есть ссылка, зачем ее заменять?
    Что значит сделать несколько юзеров в одной ячейке? Наверное Вы имеете ввиду связь один-ко многим или многие-ко многим? Непонятно какую таблицу с какой и какой связью связать хотите.

    Вы показываете БД, а Вы же наверное через EF делаете, покажите модели. Или Вам надо показать модели в коде как будут выглядеть? В общем ничего не понятно)

    Продолжение:
    Из комментариев я так понял, что Вы хотите знать как будут выглядеть модели в коде для EF. И еще раз посмотрев на Ваши таблицы, я понял, что Вы их не совсем верно составили.

    В таблице User поле Balance, по всей видимости должен был указывать на таблицу Balance. В таком случае его надо было назвать BalanceId. Но опять таки, только для случаев, если у пользователя может быть только один баланс. Тогда в таблице Balance было не обязательно указывать на пользователя UserId.

    Я примерно накидал как это будет в C#
    public class User
    	{
    		public int Id { get; set; }
    		public string Login { get; set; }
    		public string Password { get; set; }
    		public string FirstName { get; set; }
    		public string LastName { get; set; }
    
    		public virtual IEnumerable<Event> Events { get; set; } 
    		public virtual IEnumerable<Balance> Balances { get; set; }
    
    		public User()
    		{
    			Events = new List<Event>();
    			Balances = new List<Balance>();
    		}
    	}
    
    	public class Event
    	{
    		public int Id { get; set; }
    		public string Name { get; set; }
    		public DateTime EndTime { get; set; }
    
    		public virtual IEnumerable<User> Users { get; set; }
    
    		public Event()
    		{
    			Users = new List<User>();
    		}
    	}
    
    	public class Balance
    	{
    		public int Id { get; set; }
    		public decimal Amount { get; set; }
    
    		public int UserId { get; set; }
    		public virtual User User { get; set; }
    	}

    Обратите внимание, что пользователи связаны с балансом как один-ко многим: один пользователь может иметь много счетов, но счет может иметь только одного пользователя. А события с пользователями связаны как многие-ко многим, т.е. один пользователь может быть прикреплен ко многим событиям и в одном событии может участвовать много пользователей. Для такой связи EF создаст дополнительную таблицу.

    Вообще, мой совет, не кидайтесь сразу в код, почитайте базу по БД и EF или вот хотя бы от сюда
    Ответ написан
  • Каким способом в .NET Core рекомендуется заполнять мастер страницу (_Layout.cshtml) динамическим контентом?

    @kttotto
    пофиг на чем писать
    Инжектить можно прямо на странице
    @inject ModelOrService ModelOrService;
    И в принципе в этом случае это может быть сервис, который будет работать с бд.

    Но когда мне надо в шаблоне сделать вывод динамик контента, я это реализую в js. Или важно это решить именно Разором.
    Ответ написан
    1 комментарий
  • Как проверить есть ли в массиве string симвоы 2 или 3 или 4 ... или 9?

    @kttotto
    пофиг на чем писать
    Отсеять или чем-то заменить - есть метод Replace()

    Соответственно
    result.Replace(num, string.Empty)
    Но т.к. этот метод делает замену только одного значения за раз, то придется либо сделать несколько раз Replace(...).Replace(..)... , либо написать свой метод, который сделает это в цикле. Какой-нибудь экстеншн:
    public static class StrExtantion
    	{
    		public static string ReplaceDigits(this string str, IEnumerable<int> digits)
    		{
    			var temp = string.Copy(str);
    			foreach (var digit in digits)
    			{
    				temp = temp.Replace(digit.ToString(), string.Empty);
    			}
    			return temp;
    		}
    	}

    А потом его использовать:
    var binResult = result.ReplaceDigits(Enumerable.Range(2,8))

    Но можно и одной строчкой сделать:
    string temp = string.Copy(result); 
    Enumerable.Range(2, 8).ToList().ForEach(x => temp = temp.Replace(x.ToString(), string.Empty));
    Console.WriteLine(temp);
    Ответ написан