private async Task <List <DCReceivedResultDtos> > ConvertToResultAsync(List <Container> containers) { List <DCReceivedResultDtos> result = new List <DCReceivedResultDtos>(); foreach (var item in containers) { DCReceivedResultDtos output = new DCReceivedResultDtos(); List <DCBooking> booking = await _dcBookingRepository.Query(x => x.ContainerId == item.Id, false).SelectAsync(); List <DCConfirmation> confirmation = await _dcRecievedRepository.Query(x => x.ContainerId == item.Id, false).SelectAsync(); output.ContainerId = item.Id; output.ContainerName = item.Name; output.DC = booking[0].DistributionCenter; output.Haulier = booking[0].Haulier; output.BookingDate = booking[0].BookingDate; output.BookingTime = booking[0].BookingTime; output.BookingRef = booking[0].BookingRef; if (item.Status == ContainerStatus.Delivered) { output.DeliveryDate = confirmation[0].DeliveryDate; output.DeliveryTime = confirmation[0].DeliveryTime; } output.Status = item.Status; output.StatusDescription = item.Status.GetDescription <ContainerStatus>(); result.Add(output); } return(result); }
public async Task <DCReceivedResultDtos> CreateOrUpdateCAAsync(DCReceivedResultDtos input) { DCConfirmation entity = await GetDCConfirmationbyContainerId(input.ContainerId); if (entity != null) { entity.DeliveryDate = input.DeliveryDate; entity.DeliveryTime = input.DeliveryTime; _dcRecievedRepository.Update(entity); } else { entity = Mapper.Map <DCConfirmation>(input); _dcRecievedRepository.Insert(entity); } await UpdateContainer(input.ContainerId); await UnitOfWork.SaveChangesAsync(); return(Mapper.Map <DCReceivedResultDtos>(entity)); }