/// <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);
        }
Пример #2
0
 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)));
 }