/// <summary> /// Add new ironing order /// </summary> /// <param name="order"></param> /// <returns></returns> public async Task <int> AddIroningOrderAsync(IroningOrder 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 _ironingRepository.AddAsync(order); await _ironingRepository.Uow.SaveChangesAsync(); var agentAssignmentCountList = (await _ironingRepository.GetAgentOrdersAssignmentCountAsync()).ToList(); var addedOrder = await GetIroningOrderAsync(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 <IActionResult> AddIroningOrderAsync( [FromBody, SwaggerParameter("Model containing the details of the new order to create", Required = true)] IroningOrder order) { return(Ok(await _ironingBusiness.AddIroningOrderAsync(order))); }