//delete order public bool DeleteOrder(int orderId) { try { using (TransactionScope scope = new TransactionScope()) { Order order = _orderRepository.Get(x => x.Id == orderId).FirstOrDefault(); List <OrderItem> orderItems = _orderItemRepository.Get(x => x.OrderId == order.Id).ToList(); foreach (var orderItem in orderItems) { OrderItemProduct orderItemProduct = _orderItemProductRepository.Get(x => x.OrderItemId == orderItem.Id).FirstOrDefault(); //increment Quantity in Product table _productService.IncrementProductQuentity(orderItemProduct.ProductId, orderItem.Quantity); _orderItemProductRepository.Remove(orderItemProduct); _orderItemProductRepository.Save(); _orderItemRepository.Remove(orderItem); _orderItemRepository.Save(); } _orderRepository.Remove(order); _orderRepository.Save(); //Payment payment = _paymentRepository.Get(x=>x.OrderId==orderId).FirstOrDefault(); //_paymentRepository.Remove(payment); //_paymentRepository.Save(); scope.Complete(); return(true); } } catch (Exception ex) { Console.WriteLine(new Exception(ex.Message)); return(false); } }
//CreateNewOrder public OrderDto CreateNewOrder(OrderVM orderVM) { try { using (TransactionScope scope = new TransactionScope()) { OrderDto orderDto = new OrderDto() { CreatedAt = DateTime.Now, CustomerId = orderVM.CustomerId, CustomerLatitude = orderVM.CustomerLatitude, CustomerLongitude = orderVM.CustomerLongitude, SellerId = orderVM.SellerId, Status = orderVM.Status, }; Order orderToAdd = Mapper.Map <Order>(orderDto); _orderRepository.Add(orderToAdd); bool orderResult = _orderRepository.Save(); bool x = orderResult; foreach (var orderItem in orderVM.Items) { OrderItemDto orderItemDto = new OrderItemDto() { OrderId = Mapper.Map <Order>(orderToAdd).Id, //OrderId Quantity = orderItem.Quantity }; //Map OrderItem orderItemToAdd = Mapper.Map <OrderItem>(orderItemDto); _orderItemRepository.Add(orderItemToAdd); _orderItemRepository.Save(); OrderItemProductDto orderItemProductDto = new OrderItemProductDto() { OrderItemId = Mapper.Map <OrderItem>(orderItemToAdd).Id, ProductId = orderItem.ProductId }; //Map OrderItemProduct orderItemProductToAdd = Mapper.Map <OrderItemProduct>(orderItemProductDto); _orderItemProductRepository.Add(orderItemProductToAdd); bool orderItemProductResult = _orderItemProductRepository.Save(); //reduce Quantity in Product table _productService.ReduceProductQuentity(orderItem.ProductId, orderItem.Quantity); } //payment table create double price = _paymentService.CalculateOrderPrice(orderToAdd.CustomerId, orderToAdd.Id); _paymentService.CreateNewPayment(orderToAdd.Id, price); scope.Complete(); return(Mapper.Map <OrderDto>(orderToAdd)); } } catch (Exception ex) { Console.WriteLine(new Exception(ex.Message)); return(null); } }