public static BillsRegister Create(IEnumerable <PERS_LIST> personsBills, IEnumerable <ZL_LIST> casesBills) { if (personsBills == null || !personsBills.Any()) { throw new ArgumentException("Реестр должен содержать минимум 1 файл пациентов."); } if (casesBills == null || !casesBills.Any()) { throw new ArgumentException("Реестр должен содержать минимум 1 файл случаев."); } var register = new BillsRegister(casesBills.First().SCHET.MONTH, casesBills.First().SCHET.YEAR); foreach (var personsBill in personsBills) { var casesBill = casesBills.Where(x => BillPair.IsPair(personsBill, x)).FirstOrDefault(); if (casesBill == null) { throw new InvalidOperationException("Не удалось сопоставить все пары файлов счетов."); } register.Add(new BillPair(personsBill, casesBill)); } return(register); }
public void Add(BillPair pair) { if (pair.Cases.SCHET.MONTH != Month || pair.Cases.SCHET.YEAR != Year) { throw new ArgumentException("Реестр не может состоять из счетов за разные отчетные периоды."); } Bills.Add(pair); }