static void Test2() { // Создадим несколько объектов структуры даты и заполним ее. DateStruct date1 = new DateStruct() { Day = 12, Hour = 10, Minute = 12, Month = Months.December, Year = 2020 }; DateStruct date2 = new DateStruct() { Day = 14, Hour = 11, Minute = 33, Month = Months.May, Year = 2020 }; DateStruct date3 = new DateStruct() { Day = 23, Hour = 6, Minute = 44, Month = Months.April, Year = 2021 }; DateStruct date4 = new DateStruct() { Day = 11, Hour = 15, Minute = 17, Month = Months.March, Year = 2021 }; // Создадим несколько объектов ConsignmentNote minskGorElCN = new ConsignmentNote(new Date(date1), new MinskEnergyEstablishment()); minskGorElCN.GoodsPricePair.Add("Счетчик \"Заря\"", 1543.23); minskGorElCN.GoodsPricePair.Add("Счетчик \"M23\"", 2543.23); minskGorElCN.GoodsPricePair.Add("Счетчик \"Электрон\"", 543.23); ConsignmentNote minskGorElCN2 = new ConsignmentNote(new Date(date2), new MinskEnergyEstablishment()); minskGorElCN2.GoodsPricePair.Add("Счетчик \"Вега-123\"", 15233.23); minskGorElCN2.GoodsPricePair.Add("Счетчик \"M99\"", 25423.23); minskGorElCN2.GoodsPricePair.Add("Счетчик \"NewWave\"", 5143.23); ConsignmentNote minskGorElCN3 = new ConsignmentNote(new Date(date3), new MinskEnergyEstablishment()); minskGorElCN3.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23); minskGorElCN3.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23); minskGorElCN3.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23); ConsignmentNote minskGorElCN4 = new ConsignmentNote(new Date(date4), new MinskEnergyEstablishment()); minskGorElCN4.Check = null; // Чека нет. minskGorElCN4.GoodsPricePair.Add("Набор инструментов \"Электрик\"", 133.23); minskGorElCN4.GoodsPricePair.Add("Щипцы \"ЩС-13\"", 423.23); minskGorElCN4.GoodsPricePair.Add("Сварочный аппарат \"12-12\"", 5143.23); ConsignmentNote minskGorElCN5 = new ConsignmentNote(new Date(date3), new MinskEnergyEstablishment()); minskGorElCN5.Check = null; // Чека нет. minskGorElCN5.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23); minskGorElCN5.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23); minskGorElCN5.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23); // Заполним контейнер объектами. Accounting accounting = new Accounting(); accounting.Documents.Add(minskGorElCN); accounting.Documents.Add(minskGorElCN2); accounting.Documents.Add(minskGorElCN3); accounting.Documents.Add(minskGorElCN4); accounting.Documents.Add(minskGorElCN5); // Напечатаем на консоль. accounting.PrintDocuments(); // Передадим классу контроллеру, класс контейнер. AccountingController accountingController = new AccountingController(accounting); // Протестируем методы по заданию. string findName = "Мультиметр \"Тестер-92\""; var res = accountingController.CalculateFinallyCost(findName); Console.WriteLine($"Суммарная стоимость {findName} = {res}"); Console.WriteLine($"Количество чеков для накладных = {accountingController.CalculateCheckCount()}"); // Возьмем интервал год, и напечатаем НЕ меньше ДВУХ дат. accountingController.PrintTwoDocs(DateTime.ParseExact("2020-12-12", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture), DateTime.ParseExact("2020-01-12", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)); }
public AccountingController(Accounting accounting) { _accounting = accounting; }
static void Test2() { // Создадим несколько объектов структуры даты и заполним ее. DateStruct date1 = new DateStruct() { Day = 11, Hour = 23, Minute = 59, Month = Months.December, Year = 2020 }; DateStruct date2 = new DateStruct() { Day = 14, Hour = 11, Minute = 33, Month = Months.May, Year = 2020 }; DateStruct date3 = new DateStruct() { Day = 23, Hour = 6, Minute = 44, Month = Months.April, Year = 2021 }; DateStruct date4 = new DateStruct() { Day = 11, Hour = 15, Minute = 17, Month = Months.March, Year = 2021 }; // Создадим несколько объектов ConsignmentNote minskGorElCN = new ConsignmentNote(new Date(date1), new MinskEnergyEstablishment()); minskGorElCN.GoodsPricePair.Add("Счетчик \"Заря\"", 1543.23); minskGorElCN.GoodsPricePair.Add("Счетчик \"M23\"", 2543.23); minskGorElCN.GoodsPricePair.Add("Счетчик \"Электрон\"", 543.23); ConsignmentNote minskGorElCN2 = new ConsignmentNote(new Date(date2), new MinskEnergyEstablishment()); minskGorElCN2.GoodsPricePair.Add("Счетчик \"Вега-123\"", 15233.23); minskGorElCN2.GoodsPricePair.Add("Счетчик \"M99\"", 25423.23); minskGorElCN2.GoodsPricePair.Add("Счетчик \"NewWave\"", 5143.23); ConsignmentNote minskGorElCN3 = new ConsignmentNote(new Date(date3), new MinskEnergyEstablishment()); minskGorElCN3.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23); minskGorElCN3.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23); minskGorElCN3.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23); ConsignmentNote minskGorElCN4 = new ConsignmentNote(new Date(date4), new MinskEnergyEstablishment()); minskGorElCN4.Check = null; // Чека нет. minskGorElCN4.GoodsPricePair.Add("Набор инструментов \"Электрик\"", 133.23); minskGorElCN4.GoodsPricePair.Add("Щипцы \"ЩС-13\"", 423.23); minskGorElCN4.GoodsPricePair.Add("Сварочный аппарат \"12-12\"", 5143.23); ConsignmentNote minskGorElCN5 = new ConsignmentNote(new Date(date3), new MinskEnergyEstablishment()); minskGorElCN5.Check = null; // Чека нет. minskGorElCN5.GoodsPricePair.Add("Мультиметр \"Тестер-92\"", 133.23); minskGorElCN5.GoodsPricePair.Add("Галогенная лампа \"ГЛ-23\"", 423.23); minskGorElCN5.GoodsPricePair.Add("Провод 100м \"12-12\"", 5143.23); // Заполним контейнер объектами. Accounting accounting = new Accounting(); accounting.Documents.Add(minskGorElCN); accounting.Documents.Add(minskGorElCN2); accounting.Documents.Add(minskGorElCN3); accounting.Documents.Add(minskGorElCN4); accounting.Documents.Add(minskGorElCN5); /** * Вызовем assert. * * Проверяем утверждение, что количество объектов, должно быть больше 0 * если объектов больше 0 условие верное и срабатывать не будет, сработает только в * том случае если утверждение ЛОЖНО, а именно, когда объектов 0, * ЧТобы вызвать этот assert, нужно заккоментировать три строки 186, 187, 188 */ System.Diagnostics.Debug.Assert(minskGorElCN5.GoodsPricePair.Count > 0, "Список товаров в накладной не может быть пуст!"); // Если условие верное if (accounting.Documents.Count == 0) { // выбрасываем исключение throw new EmptyObjectsException(); } // Напечатаем на консоль информацию об объектах accounting.PrintDocuments(); // Передадим классу контроллеру, класс контейнер. AccountingController accountingController = new AccountingController(accounting); // Протестируем методы по заданию. string findName = "Мультиметр \"Тестер-92\""; var res = accountingController.CalculateFinallyCost(findName); Console.WriteLine($"Суммарная стоимость {findName} = {res}"); Console.WriteLine($"Количество чеков для накладных = {accountingController.CalculateCheckCount()}"); // Возьмем интервал год, и напечатаем НЕ меньше ДВУХ дат. accountingController.PrintTwoDocs(DateTime.ParseExact("2020-12-12", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture), DateTime.ParseExact("2020-01-12", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)); }