У меня есть 1 класс, который отвечает за отправку напоминания об оплате родителям, чьи сборы подлежат оплате за данный месяц.
Ниже приведен класс:
public class FeesPaymentNotification
{
public void Notify() //send email notification to parents
{
var model = new FeesModel(1,100, 1000);
}
}
public class FeesModel
{
public FeesModel() { }
public FeesModel(int id, int courseId, int fees)
{
this.Id = id;
this.CourseId = courseId;
this.Fees = fees;
}
public int Id{ get; set; }
public int CourseId { get; set; }
public int Fees { get; set; }
public int TeacherId { get; set; }
public string Title { get; set; }
public string CourseName { get; set; }
public DateTime CreatedAt { get; set; }
// other properties
}
В моем случае мне просто нужно установить 3 свойства, поэтому я создал конструктор с 3 свойствами. FeesModel используется во многих местах, и я не хочу создавать другую модель, так как это общая модель, которую мы используем для оплаты.
Я получаю ошибку ниже в других местах, где используется модель сборов:
Не указан аргумент, который соответствует обязательному формальному параметру 'id' в 'FeesModel.FeesModel (string, int, int)'
Код:
var model = new FeesModel // this is where and so many other places I am getting above error
{
TeacherId = teacherId,
Title = title,
CourseName = courseName,
CreatedAt = DateTime.UtcNow
};
Чтобы устранить вышеуказанную ошибку Я создал частные методы для заполнения FeesModel и других моделей в этом классе , но это, кажется, нарушает принципы SRP, и у меня есть несколько других частных методов для заполнения других моделей, из-за какого класса получил большое количество таких частных методов.
1) Действительно ли этот частный метод нарушает SRP ?
2) Есть ли другой способ решить эту проблему без использования AutoMapper ?