public void OnUpdateСтрокаЗаказа_НоваяСНедостаткомНаСкладе_ГенерируетсяИсключение() { // Arrange var товар = new Товар(); var строка = new СтрокаЗаказа { Количество = 10, Товар = товар, Заказ = new Заказ { егион = new егион { Код = "59" } } }; бс.DiscountService = Mock.Of <IDiscountService>(); бс.WarehouseService = Mock.Of <IWarehouseService>(ws => ws.CanReserveProduct(товар, 10) == false); // Act var exception = Assert.Throws <Exception>(() => бс.OnUpdateСтрокаЗаказа(строка)); // Assert Assert.Equal("Недостаточно товара на складах.", exception.Message); }
public void OnUpdateСтрокаЗаказа_НоваяСНаличиемНаСкладе_ТоварыРезервируются() { // Arrange var товар = new Товар(); var строка = new СтрокаЗаказа { Количество = 4, Товар = товар, Заказ = new Заказ { егион = new егион { Код = "59" } } }; бс.DiscountService = Mock.Of <IDiscountService>(); var whMock = new Mock <IWarehouseService>(); whMock.Setup(x => x.CanReserveProduct(товар, 4)).Returns(true); бс.WarehouseService = whMock.Object; // Act бс.OnUpdateСтрокаЗаказа(строка); // Assert whMock.Verify(x => x.ReserveProduct(товар, 4)); }
/// <summary> /// Пример явного включения операций работы с данными в заданные "извне" соединение и транзакцию. /// </summary> /// <remarks> /// Данный подход позволяет в ручном режиме контролировать те операции, которые попадают в соответствующую транзакцию, /// а также явно управлять транзакциями. /// </remarks> static void UsingExternalConnectionAndTransaction() { var ds = (SQLDataService)DataServiceProvider.DataService; var connection = new SqlConnection(ds.CustomizationString); using (connection) { if (connection.State != ConnectionState.Open) { connection.Open(); } using (SqlTransaction transaction = connection.BeginTransaction()) { var t = new Товар(); t.SetExistObjectPrimaryKey("27486786-648C-419B-B0BF-F8BA739ABF58"); ds.LoadObjectByExtConn(Товар.Views.ТоварL, t, true, false, new DataObjectCache(), connection, transaction); t.Цена = 999; var t2 = new Товар() { Название = "Стул", ЕдиницаИзмерения = "шт", Описание = "Опять мебель", Цена = 1345, КодТовара = 224 }; var p = new DataObject[] { t, t2 }; ds.UpdateObjectsByExtConn(ref p, new DataObjectCache(), true, connection, transaction); transaction.Commit(); Console.WriteLine("ОК"); } } }
private void list_of_productsSelect(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0) { prod = e.AddedItems[0] as Товар; value.Text = prod.стоимость.Value.ToString(); amount_of_goods.Text = prod.количесвто.Value.ToString(); } }
/// <summary> /// Создание нескольких объектов данных в базе данных за одну операцию. /// </summary> /// <remarks> /// Порядок добавления и изменения объектов данных сервис данных как правило контролирует сам, но есть ряд случаев, когда необходимо /// соблюдать оперделенный порядок передачи объектов данных в соответствующий массив: /// - Наличие циклов в графе типов /// - Удаление объекта и его мастера в одной транзакции /// - Ситуация, когда агрегатор и детейл имеют мастера одного типа /// - Другие варианты при наличии связанных объектов с разными статусами, т.е. когда часть объектов добавляется, часть - обновляется, часть - удаляется /// </remarks> static void CreateObjects() { var t = new Товар() { Название = "Батон", ЕдиницаИзмерения = "шт", Описание = "Вкусняшка", Цена = 22, КодТовара = 123 }; var t2 = new Товар() { Название = "Гвозди", ЕдиницаИзмерения = "кг", Описание = "Железные гвозди", Цена = 150, КодТовара = 33 }; var s = new Сотрудник() { Фамилия = "Сидоров", Имя = "Сидор", ТабельныйНомер = 345 }; var s2 = new Сотрудник() { Фамилия = "Петров", Имя = "Петр", ТабельныйНомер = 777 }; var skl = new Склад() { Номер = 15, Адрес = "ул. Ленина, 49", Менеджер = s }; var skl2 = new Склад() { Номер = 28, Адрес = "ул. Промышленная, 88", Менеджер = s }; var tovarSkl = new ТоварНаСкладе() { Товар = t, Количество = 10 }; var tovarSkl2 = new ТоварНаСкладе() { Товар = t2, Количество = 5 }; var tovarSkl3 = new ТоварНаСкладе() { Товар = t2, Количество = 4 }; skl.ТоварНаСкладе.Add(tovarSkl); skl.ТоварНаСкладе.Add(tovarSkl2); skl2.ТоварНаСкладе.Add(tovarSkl3); try { var p = new DataObject[] { t, t2, s, s2, skl, skl2 }; var ds = (SQLDataService)DataServiceProvider.DataService; ds.UpdateObjects(ref p); Console.WriteLine("ОК\n"); } catch (Exception e) { Console.WriteLine(string.Format("Ошибка: {0}\n", e.Message)); } }
private void button_Click(object sender, RoutedEventArgs e) { var prod = new Товар() { название_товара = name.Text, количесвто = int.Parse(amount.Text), стоимость = decimal.Parse(value.Text) }; var prodServ = ServiceLocator.GetService <Товар>(); using (prodServ.Uow.Db = new АвтозаправкиEntities()) { prodServ.Save(prod); } }
static void Main() { Техника Сканер1 = new Сканер(); IВключение Комп1 = new Компьютер(); Товар перемещаемый = Сканер1 as Сканер; Техника Планш1 = new Планшет(); Техника Принтер1 = new Печатающее_устройство(); Комп1.TurnOn(); Сканер1.TurnOn(); Printer B = new Printer(Сканер1); B.IAmPrinting(перемещаемый); B.IAmPrinting(Сканер1); B.IAmPrinting(Принтер1); B.IAmPrinting(Планш1); B.IAmPrinting(Комп1); }
/// <summary> /// Создание одного объекта данных в базе данных. /// </summary> static void CreateObject() { var t = new Товар() { Название = "Гвозди", ЕдиницаИзмерения = "кг", Описание = "Железные гвозди", Цена = 150, КодТовара = 33 }; var ds = (SQLDataService)DataServiceProvider.DataService; try { ds.UpdateObject(t); Console.WriteLine("ОК\n"); } catch (Exception e) { Console.WriteLine(string.Format("Ошибка: {0}\n", e.Message)); } }
/// <summary> /// Чтение объекта данных по первичному ключу и последующее удаление данного объекта данных из базы данных. /// </summary> /// <remarks> /// 1. Нужно исправить значение первичного ключа в коде на актуальное, чтобы вычитать реально существующий объект из базы данных /// 2. Если на соответствующий объект ссылаются объекты в базе данных, то объект может не удалиться, так как сработают ограничения целостности в базе данных. /// Такой случай подразумевает реализовацию каскадного удаления данных в бизнес-серверах. /// </remarks> static void DeleteObject() { try { var ds = (SQLDataService)DataServiceProvider.DataService; var t = new Товар(); //Требуется заменить значение первичного ключа на актуальное из базы данных. t.SetExistObjectPrimaryKey("27486786-648C-419B-B0BF-F8BA739ABF58"); ds.LoadObject(t); Console.WriteLine($"Название: {t.Название}\n"); t.SetStatus(ObjectStatus.Deleted); ds.UpdateObject(t); Console.WriteLine("Удален\n"); } catch (Exception e) { Console.WriteLine(string.Format("Ошибка: {0}\n", e.Message)); } }
public void OnUpdateСтрокаЗаказа_НоваяСНаличиемНаСкладе_УспешноВыполняется() { // Arrange var товар = new Товар(); var строка = new СтрокаЗаказа { Количество = 4, Товар = товар, Заказ = new Заказ { егион = new егион { Код = "59" } } }; бс.DiscountService = Mock.Of <IDiscountService>(); бс.WarehouseService = Mock.Of <IWarehouseService>(ws => ws.CanReserveProduct(товар, 4) == true); // Act бс.OnUpdateСтрокаЗаказа(строка); }
public Printer(Товар А) { }
virtual public void IAmPrinting(Товар А) { Console.WriteLine(А.GetType()); А.ToString(); }