public async Task <List <ConfirmArrivalResultDtos> > ConvertToResultAsync(List <Container> containers) { List <ConfirmArrivalResultDtos> result = new List <ConfirmArrivalResultDtos>(); foreach (var item in containers) { ConfirmArrivalResultDtos output = new ConfirmArrivalResultDtos(); Booking booking = await _bookingDataProvider.GetByIdAsync((item.Manifests.ToList())[0].BookingId); Order order = await _orderDataProvider.GetByIdAsync(booking.OrderId); List <CA> confirmArrival = await _confirmArrivalRepository.Query(x => x.ContainerId == item.Id, false).SelectAsync(); List <ArriveOfDespatch> arriveOfDespatch = await _arriveOfDespatchRepository.Query(x => x.ContainerId == item.Id, false).SelectAsync(); //output.DestinationPort = booking.PortOfDelivery; output.DestinationPort = arriveOfDespatch[0].DestinationPort; output.Origin = order.Origin; output.Mode = item.Loading; //output.Carrier = booking.Carrier; output.Carrier = arriveOfDespatch[0].Carrier; output.ETD = booking.ETD; output.Vendor = order.Vendor; output.Container = item.Name; output.Status = item.Status; if (output.Status == ContainerStatus.Despatch) { output.ArrivalDate = booking.ETA; } else { output.ArrivalDate = confirmArrival[0].ArrivalDate; } output.Id = item.Id; var test = typeof(ConfirmArrivalResultDtos).GetProperties()[0].GetValue(output); result.Add(output); } result = result.OrderBy(p => p.DestinationPort).ThenBy(p => p.Origin).ThenBy(p => p.Mode).ThenBy(p => p.Carrier).ThenBy(p => p.ArrivalDate).ThenBy(p => p.Container).ToList(); return(result); }
public bool SameGroup(ConfirmArrivalResultDtos first, ConfirmArrivalResultDtos second) { for (int property = 0; property < 5; property++) { var currentProperty = typeof(ConfirmArrivalResultDtos).GetProperties()[property]; string firstValue = currentProperty.GetValue(first).ToString(); string secondValue = currentProperty.GetValue(second).ToString(); if (firstValue.CompareTo(secondValue) != 0) { return(false); } } return(true); }