private bool GetIsPackageArrivedFrom(SroEvent @event)
        {
            var destination            = new Location();
            var isDestinationAvailable = GetIsDestinationAvailable(@event);
            var eventLocationsList     = new List <Location>();
            var isArrived = false;

            if (isDestinationAvailable)
            {
                destination = SroResponseJsonAdapter.GetForwarededToLocationFrom(@event);
            }
            else
            {
                destination = SroResponseJsonAdapter.GetLocationFrom(@event);
            }

            Json.evento.ForEach(_event =>
            {
                var eventLocation  = SroResponseJsonAdapter.GetLocationFrom(_event);
                var locationsMatch = LocationEntity.CompareLocationsBool(destination, eventLocation);

                if (locationsMatch)
                {
                    isArrived = true;
                }
            });

            return(isArrived);
        }
        private Location GetForwardedToLocationFrom(SroEvent @event)
        {
            var destinationAvailable = GetIsDestinationAvailable(@event);

            if (destinationAvailable)
            {
                return(SroResponseJsonAdapter.GetForwarededToLocationFrom(@event));
            }
            return(SroResponseJsonAdapter.GetLocationFrom(@event));
        }
Exemplo n.º 3
0
        public static async Task <string> GetShipmentLastMessageAsync(string trackingCode)
        {
            try
            {
                var json = await CorreiosRastreamento.PegarDadosDeRastreamento(trackingCode);

                return(SroResponseJsonAdapter.GetLastMessageFrom(json));
            }
            catch (Exception e)
            {
                throw;
            }
        }
Exemplo n.º 4
0
        public static async Task <List <ForwardingEvent> > GetForwardingEventListAsync(string trackingCode)
        {
            try
            {
                var json = await CorreiosRastreamento.PegarDadosDeRastreamento(trackingCode);

                return(SroResponseJsonAdapter.GetForwardingEventListFrom(json));
            }
            catch (Exception e)
            {
                throw;
            }
        }
Exemplo n.º 5
0
        public static async Task <AwaitingForPickUpEvent> GetAwaitingForPickUpEventAsync(string trackingCode)
        {
            try
            {
                var json = await CorreiosRastreamento.PegarDadosDeRastreamento(trackingCode);

                return(SroResponseJsonAdapter.GetAwaitingForPickUpEventFrom(json));
            }
            catch (Exception e)
            {
                throw;
            }
        }
        private ForwardingEvent GetForwardingEventFrom(SroEvent @event)
        {
            var _event = new ForwardingEvent()
            {
                Dates     = new ShipmentEventDates(),
                Locations = new ForwardedToLocations()
            };

            _event.PackageHasArrived       = GetIsPackageArrivedFrom(@event);
            _event.BoundryMessage          = GetBoundryMessageFrom(@event);
            _event.Dates.OccurredAt        = SroResponseJsonAdapter.GetDateTimeFrom(@event);
            _event.Locations.ForwardedFrom = SroResponseJsonAdapter.GetLocationFrom(@event);
            _event.Locations.ForwardedTo   = GetForwardedToLocationFrom(@event);
            _event.ArrivedAt = GetArrivalDateTimeFrom(_event.Locations.ForwardedTo);

            return(_event);
        }
        private DateTime GetArrivalDateTimeFrom(Location location)
        {
            var date   = new DateTime();
            var events = Json.evento;

            for (var i = events.Count - 1; i >= 0; i--)
            {
                var @event         = events[i];
                var eventLocation  = SroResponseJsonAdapter.GetLocationFrom(@event);
                var locationsMatch = LocationEntity.CompareLocationsBool(eventLocation, location);
                if (locationsMatch)
                {
                    date = SroResponseJsonAdapter.GetDateTimeFrom(@event);
                }
            }
            return(date);
        }