Назад к задачам
Junior — Senior
11

Переписывание фрагмента кода в соответствии с принципами SOLID

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо улучшить данный пример, устранив нарушения SOLID и сделав его более поддерживаемым и читаемым. Примените подходящие изменения к структуре класса и его методам.

public class BirthdayTemplateProcessor
{
    public static UserDal UserRepository { get; set; } = new UserDal();

    public static void GenerateTemplates(int[] ids)
    {
        string[] names = UserRepository.Query()
            .Where(u => ids.Contains(u.Id))
            .Select(u => u.UserName)
            .ToArrayAsync().Result;

        string messageTemplate = "Hello, dear {0}. Happy Birthday!";
        string directoryPath = "C://templates/birthdays/";

        foreach (var name in names)
        {
            System.IO.File.WriteAllText(directoryPath + name, string.Format(messageTemplate, name));
        }
    }
}