• Есть ли смысл использовать byte, если в операция конвертирует в int??

    @kttotto
    пофиг на чем писать
    Уменьшать размеры переменных стоит только если Вы их будете где-то хранить в бд, на жестком и эти данные могут хорошо разрастить. Если же все работает в памяти, то действительно, нет смысла такой конвертации, для машины самый удобный тип для работы, это int, и большинство примитивных типов он неявно будет приводить к нему. Действительно, есть рекомендации не использовать без надобности типы shot, ushot и т.д., т.к. внутри они всеравно приводятся к int.

    В дополнение пара ссылок: сюда и сюда

    И цитата из них
    следует отметить, что в C # все арифметические выражения производятся на int. Это означает, что вам нужно будет увеличить число байтов до типа int, чтобы выполнить вычисления на них
    Ответ написан
    Комментировать
  • Зацикливание при загрузке связанной сущности, как исправить?

    @kttotto
    пофиг на чем писать
    Попробуй вместо Include использовать Load
    Ответ написан
  • Как привести Date обьект js в DateTime формат C#?

    @kttotto
    пофиг на чем писать
    К Вам приходит дата с учетом часового пояса. Тип DateTime часовой пояс не учитывает, значит Вы будете терять время при приведении. Если время зависит от локали и часовой пояс необходим, то принимать время нужно в формате DateTimeOffset (ну или приводить к нему, если принимаете строку), тогда время теряться не будет.
    Ответ написан
  • Как изменить сниппет в Visual Studio?

    @kttotto
    пофиг на чем писать
    Вообще в студии форматирование настраивается
    Tools > Options > Text Editor > C# > Code Style > Formating
    Ответ написан
    2 комментария
  • Как в NewTonSoft задать схему десериализации ответа?

    @kttotto
    пофиг на чем писать
    Думаю, что ошибка в строке
    string json2 = @"{['Шляпа','Кепка']}";
    Все, что в фигурных скобках - это объект, но у Вас массив. Попробуйте
    string json2 = @"['Шляпа','Кепка']";
    Ответ написан
    1 комментарий
  • Ошибка при компиляции visual studio (На картинке)?

    @kttotto
    пофиг на чем писать
    У Вас в сообщении все написано, для запуска не может найти экзешник, который получается после сборки проекта и лежит в папке bin проекта. Если Вы не лазили руками в настройки проекта, то могу предположить, что Вы пытаетесь запустить проект, предварительно не собрав его. Сделайте руками ребилд проекта и посмотрите, что по указаному в сообщении пути есть экзешник Вашей сборки. Если экзешника там нет, значит:
    1) Проект не собирается по какой то причине, возможно банально ошибки в коде
    2) Вы добавили в решение проект, который не предполагает запуска, например проект библиотеки.
    3) Каким то образом Вы изменили настройки проекта и экзешник лежит не там, где студия его ищет.
    Ответ написан
    Комментировать
  • .NET Core Web Api EF Как сделать группировку значений в запросе?

    @kttotto
    пофиг на чем писать
    GroupBy по сути Вам вернет массив массивов, к List привести Вы его не сможете, можете привести к Dictionary, например
    var orders = db.Orders
                    .Where(x => x.Kod == kod)
                    .GroupBy(x => x.Nomenklatura)
                    .ToDictionary(x => x.FirstOrDefault().Nomenklatura, x => x.ToList() )

    тогда получить сгруппированное можно по ключу
    orders["anyNomenklatura"]
    и там будет список
    Ответ написан
  • Как сделать insert в базу при выполнении определенного условия?

    @kttotto
    пофиг на чем писать
    Если правильно, то никак. Это логика предметной области, бд не должна этим заниматься. Если клиент заказал бутылку воды, а через пять мин решил, что одной мало и решил заказать еще одну, то по Вашей логике, заказ не будет принят. Такие вещи решаются на уровне колцентров.
    Если же Вы хотите защититься от спама заказов, то это всеравно не решатся уровнем бд. Это настройки Ваших серверов и работников бэкенда, по ip или по логину ограничивается количество заказов в минуту.
    Ответ написан
    Комментировать
  • Как получить данные json в контроллере?

    @kttotto
    пофиг на чем писать
    FromBody может быть только один из параметров метода контроллера. И обычно это сложный тип, нет смысла отмечать им примитивы. Проверьте, есть ли вообще параметр в теле запроса: поставьте брейк поинт на самое начало метода и провалитесь в this.Request.Body, посмотрите чьи там параметры. Я предполагаю, что там в лучшем случае будет List. Попробуйте так (string id, [FromBody] List roles). Если так не сработает, то тогда нужно сделать так, как сказала Даша Циклаури.
    Ответ написан
    Комментировать
  • Почему хэйтят jQuery?

    @kttotto
    пофиг на чем писать
    jQuery будет жить еще долго. И вовсе не потому, что есть упоротые, которые используют только его, а потому, что он способен быстро решить ряд задач и даже в тех случаях, когда рядом фронт-фреймворк. Полностью от него отказываются такие же упоротые. И его использование вовсе не зависит от размера проекта, а зависит от тех задач, которые надо решить.
    Ответ написан
    Комментировать
  • Можно ли объявлять делегат в одном классе (методы там же), а создавать переменную, присваивать адрес метода, вызывать в другом классе?

    @kttotto
    пофиг на чем писать
    Есть такое понятие, как "область видимости". Если тип делегата внутри класса, то получить его можно только через экземпляр этого класса, т.е. через объект типа это класса. Чтобы иметь возможность создать делегат в другом классе, надо либо сам делегат вынести из него, либо, как я уже говорил, обратиться к экземпляру класса.
    Ответ написан
    6 комментариев
  • Обработка клика по текущему элементу класса?

    @kttotto
    пофиг на чем писать
    Для кода $(".show-some").click() вы кликнули на все элементы, где есть класс show-some. Поэтому остается только проверять по дополнительным признакам: либо по каким то контейнерам, если они уникальные, либо добавлять во все эти элементы какие- то data-value="123".

    Ну есть еще вариант
    $(".show-some").each(function (index, value) { $(this).click(function(){ .... }))

    Тогда у каждого show-some будет свой обработчик.
    Ответ написан
    Комментировать
  • Почему не получается отловить value input по ajax для работы скрипта?

    @kttotto
    пофиг на чем писать
    Событие change срабатывает после потери фокуса инпутом, т.е. когда Вы кликаете вне инпута, только тогда он проверит были ли изменения. Чтобы проверялось непосредственно при вводе, то ловите событие textInput.
    Ответ написан
  • Как кикнуть пользователя в ASP.NET Identity?

    @kttotto
    пофиг на чем писать
    Есть несколько способов:
    1) Если это asp.mvs, то переопределить атрибут Authorize, в ней делать проверку пользователя по какому то полю IsBlackList.
    2) Если это так же asp.mvs, то наверняка Вы поле IsBlackList добавили в Claim, значит авторизацию можно делать на основе Claims и методы помеченные этим атрибутом, будут отсеивать заблокированных. Подробно тут.
    3) Если это asp core, то все тоже самое делается на основе политик безопасности, примеры так же тут.
    4) Но как по мне, то самый простой способ, это при блокировке менять роль пользователю и соответственно контроллеры должны быть помечены теми политиками, в которые не входит роль заблокированного. Этого должно хватить, после блокировки, первый же запрос проверит роль и переадресует на страницу логина.
    Ответ написан
    Комментировать
  • Что такое обход списка? Является ли вывод на экран списка его обходом?

    @kttotto
    пофиг на чем писать
    Сам вывод - нет. Его можно обойти не выводя никакой инфы о нем. Но вывести значения невозможно, не обойдя его.
    Ответ написан
    3 комментария
  • Объект с полями (one-to-many) возвращается со значением null в полях в Entity Framework, как это решить?

    @kttotto
    пофиг на чем писать
    Обратите внимание в документации EF на метод Include(), зачем он нужен и что он делает.
    Если Вам нужно, чтобы при запросе Word, кроме данных самой сущности, еще подтянулись зависимые, нужно сделать так
    var word = db.Words.Include(x => x.LearnDay).Where(p => p.Id == testId).FirstOrDefault();
    Ответ написан
    Комментировать
  • Как сделать так чтоб не появлялась ошибка CS7036?

    @kttotto
    пофиг на чем писать
    Ну так а зачем Вы засунули класс наследник внутрь класса Vector?
    spoiler
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    
    namespace laba3
    {
        public class Vektor
        {
            public readonly double x, y, z;
            public Vektor(double x, double y, double z)
            {
                this.x = x;
                this.y = y;
                this.z = z;
            }
    
            //summa
            public Vektor Add(Vektor V)
            { return new Vektor(this.x + V.x, this.y + V.y, this.z + V.z); }
    		
            //raznost
            public Vektor Razn(Vektor V)
            { return new Vektor(this.x - V.x, this.y - V.y, this.z - V.z); }
    		
            public double Length()
            { return Math.Sqrt(x * x + y * y + z * z); }
    		
            public double Length(Vektor V)
            { return (Math.Sqrt(x * x + y * y + z * z) * Math.Sqrt(x * x + y * y + z * z));}
    		
            //skalarnoe proizvedenie
            public virtual double Skalar(Vektor V)
            { return x * this.x + y * this.y + z * this.z; }
    		
            //umnozenie na skalar a
            public  double Uskalar()
            {
                double a = 1;
                return a * this.x + a * this.y + a * this.z;
    		}
            //sravnenie
            public bool Equals(Vektor V)
            {
                if (!(V is Vektor))
                { return false; }
                return base.Equals(V);
            }
    		
            public override string ToString()
            {
                return $"{x} {y} {z}";
            }
    	}
    	
        //класс наследник +переопределение
        class Naslednik : Vektor
        {
            public override double Skalar(Vektor V)
            {
                base.Skalar(V);
                return 2*x * this.x + 2*y * this.y + 2*z * this.z; ;
            }
        }
    	
        public class Demo
        {
            public static void Main()
            {
                
                Vektor A = new Vektor(10, 7, 9);
                Vektor B = new Vektor(3, 5, 7);
                Console.WriteLine("A vektor: x={0},y={1},z={2}", A.x, A.y, A.z);
                Console.WriteLine("B vektor: x={0},y={1},z={2}", B.x, B.y, B.z);
                Console.WriteLine($"Summa : {A.Add(B)}");
                Console.WriteLine($"Raznost: {A.Razn(B)}");
                Console.WriteLine($"The scalar *****: {A.Skalar(B)}");
                Console.WriteLine("Dlina A  :   {0}    ", A.Length());
                Console.WriteLine("Dlina B  :   {0}  ", B.Length());
                Console.WriteLine($"Umnozenie na skalar-Vektor A: {A.Uskalar()}");
                Console.WriteLine($"Umnozenie na skalar-Vektor B: {B.Uskalar()}");
                Console.WriteLine($"Vektor v kvadrate-Vektor A: {A.Length(B)}");
                Console.WriteLine($"Ravni li: {A.Equals(B)}");
    
    
                Console.WriteLine("Press Enter...");
                Console.ReadLine(); // Чтобы программа сразу не закрылась
            }
        }
    }
    Ответ написан
  • Опять начал работать не в той ветке?

    @kttotto
    пофиг на чем писать
    1. Заканчивая работу, посреди монитора клеить стикер - Начинать работу с pull.
    2. Потому что невнимательность. Но в большинстве случаев нет проблем затем перенести коммиты в нужную ветку.
    Ответ написан
  • Как получить роль, начинающуюся с определенных символов?

    @kttotto
    пофиг на чем писать
    Если это Core, то использовать политики, что-то примерно
    public void ConfigureServices(IServiceCollection services)
    {
    	services.AddAuthorization(x => 
    	{
    		x.AddPolicy("RoleStartWith", policy => { 
    				policy.RequireRole(roles.Where(r => r.StartsWith("ad")));
    			});
    	});
    }
    
    [Authorize(Policy = "RoleStartWith")]
    public IActionResult Index()
    {
    	return View();
    }

    Если это, например, MVC5, то можно использовать кастомный атрибут как то так:
    public class CustomAutorizeAttribute : AuthorizeAttribute
    {
    	private string _prefix;
    	private string[] _roles;
    
    	public CustomAutorizeAttribute(string prefix)
    	{
    		_prefix = prefix;
    		_roles = base.Roles.Split(',').Select(x => x.Trim()).ToArray();
    	}
    
    	protected override bool AuthorizeCore(HttpContextBase httpContext)
    	{
    		return _roles.Where(x => x.StartsWith(_prefix)).Any(x => httpContext.User.IsInRole(x));
    	}
    }
    
    [CustomAutorize(prefix = "ad")]
    public IActionResult Index()
    {
    	return View();
    }

    Писал все на коленке в блокноте, руками не проверял, но основная мысль, надеюсь, понятна.
    Ответ написан
    Комментировать
  • Реально в 36-40 лет стать тестировщиком или программистом если есть свободное время?

    @kttotto
    пофиг на чем писать
    Реально. Таких примеров полно. Но все зависит от Ваших способностей. Сумеете год за три съесть инфы и отточить ее руками, т.е. по 15-16 часов в день отдавать новому профилю? Если да, то дальше для работодателя будет важно только Ваше умение писать код как минимум, должно быть портфолио Ваших работ, законченных и еще лучше опубликованных.
    Ответ написан
    Комментировать