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);
        }
Exemplo n.º 2
0
        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);
        }