Задать вопрос
  • Как подружить GitKraken и TFS?

    @Chipsetone
    .NET Backend
    Для винды попробовать добавить логин и пароль в: "Панель управления\Учетные записи пользователей\Диспетчер учетных данных".
    Про кракена не знаю, но авторизация в GitExtensions таким образом заработала.
    Ответ написан
    1 комментарий
  • Какую команду использовать для автоматического развертывания приложения через PowerShell?

    @Chipsetone
    .NET Backend
    В целом последовательность проста: закинуть файл инсталлятора в API сервера, после чего API должно скомандовать машине запуск/установку этого файла.
    Но некоторые важные вопросы остаются неясными:
    1. Что значит "установка"? Надо запускать какой-то инсталлятор или достаточно скопировать файл в отдельный каталог.
    2. "развернуть файл под этого пользователя" - это значит, что в веб-приложении и на сервере должна использоваться одна система аутентификации?
    Думаю, что как только с ответами на эти вопросы станет всё понятно, то готовый велосипед быстро найдется.
    Ответ написан
  • Как получать по 5 элементов из массива?

    @Chipsetone
    .NET Backend
    Короткий ответ, как всегда, легко ищется на просторах интернета.

    А мой немного фанатичный монстр на C# в 2 ночи выглядит так =)
    [TestClass]
        public class UnitTest1
        {
            [TestMethod]
            public void TestMethod1()
            {
                var victimArray = new string[] {
                    "1", "3", "2", "1", "23",
                    "44", "32", "2", "10", "0",
                    "17", "-1", "34", "79", };
                var expectedIndexesWithValues = new List<string>() {
                    {"23"}, // "пятый" элемент
                    {"0"} // следующий "пятый" элемент
                };
    
                var actualIndexesWithValues = new List<string>();
    
                victimArray.RunActionOnEach(eachElementNumber: 5, 
                    actionOnElement: (elementValue) => {
                        Console.WriteLine($"Какое-то жизненно необходимое действие на элементе \"{elementValue}\"");
                        actualIndexesWithValues.Add(elementValue);
                    }
                ).ToList();
                
                // проверяем, что результат совпадает с нашими ожиданиями
                CollectionAssert.AreEquivalent(expectedIndexesWithValues, actualIndexesWithValues);
            }
        }
    
        internal static class IEnumerableExtension
        {
            /// <summary>
            /// Дергает переданный Action на каждом eachElementNumber элементе
            /// </summary>
            public static IEnumerable<string> RunActionOnEach(this IEnumerable<string> sourceCollection, int eachElementNumber, Action<string> actionOnElement)
            {
                int currentNumber = 1;
                foreach (var element in sourceCollection)
                {
                    if (currentNumber % eachElementNumber == 0)
                        actionOnElement(element);
                    
                    currentNumber++;
    
                    yield return element;
                }
            }
        }

    Ответ написан
    Комментировать