/// <summary> /// Add new laundry order /// </summary> /// <param name="order"></param> /// <returns></returns> public async Task <int> AddLaundryOrderAsync(LaundryOrder order) { if (order.NoOfCloths == 0 || order.PickUpDate == null || order.PickUpTimeSlot == null || order.PickUpAddress == null || order.OrderStatus == null) { return((int)StatusCode.ExpectationFailed); } order.CreatedAt = DateTime.UtcNow; await _laundryRepository.AddAsync(order); await _laundryRepository.Uow.SaveChangesAsync(); var agentAssignmentCountList = (await _ironingRepository.GetAgentOrdersAssignmentCountAsync()).ToList(); var addedOrder = await GetLaundryOrderAsync(order.Id); if (agentAssignmentCountList.Count() > 0 && addedOrder != null) { var orderMapping = new OrderAgentMapping(); orderMapping.OrderMappingId = Guid.NewGuid(); orderMapping.AgentId = agentAssignmentCountList[0].AgentId; orderMapping.OrderId = addedOrder.OrderId; await _orderAgentMappingRepository.AddAsync(orderMapping); await _orderAgentMappingRepository.Uow.SaveChangesAsync(); } return(order.Id); }
public async Task <int> UpdateOrderAssignemnt(Guid agentId, List <string> OrderId) { if (OrderId.Count() <= 0) { return((int)StatusCode.ExpectationFailed); } var existingOrderMapping = await _orderAgentMappingRepository.SelectAsync(o => OrderId.Contains(o.OrderId)); if (existingOrderMapping.Any()) { await _orderAgentMappingRepository.DeleteRangeAsync(existingOrderMapping); } var orderMappingList = new List <OrderAgentMapping>(); for (int i = 0; i < OrderId.Count(); i++) { var orderMapping = new OrderAgentMapping(); orderMapping.OrderMappingId = Guid.NewGuid(); orderMapping.AgentId = agentId; orderMapping.OrderId = OrderId[i]; orderMappingList.Add(orderMapping); } await _orderAgentMappingRepository.AddRangeAsync(orderMappingList); await _orderAgentMappingRepository.Uow.SaveChangesAsync(); return((int)StatusCode.SuccessfulStatusCode); }