• C# цикл for (; ;)?

    Young_khv
    @Young_khv
    ASP.NET Developer
    for (initializer; condition; iterator)
    body

    initializer - ставим какое-то начальное состояние
    condition - условие выхода из цикла
    iterator - действие, которое будет происходить каждый раз по завершению шага цикла

    все эти товарищи не обязательные, в вашем случае отсутствует в том числе и условие завершения цикла, поэтому этот цикл будет длиться бесконечно

    более подробно смотрите тут, ну и гуглить лучше на англицком =)
    Ответ написан
    3 комментария
  • Как избежать множественного создания классов в c# web api?

    @kttotto
    пофиг на чем писать
    Вообще у Вас все правильно. Есть слой моделей, которые являются сущностями, есть слой моделей, которые для отображения данных, есть слой dto моделей. У меня в проектах тоже всегда так. Зря Вы думаете, что плодите их, они находятся в разных слоях (модулях), можете считать их разными доменными моделями. Для больших и сложных проектов, это оправдано. И хоть все классы со стороны могут показаться одинаковыми, но они разные, т.к. относятся к разным доменным моделям и выполняют разную функцию.

    Если у Вас проект небольшой, то можно было обойтись и одним слоем для работы с ORM и не усложнять код.
    Ответ написан
    4 комментария
  • Как получить последние 10 записей в active record?

    qonand
    @qonand
    Software Engineer
    все данные в базе хранятся в неупорядоченном виде, поэтому что такое "последние 10" известно только Вам и господу Богу. Для решения задачи, Вам нужно определить по какому признаку определяются последние записи и соответственно отсортировать данные по этому признаку, например:
    $latests = Project::find()->where(['status' => 1])->orderBy(['id' => SORT_DESC])->limit(10)->all();
    Ответ написан
    Комментировать
  • Десериализация json в C# с помощью Newtonsoft.Json.dll?

    Kubatai
    @Kubatai
    Техник-программист
    Опишите некий класс Answer(произвольное название), в котором будут хранится свойства с такими же именами и типами, как в вашем json, и при десериализации ссылайтесь на этот класс вот так:
    Answer answer= JsonConvert.DeserializeObject<Answer>(iJson);

    Для быстрого преобразования json-данных в классы c# можно воспользоваться данным онлайн-сервисом:
    json2csharp.com

    Описания классов json от сервиса выше
    // To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
    //
    //    using QuickType;
    //
    //    var data = GettingStarted.FromJson(jsonString);
    //
    // For POCOs visit quicktype.io?poco
    //
    namespace QuickType
    {
        using System;
        using System.Net;
        using System.Collections.Generic;
    
        using Newtonsoft.Json;
    
        public partial class GettingStarted
        {
            [JsonProperty("measures")]
            public Measures Measures { get; set; }
    
            [JsonProperty("number2")]
            public Number2 Number2 { get; set; }
    
            [JsonProperty("items")]
            public Items Items { get; set; }
    
            [JsonProperty("number1")]
            public Number1 Number1 { get; set; }
    
            [JsonProperty("user")]
            public User User { get; set; }
        }
    
        public partial class Measures
        {
            [JsonProperty("2")]
            public OtherThe1 The2 { get; set; }
    
            [JsonProperty("1")]
            public OtherThe1 The1 { get; set; }
    
            [JsonProperty("3")]
            public OtherThe1 The3 { get; set; }
        }
    
        public partial class OtherThe1
        {
            [JsonProperty("name")]
            public string Name { get; set; }
    
            [JsonProperty("title")]
            public string Title { get; set; }
        }
    
        public partial class Number2
        {
            [JsonProperty("2")]
            public OtherOtherOtherThe1 The2 { get; set; }
    
            [JsonProperty("1")]
            public OtherOtherOtherThe1 The1 { get; set; }
    
            [JsonProperty("3")]
            public OtherOtherOtherThe1 The3 { get; set; }
        }
    
        public partial class OtherOtherOtherThe1
        {
            [JsonProperty("name")]
            public string Name { get; set; }
    
            [JsonProperty("description")]
            public string Description { get; set; }
    
            [JsonProperty("parent")]
            public string Parent { get; set; }
    
            [JsonProperty("title")]
            public string Title { get; set; }
        }
    
        public partial class Items
        {
            [JsonProperty("2")]
            public The1 The2 { get; set; }
    
            [JsonProperty("1")]
            public The1 The1 { get; set; }
    
            [JsonProperty("3")]
            public The1 The3 { get; set; }
        }
    
        public partial class The1
        {
            [JsonProperty("measure")]
            public string Measure { get; set; }
    
            [JsonProperty("number")]
            public string Number { get; set; }
    
            [JsonProperty("foxproID")]
            public string FoxproID { get; set; }
    
            [JsonProperty("name")]
            public string Name { get; set; }
    
            [JsonProperty("producer")]
            public string Producer { get; set; }
    
            [JsonProperty("suodID")]
            public string SuodID { get; set; }
        }
    
        public partial class Number1
        {
            [JsonProperty("2")]
            public OtherOtherThe1 The2 { get; set; }
    
            [JsonProperty("1")]
            public OtherOtherThe1 The1 { get; set; }
    
            [JsonProperty("3")]
            public OtherOtherThe1 The3 { get; set; }
        }
    
        public partial class OtherOtherThe1
        {
            [JsonProperty("description")]
            public string Description { get; set; }
    
            [JsonProperty("name")]
            public string Name { get; set; }
        }
    
        public partial class User
        {
            [JsonProperty("login")]
            public string Login { get; set; }
    
            [JsonProperty("ip")]
            public string Ip { get; set; }
    
            [JsonProperty("number")]
            public long Number { get; set; }
        }
    
    
        public partial class GettingStarted
        {
            public static GettingStarted FromJson(string json) => JsonConvert.DeserializeObject<GettingStarted>(json, Converter.Settings);
        }
    
        public static class Serialize
        {
            public static string ToJson(this GettingStarted self) => JsonConvert.SerializeObject(self, Converter.Settings);
        }
    
        public class Converter
        {
            public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
            {
                MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
                DateParseHandling = DateParseHandling.None,
            };
        }
    }
    Ответ написан
    Комментировать
  • Почему if в PHP выдает неверный результат, когда он внутри foreach()?

    Melkij
    @Melkij
    PostgreSQL DBA
    Упрощайте.
    Foreach ни при чём. Обычные фокусы приведения типов.
    var_dump('L' == 'F', 0 == 2, 0 == 'F', 'F' == 0, (int) 'F', '0' == 'F', 'F' == '0');

    Не число приводится к строке и сравнивается, а строка приводится к числу. F не является числом, поэтому приводится к 0. 0 равен 0? Да, такое условие истинно.

    Сравнение с учётом типов - $op1 === $op2
    Ответ написан
    Комментировать
  • Как коректно спросить о том куда расти для повышения ЗП?

    gubin_niko
    @gubin_niko
    Я могу лишь своё мнение озвучить, основанное на практике.

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

    Ещё посмею дать совет. Развивайтесь дальше, изучайте свою сферу глубже и шире, задевайте смежные, изучайте иностранные языки и другие языки программирования. Когда будете иметь каждый месят по десятку новых предложений и по 1-2 горячему оферу, уже никаких переживаний не будет, а при отказе поднять ЗП можно смело уходить к конкурентам. Отрастите зубы, чтобы не сосать, а грызть))
    Ответ написан
    16 комментариев
  • Как разделить переменную пополам?

    $lom = 'zdfhrfgteghdgt5fdsjgisfgjsdifjgijgf433492';
    list($lom1,$lom2) = explode ("5", $lom);
    Ответ написан
    1 комментарий
  • Как удалить повторяющиеся элементы в многомерном массиве?

    // получаем уникальные ключи
    $uniqueKeys = array_keys(
        array_unique(
            array_map(function($item) {
                return $item['city'];
            }, $array)
        )
    );
    // извлекаем в новый массив те ключи, которые были уникальными
    $uniqueArray = array_filter($array, function($itemKey) {
        return in_array($itemKey, $uniqueKeys);
    }, ARRAY_FILTER_USE_KEY);
    Ответ написан
    Комментировать
  • Как узнать получить данные наследованного класса в EF 6?

    Вы изучите для начала маппинг в БД 3 вида при наследовании.
    TPH, TPT, TPC
    https://msdn.microsoft.com/ru-ru/data/jj591617.aspx
    metanit.com/sharp/entityframework Глава 7. Наследование в Entity Framework
    Посмотрите как в БД сохраняется.
    Ответ написан
    1 комментарий
  • Как организовать структуру БД для планировщика задач?

    @mletov
    Напишите свое виденье, а вам укажут на недостатки. А напрягаться и решать задачу с нуля за вас вряд ли будут
    Ответ написан
    Комментировать
  • React.js + WebApi.NET. Подскажи как сделать авторизацию?

    impwx
    @impwx
    Разработчик
    WebAPI обычно авторизуется через Bearer Token. У вас должен быть публичный контроллер, который в обмен на правильную пару логин-пароль выдает эти токены. Другие контроллеры следует пометить атрибутом [Authorize] и при каждом обращении к ним передавать в заголовках запроса этот токен:

    Authorization: Bearer <значение токена>

    Где хранить токен на клиенте - решайте сами. Это может быть localStorage, куки, или просто локальная переменная.
    Ответ написан
    3 комментария
  • Как правильно хранить структуру c#?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Выглядит как сравнение "хардкод vs контейнер". Разница очевидна: Dictionary обеспечивает поиск со сложностью O(1) (против O(n) у свича) и способен динамически расширяться.
    В контексте задачи это похоже на DI для бедных. В этом случае Dictionary будет нагляднее.

    ИМХО по коду

    Не лишним было бы почитать стайлгайд для C#
    Ответ написан
    2 комментария
  • Как обобщить отправку уведомление точнее создать для них интерфейсы?

    mhthnz
    @mhthnz
    PHP, YII2, Golang, Linux
    Можно использовать паттерн мост, brigde. https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D1%81%D...
    Ну и примерно к такому виду все приведется:
    $notifier = new Notifier(new Sms());
    $notifier->send ....
    
    $notifier = new Notifier(new Mail());
    $notifier->send....

    И дальше по аналогии. Классы реализаторы Sms и Mail должны реализовывать один и тот же интерфейс, в котором например будет метод send.
    Ответ написан
    Комментировать
  • Как обобщить отправку уведомление точнее создать для них интерфейсы?

    @IceJOKER
    Web/Android developer
    Первое , что пришло в голову:
    1. Создать класс Notify, где записываются данные(куда отправлять, что отправлять и т.д.)
    2. Создаем интерфейс ISender, с единственным методом send(Notify $notify).
    3. Создаем разные классы для разных отправщиков - sms, email и т.д. и реализуем интерфейс из 2 пункта.
    4. Можно создать фабричный класс/метод, куда передаем тип , который выбрал пользователь , а он возвращает нужный класс , либо просто через if/switch проверяете и создаете нужный класс(SmsSender, EmailSender и т.д.).
    5. Т.к. все наши Sender-ы реализуют один и тот же интерфейс, то тупо вызываем метод send и передаем ему объект $notify

    Это первое, что пришло в голову, уверен есть еще десятки разных вариантов
    Ответ написан
    Комментировать
  • Как написать расширение метода для EF6?

    andrewpianykh
    @andrewpianykh
    Реализуйте для модели интерфейс IEntity, чтобы в методе расширения использовать ограничение универсального типа:

    public interface IEntity
    {
    	int Id { get; set; }
    }
    
    public class Model : IEntity
    {
    	public int Id { get; set; }        
    	// ...
    }


    public static bool ExistById<T>(this DbSet<T> source, int id) where T : IEntity
    {
    	return source.Count(c => c.Id == id) > 0;
    }
    Ответ написан
    3 комментария
  • Какую легкую IDE выбрать для php?

    @MyNameIsSylor
    для windows лучшей нативной может быть только notepad++
    Ответ написан
    3 комментария