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