public ActionResult <IEnumerable <Position> > Get()
 {
     return(new ActionResult <IEnumerable <Position> >(Repo.GetChangedPositionsBySessionId(6, 30)));
 }
Пример #2
0
        public LastPositionResponseTypeMessage LastPosition(LastPositionRequestTypeMessage message)
        {
            var response = new LastPositionResponseTypeMessage()
            {
                Header = new Header()
                {
                    MessageIDSpecified = true,
                    SessionIDSpecified = true,
                    MessageID          = message.Header.MessageID,
                    SessionID          = message.Header.SessionID
                },
                Body = new LastPositionResponseTypeMessageBody()
                {
                    LastPositionResponse = new LastPositionResponseTypeMessageBodyLastPositionResponse()
                    {
                        VehicleList = new LastPositionResponseTypeMessageBodyLastPositionResponseVehicle[] { }
                    }
                }
            };
            var sess = this.ActiveSessions[message.Header.SessionID.ToString()];

            if (sess != null && sess.Status == Enums.SessionStatus.Active)
            {
                if ((sess.Roles & Enums.ServiceAccountRole.Consumer) == 0)
                {
                    response.Body.LastPositionResponse.Status      = false;
                    response.Body.LastPositionResponse.Description = "Unauthorized.";
                    return(response);
                }

                IEnumerable <Position> positions = Repo.GetChangedPositionsBySessionId(sess.ServiceAccountId, int.Parse(Configuration["MaxFeedAgeSec"]));
                var vList = positions.Select(x => new LastPositionResponseTypeMessageBodyLastPositionResponseVehicle()
                {
                    Bearing     = x.Direction,
                    DateTime    = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(x.AvlDateTime, "UTC", sess.TimeZone).ToString("MM/dd/yyyy hh:mm:ss tt"),
                    Datum       = this.Configuration["Datum"],
                    ID          = x.Address,
                    Latitude    = x.Latitude,
                    Longitude   = x.Longitude,
                    Speed       = x.Velocity,
                    VehicleName = x.VehicleName,
                    Rates       = new LastPositionResponseTypeMessageBodyLastPositionResponseVehicleRates()
                    {
                        Rate1 = "0.0000",
                        Rate2 = "0.0000",
                        Rate3 = "0.0000",
                        Rate4 = "0.0000",
                        Rate5 = "0.0000",
                        Rate6 = "0.0000",
                        Rate7 = "0.0000",
                        Rate8 = "0.0000"
                    },
                    IP = "255.255.255.255"
                });
                response.Body.LastPositionResponse.VehicleList = vList.ToArray();
                response.Body.LastPositionResponse.Status      = true;
                response.Body.LastPositionResponse.Description = "Success";
            }
            else
            {
                response.Body.LastPositionResponse.Status      = false;
                response.Body.LastPositionResponse.Description = "Customer name not logged in";
            }
            return(response);
        }