public void HandleOrder(CreateOrderModel orderModel) { using (var mappers = new ManagementDataMapperContainer()) { var product = mappers.ProductMapper.Get(orderModel.ProductCode); var customer = mappers.CustomerMapper.Get(orderModel.CustomerId); if (product.AvailableAmount < orderModel.Quantity) { // // Order can't be satisfied, notify the user. // NotificationHelper.NotifyOrderCantBeHeld(customer, product); return; } product.AvailableAmount -= orderModel.Quantity; mappers.ProductMapper.Update(product); var customerOrderMapper = mappers.CustomerOrderMapper; customerOrderMapper.Create(new CustomerOrder { CustomerId = orderModel.CustomerId, ProductId = orderModel.ProductCode, OrderAmount = orderModel.Quantity, OrderDate = DateTime.Now, State = (int)OrderState.Processing }); NotificationHelper.NotifyOrderIsBeingProcessed(customer, product); } }
public SupplierModel[] AllSuppliers() { using (var mappers = new ManagementDataMapperContainer()) { var supplierMapper = mappers.ProductSupplierMapper; return supplierMapper.Query().Select( s => new SupplierModel { Id = s.Id, Address = s.Address, Name = s.Name } ).ToArray(); } }
public ProductModel[] AllProducts() { using (var mappers = new ManagementDataMapperContainer()) { var productMapper = mappers.ProductMapper; return productMapper.Query().Select(p => new ProductModel { Code = p.Id, Name = p.Name, Quantity = p.AvailableAmount, Supplier = p.SupplierId }).ToArray(); } }
public CustomerModel[] AllCustomers() { using (var mappers = new ManagementDataMapperContainer()) { var customerMapper = mappers.CustomerMapper; return customerMapper.Query().Select (c => new CustomerModel { Number = c.Id, Address = c.Address, EmailAddress = c.Email } ).ToArray(); } }
public OrderModel[] AllOrders() { using (var mappers = new ManagementDataMapperContainer()) { var orderMapper = mappers.CustomerOrderMapper; return orderMapper.Query().Select(o => new OrderModel { ProductCode = o.ProductId, CustomerId = o.CustomerId, OrderDate = o.OrderDate, Quantity = o.OrderAmount.Value, State = o.State }).ToArray(); } }
public void ChangeOrderState(OrderKeyModel orderModel, OrderState state) { using (var transaction = new TransactionScope(TransactionScopeOption.Required)) { using (var mappers = new ManagementDataMapperContainer()) { var orderMapper = mappers.CustomerOrderMapper; var order = orderMapper.Query().SingleOrDefault(o => o.ProductId == orderModel.ProductCode && o.CustomerId == orderModel.CustomerId && o.OrderDate == orderModel.OrderDate); if (order == null) { throw new ArgumentException("Order doesn't exist!"); } order.State = (int)state; orderMapper.Update(order); NotificationHelper.NotifyOrderChangedState(mappers.CustomerMapper.Get(orderModel.CustomerId), mappers.ProductMapper.Get(orderModel.ProductCode), state.ToString()); } transaction.Complete(); } }
public void RemoveCustomer(RemoveCustomerModel model) { using (var mappers = new ManagementDataMapperContainer()) { var customerMapper = mappers.CustomerMapper; customerMapper.Delete(model.CustomerNumber); } }
public void OrderReceived(OrderProductModel model) { using (var mappers = new ManagementDataMapperContainer()) { var order = mappers.SupplierOrderMapper.Query().FirstOrDefault( o => o.ProductId.Equals(model.ProductCode) && o.SupplierId.Equals(model.Supplier)); if (order == null) return; mappers.SupplierOrderMapper.Delete(order); var product = mappers.ProductMapper.Get(model.ProductCode); if (product == null) return; product.AvailableAmount += order.OrderAmount; mappers.ProductMapper.Update(product); } }
public void OrderProduct(OrderProductModel model) { using (var mappers = new ManagementDataMapperContainer()) { var supplierOrderMapper = mappers.SupplierOrderMapper; supplierOrderMapper.Create(new SupplierOrder { ProductId = model.ProductCode, SupplierId = model.Supplier, OrderAmount = model.Quantity, OrderDate = DateTime.Now }); } }
public OrderModel GetOrder(OrderKeyModel orderModel) { using (var mappers = new ManagementDataMapperContainer()) { var orderMapper = mappers.CustomerOrderMapper; return orderMapper.Query() .Select(o => new OrderModel { ProductCode = o.ProductId, CustomerId = o.CustomerId, OrderDate = o.OrderDate, Quantity = o.OrderAmount.Value, State = o.State }) .SingleOrDefault(o => o.ProductCode == orderModel.ProductCode && o.CustomerId == orderModel.CustomerId && o.OrderDate == orderModel.OrderDate); } }
public void CreateCustomer(CreateCustomerModel model) { using (var mappers = new ManagementDataMapperContainer()) { var customerMapper = mappers.CustomerMapper; customerMapper.Create(new Customer { Address = model.Address, Email = model.EmailAddress }); } }