• Как сделать выборку по дате в Entity Framework Core?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    EF говорит, что он не знает, как преобразовать DateTimeOffset.Now в SQL.
    Очевидное решение - получить текущее время в коде и в запросе использовать переменную.
    Ответ написан
    Комментировать
  • Что нужно знать для начала работы с .NET Core?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Ты ведь даже не разобрался, что C# - это язык, а .NET - это просто фреймворк.
    Ответ написан
    Комментировать
  • Каррирование... Что здесь происходит?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Константин, карирование оно не в вызове функции. А в том, что после вызова функции возвращается другая функция, внутри которой есть замыкание на аргумент, переданный в предыдущий вызов.

    Правильно ли я понимаю, что curriedSum(1)(2,3) - здесь в качества a - цифра 1, а в качестве b - (2,3) ? А как же c?

    Eсли смотреть относительно функции sum, то:
    В первых круглых скобка только a = 1.
    Во вторых круглых скобках b = 2 и c = 3.

    А здесь тогда как? curriedSum(1)(2)(3) - где здесь каррирование?

    Первый вызов вернёт функцию, которая "помнит" 1, второй вызов вернёт функцию, которая "помнит" 1+2, ну и третий вызов вернёт сумму 1+2+3.

    То есть эта запись: curriedSum(1)(2)(3)
    Эквивалентна этой:
    let curriedSum = curry(sum); // сделали функцию sum карируемой.
    
    var one = curriedSum(1) // так как sum ожидает 3 аргумента, то этот вызов вернёт функццию, которая помнит 1 и ожидает ещё 2 аргумента.
    var onePlusTwo = one(2) // так как sum ожидает 3 аргумента, то этот вызов вернёт функццию, которая помнит 1 и 2 и ожидает ещё 1 аргумент.
    var result = onePlusTwo(3) // так как sum ожидает 3 аргумента, два аргумента уже помнит функция onePlusTwo и мы передаём третий аргумент, то вернёт результат sum(1,2,3)
    result == 6 // true
    
    // При этом, мы можем в данном случае снова вызвать onePlusTwo, но уже с другим аргументом,
    // и получим соответствующий результат:
    onePlusTwo(7) // вернёт 10, так как onePlusTwo помнит 1+2, то есть получим sum(1,2,7) // 10.

    Вот в чём и состоит смысл карирования. Иметь функцию, которая помнит какое-то значение и не требует каждый раз это значение в аргументах.
    Ответ написан
    Комментировать
  • Почему вовремя ввода определённых чисел воспроизводит - 0 или Nan?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    1. В этой строке
    (a + b + c) / 2
    Будет происходить целочисленное деление, тк сумма a+b+c и 2 имеют тип int.
    Чтобы это исправить, тебе надо написать так:
    (a+b+c)/2.00
    Значение 2.00 имеет тип double и тогда деление пройдёт как ожидается.

    2. При значениях 9 9 19 будет браться корень отрицательного числа (даже если исправить первую проблему), а так как double - это не комплексное число, то и значение такое оно представить не может.

    3. А почему 0 у тебя получается в первом случае - хз. Запускал в консоли и у меня получилось 55.31
    Мой код

    // Запускал в roslynpad. Тебе возможно придётся убрать вызовы Dump и добавить юзинги
    var result1 = CalcualteAreaOfTriangle(11,11,12).Dump("result 1");
    var result2 = CalcualteAreaOfTriangle(9,9,19).Dump("result 2");
    
    
    static double CalcualteAreaOfTriangle(int a, int b, int c)
    {
        var p = (a + b + c) / 2.00;
        p.Dump("p");
        var s1 = Math.Sqrt((p * (p - a) * (p - b) * (p - c)).Dump("pre sqrt"));
        var s2 = 0.5 * a * b;
        if (s1 == s2)
        { // Кстати это почти никогда не будет срабатывать из-за IEEE754
            Console.WriteLine("Треугольник прямоугольный");//а точно ли?
        }
        return s1;
    }



    PS:
    button1, a, b, c, s1, s2, label4, label5, Form1, textBox1, textBox2, textBox3, button1, p
    Осуждаю такое именование.
    Ответ написан
    3 комментария
  • Как распарсить такую строку?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Перебираем символы: находим запятую - делим; находим кавычки - игнорируем запятые до следующей кавычки.
    Ответ написан
    Комментировать
  • Как можно перенести статьи с бд сайта на php в бд wordpress?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    1) Сравнить структуры стандартной вордпресной базы и текущей,
    2) составить алгоритм переноса,
    3) написать скрипты переноса, либо, если это возможно, перенести данные посредством соответствующих запросов напрямую
    4) Скорее всего базы будут сильно отличаться друг от друга и написание скриптов переноса потянет на отдельную большую статью, ввиду того что бд вордпресса, мягко говоря, не образец оптимальной продуктивной структуры (про неясную структуру бд текущего сайта скромно умолчим).

    ЗЫ: А вообще вопрос про "в огороде бузина, а в киеве дядька"... Первая часть вообще никак не несет какую-либо информационную нагрузку.
    Ответ написан
    Комментировать
  • Стоит ли соваться на фриланс с asp.net?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Вот это выдрано из реального проекта
    https://github.com/vkorotenko/VueRecaptcha
    https://github.com/vkorotenko/calcxactive
    https://github.com/vkorotenko/NGeoMag

    Смотрите на уровень если понимаете то вполне войдете
    Ответ написан
    1 комментарий
  • Навигация по pgAdmin 4, просмотр записей таблиц?

    @mezhuev
    Системный администратор
    Через контекстное меню таблицы:
    4038b3f76392a2db5481262932949bcf.png
    Ответ написан
    5 комментариев
  • C# и OutOfmemoryExtension - как перейти на полноценные 64х?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Ну без кода сказать в чём конкретно проблема нельзя, но вот пара советов:

    1. Убедись что Target platform у тебя x64 (Но вообще, если у тебя dotnet core, то он и так и так не будет упираться в 4гб)
    2. Убедись, что где-то в недрах у тебя не выделяется массив более чем на int.MaxValue элементов (внутри словарей массив, если мне память не изменяет)
    3. Убедись, что это ошибка именно из рантайма приходит, а не выкинуто где-то явно
    4. Попробуй как-нибудь разделить свои данные, чтобы для их хранения не требовался непрерывный кусок памяти.
    5. Если ты используешь net framework, а не net core, то тебе нужно в конфиге явно указать, что ты хочешь создавать объекты более 2гб размером.
    https://docs.microsoft.com/en-us/dotnet/framework/...

    VS2022 и так x64, да и даже если бы была х32, как в 2019 - это бы не повлияло на само приложение.
    Ну и возьми dotMemory, чтобы продиагностировать проблемы в работе с памятью.
    Ответ написан
    7 комментариев
  • (Вопрос для андроид гуру)Почему не сворачивается шторка при нажатии на кнопку в кастомной нотификации?

    twobomb
    @twobomb Автор вопроса
    Разобрался! Отвечу сам на свой вопрос, может кому понадобится.
    Чтобы установить событие на свои кнопки в своей кастомной Big Notification. Следует использовать такую конструкцию.
    Intent tt = new Intent(this, SettingsActivity.class);
                        TaskStackBuilder ss = TaskStackBuilder.create(this);
                        stackBuilder.addParentStack(MainActivity.class);
                        stackBuilder.addNextIntent(tt);
                        PendingIntent rr = stackBuilder.getPendingIntent(
                                0, PendingIntent.FLAG_UPDATE_CURRENT);
                        expandedView.setOnClickPendingIntent(R.id.notif_btn_settings, rr);
    //notif_btn_settings - ид Кнопки, expandedView это мой RemoteViews

    Обязательно стоит использовать TaskStackBuilder иначе активити будет открыватся, но шторка не закроется сама!
    Так же не нужен класс ресивер MyButtonListener, флаг FLAG_ACTIVITY_NEW_TASK и прочее...
    Ответ написан
    Комментировать
  • Почему не работает System.Text.Encoding? Ошибается на 1 символ?

    twobomb
    @twobomb
    Ну потому-что ваш генератор тупо генерирует рандомные числа от 0 до FFFF, а в UTF16 там есть определенные правила. Почитайте например в вики

    Я не вникал ну вики говорит что там есть диапазон для суррогатных пар тоесть символы которые кодируются двумя 16битными словами, тоесть 4 байтами. Крч как вариант или тупо добавить проверку в генератор чтобы если рандомное число входит в диапазон исключений D80016..DFFF16 то пропускать и генерировать другое. Или замарачиваться с этими парами, ну это будет сложнее.

    Принцип кодирования
    В UTF-16 символы кодируются двухбайтовыми словами с использованием всех возможных диапазонов значений (от 0 до FFFF16). При этом можно кодировать символы Unicode в диапазонах 000016..D7FF16 и E00016..FFFF16. Исключенный отсюда диапазон D80016..DFFF16 используется как раз для кодирования так называемых суррогатных пар — символов, которые кодируются двумя 16-битными словами.

    Символы Unicode до FFFF16 включительно (исключая диапазон для суррогатов) записываются как есть 16-битным словом.

    Символы же в диапазоне 1000016..10FFFF16 (больше 16 бит) кодируются по следующей схеме:

    Из кода символа вычитается 1000016. В результате получится значение от нуля до FFFFF16, которое помещается в разрядную сетку 20 бит.
    Старшие 10 бит (число в диапазоне 000016..03FF16) суммируются с D80016, и результат идёт в ведущее (первое) слово, которое входит в диапазон D80016..DBFF16.
    Младшие 10 бит (тоже число в диапазоне 000016..03FF16) суммируются с DC0016, и результат идёт в последующее (второе) слово, которое входит в диапазон DC0016..DFFF16.
    Ответ написан
    Комментировать
  • Можно ли подменить экземпляр сервиса в DI?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Тебе нужно ещё отдельно зарегистрировать
    FakeConsumerHostedServiceLogger
    Как самого себя
    Ответ написан
    Комментировать
  • Что это такое, и как его убрать?

    SilenceOfWinter
    @SilenceOfWinter
    та еще зажигалка...
    color: #fff !important;
    Ответ написан
    Комментировать
  • Как отслеживать изменение класса Jquery?

    MutationObserver вам в помощь
    Ответ написан
    Комментировать
  • Как скопировать статическое поле класса?

    Griboks
    @Griboks Куратор тега C#
    А где код самого теста? Почему он не может получить доступ? Что вы подразумеваете под копированием? Копия ссылки, списка или его элементов?
    Ответ написан
    4 комментария
  • Откуда берется новая таблица после переопределения IdentityRole?

    @oleg_ods
    У ApplicationUser и ApplicationRole связь many-to-many. Для ее обслуживания создается дополнительная таблица.

    Если хотите использовать для связи таблицу UserRoles это надо указать явно.

    Пример из документации:

    internal class MyContext : DbContext
    {
        public MyContext(DbContextOptions<MyContext> options)
            : base(options)
        {
        }
    
        public DbSet<Post> Posts { get; set; }
        public DbSet<Tag> Tags { get; set; }
    
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Post>()
                .HasMany(p => p.Tags)
                .WithMany(p => p.Posts)
                .UsingEntity<PostTag>(
                    j => j
                        .HasOne(pt => pt.Tag)
                        .WithMany(t => t.PostTags)
                        .HasForeignKey(pt => pt.TagId),
                    j => j
                        .HasOne(pt => pt.Post)
                        .WithMany(p => p.PostTags)
                        .HasForeignKey(pt => pt.PostId),
                    j =>
                    {
                        j.Property(pt => pt.PublicationDate).HasDefaultValueSql("CURRENT_TIMESTAMP");
                        j.HasKey(t => new { t.PostId, t.TagId });
                    });
        }
    }
    
    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
    
        public ICollection<Tag> Tags { get; set; }
        public List<PostTag> PostTags { get; set; }
    }
    
    public class Tag
    {
        public string TagId { get; set; }
    
        public ICollection<Post> Posts { get; set; }
        public List<PostTag> PostTags { get; set; }
    }
    
    public class PostTag
    {
        public DateTime PublicationDate { get; set; }
    
        public int PostId { get; set; }
        public Post Post { get; set; }
    
        public string TagId { get; set; }
        public Tag Tag { get; set; }
    }
    Ответ написан
    2 комментария
  • Можно ли в тернарной операции во втором операнде присваивать одной переменной значение другой?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Сказано же по русски, что только выражения могут быть в тернарном операторе.
    Операция присваивания выражением не является.

    И вообще за подобный код, как у вас в примере, по рукам бить надо.
    Вот это лучше будет гораздо:
    countOfIteration = Math.Min(width, height);
    А если так сильно хочется тернарник, то вот:
    countOfIteration = width > height
      ? height
      : width;
    Ответ написан
    Комментировать
  • Как освободить память? Вызвать сборку мусора?

    Griboks
    @Griboks Куратор тега C#
    Да, есть неочевидный нюанс. Тело цикла или условия не считается сборщиком мусора за отдельную область видимости, поэтому не собирается после каждой итерации. Для решения этой проблемы нужно вынести тело в отдельный метод. Ручной запуск сборки не работает.

    P. S.
    Ну и держать глобальный указатель на буфер не следует, иначе сборка не сработает по понятным причинам.
    Ответ написан
    Комментировать
  • Как исправить баг при скролле?

    @dragonesis
    Это, судя по всему, кастомный скролл. Соответственно, вариант один, блокировать скролл на windows. Можно воспользоваться плагином https://www.npmjs.com/package/body-scroll-lock
    Ответ написан
    Комментировать
  • В какой последовательности правильно подключать скрипты и стили?

    wapster92
    @wapster92 Куратор тега CSS
    Сначала корневую библиотеку, потом плагин. Относительно как подключать конфигурацию, обычно в документации к такому плагину есть описание и нет однозначного ответа, так как это зависит как написан плагин.
    Стили: сначала общие потом твои. Зависимость от того, что ты подключаешь допустим, если ты используешь bootstrap сначала его, потом в сети нашел какую-то тему для bootstrap, то ее уже после основной. Все что ниже перезаписывает верхние грубо говоря.
    Ответ написан
    6 комментариев