Esempio n. 1
0
        /// <summary>
        /// </summary>
        /// <param name="ProfileID"></param>
        /// <param name="LastUpdateTime"></param>
        /// <returns>Returns null if no location detials</returns>
        public async Task <ProfileLite> GetUserLocation(string profileID, string lastUpdateTime)
        {
            string      liveUserID     = WebOperationContext.Current.IncomingRequest.Headers["LiveUserID"];
            long        ProfileID      = Convert.ToInt64(profileID);
            long        LastUpdateTime = Convert.ToInt64(lastUpdateTime);
            ProfileLite rMemLite       = new ProfileLite();

            bool isAuthorizedForSelf = await _authService.SelfAccess(liveUserID, ProfileID);

            bool isAuthorizedForLocateBuddy = await _authService.LocateBuddyAccess(liveUserID, ProfileID);

            if (isAuthorizedForSelf || isAuthorizedForLocateBuddy)
            {
                var geoLiveLocation = await _locRepository.GetLocationData(ProfileID, LastUpdateTime);

                if (geoLiveLocation == null && geoLiveLocation.ToList().Count == 0)
                {
                    ResultsManager.AddResultInfo(rMemLite, ResultTypeEnum.Information, "NOLOCDTL:" + profileID);
                    return(rMemLite);
                }


                if (geoLiveLocation != null && geoLiveLocation.ToList().Count > 0)
                {
                    List <GeoTag> sGeo = geoLiveLocation.ToList().ConvertToGeoTagList();
                    rMemLite.LastLocs = sGeo;
                }
            }
            else
            {
                Utility.ResultsManager.AddResultInfo(rMemLite, ResultTypeEnum.AuthError, "You are not authorized to view locations for this profile");
            }

            return(rMemLite);
        }
Esempio n. 2
0
        /// <summary>
        /// </summary>
        /// <param name="profileID"></param>
        /// <param name="Token"></param>
        /// <param name="lastUpdateTime"></param>
        /// <returns></returns>
        public async Task <BasicProfile> GetUserLocationsByToken(string profileID, string sessionID, string lastUpdateTime)
        {
            long ProfileID      = Convert.ToInt64(profileID);
            long LastUpdateTime = Convert.ToInt64(lastUpdateTime);

            var retprofile = new BasicProfile();

            List <LiveLocation> tokenizedLocationList =
                await _locRepository.GetLocationDataByToken(ProfileID, sessionID, LastUpdateTime);

            if (tokenizedLocationList == null || tokenizedLocationList.Count == 0)
            {
                ResultsManager.AddResultInfo(retprofile, ResultTypeEnum.Error,
                                             "No Loation details for Profile:" + profileID);
                return(retprofile);
            }

            List <BasicGeoTag> sGeo = tokenizedLocationList.ConvertToBasicGeoTagList();

            retprofile.LastLocs = sGeo;

            BasicGeoTag lastGeoLoc = sGeo[sGeo.Count - 1];

            retprofile.IsSOSOn      = lastGeoLoc.IsSOS.HasValue ? lastGeoLoc.IsSOS.Value : false; //1
            retprofile.IsTrackingOn = !(lastGeoLoc.IsSOS.HasValue ? lastGeoLoc.IsSOS.Value : false) ||
                                      !string.IsNullOrEmpty(lastGeoLoc.Lat);                      //0,1

            return(retprofile);
        }
Esempio n. 3
0
        public async Task <ProfileLite> GetLocationDetails(string ProfileID, string GroupID, string LastUpdateDateTicks)
        {
            //note: here only location details are returned, no profile and user details
            var resProfileLite = new ProfileLite();

            GeoTagList listLocationData = await GetUserLocations(ProfileID, LastUpdateDateTicks, GroupID);

            if (listLocationData == null || listLocationData.List == null || listLocationData.List.Count < 1)
            {
                resProfileLite.IsSOSOn      = false;
                resProfileLite.IsTrackingOn = false;
            }
            else
            {
                resProfileLite.ProfileID = Convert.ToInt64(ProfileID);
                //just passing avaialable info, imp is location details alone
                GeoTag latest = listLocationData.List[listLocationData.List.Count - 1];
                resProfileLite.IsSOSOn      = latest.IsSOS.Value;
                resProfileLite.IsTrackingOn = !latest.IsSOS.Value || !string.IsNullOrEmpty(latest.Lat);

                resProfileLite.LastLocs = listLocationData.List;
                ResultsManager.AddResultInfo(resProfileLite, ResultTypeEnum.Success, "Location details filled.");
            }

            if (!resProfileLite.IsSOSOn && !resProfileLite.IsTrackingOn)
            {
                ResultsManager.AddResultInfo(resProfileLite, ResultTypeEnum.Success, "No Tracking or SOS Details found");
            }

            return(resProfileLite);
        }
Esempio n. 4
0
        public async Task <LiveUserStatusList> GetLiveLocateBuddiesByUserId(string UserID)
        {
            string liveUserID   = WebOperationContext.Current.IncomingRequest.Headers["LiveUserID"];
            long   userID       = Convert.ToInt64(UserID);
            bool   isAuthorized = await _authService.ValidUserAccess(liveUserID, userID);

            LiveUserStatusList liveBuddyMembers = null;

            if (isAuthorized)
            {
                List <LiveUserStatus> liveBuddies = await _locRepository.GetLiveLocateBuddiesByUserId(userID);

                List <Interfaces.DataContracts.OutBound.LiveUserStatus> liveBuddyMembersLst =
                    liveBuddies.ConvertToLiveMemberStatusList();

                liveBuddyMembers = new LiveUserStatusList {
                    List = liveBuddyMembersLst
                };
            }
            else
            {
                liveBuddyMembers = new LiveUserStatusList();
                ResultsManager.AddResultInfo(liveBuddyMembers, ResultTypeEnum.AuthError,
                                             "You are not authorized to view these buddies");
            }

            return(liveBuddyMembers);
        }
Esempio n. 5
0
        /// <summary>
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public async Task <ProfileLiteList> GetBuddiesToLocate(string userID)
        {
            long UserID  = Convert.ToInt64(userID);
            var  oReturn = new ProfileLiteList();

            string liveUserID = WebOperationContext.Current.IncomingRequest.Headers["LiveUserID"];
            //TODO: remove userID as input and continue with liveuserid
            bool isAuthorized = await _authService.ValidUserAccess(liveUserID, UserID);

            if (isAuthorized)
            {
                List <ProfileLite> budList = await GetLocateBuddies(UserID);

                if (budList != null && budList.Count > 0)
                {
                    oReturn.List = budList;
                }
                else
                {
                    ResultsManager.AddResultInfo(oReturn, ResultTypeEnum.Error,
                                                 "Dependent List not loaded for UserID:" + userID);
                }
            }
            else
            {
                ResultsManager.AddResultInfo(oReturn, ResultTypeEnum.AuthError,
                                             "You are not authorized to access this method");
            }

            return(oReturn);
        }
Esempio n. 6
0
        public HistoryList GetHistorySessions(string profileID, string startDate, string endDate)
        {
            //confirm if null should be returned in case of empty start and end dates
            if (profileID == "0" || string.IsNullOrEmpty(startDate) || string.IsNullOrEmpty(endDate))
            {
                return(null);
            }

            long ProfileID = Convert.ToInt64(profileID);

            var resultHistory = new HistoryList();

            DateTime vStartTime;
            DateTime vEndTime;

            vStartTime = Converter.ToDateTime(startDate).Date;
            vEndTime   = Converter.ToMaxDateTime(endDate).Date.AddMinutes(1440).AddSeconds(-1);

            List <entity.SessionHistory> sessionHistoryData = _GPSA.GetSessionHistory(profileID, vStartTime, vEndTime);

            sessionHistoryData = sessionHistoryData.OrderByDescending(o => o.SessionStartTime).ToList();
            if (sessionHistoryData == null || sessionHistoryData.Count == 0)
            {
                ResultsManager.AddResultInfo(resultHistory, ResultTypeEnum.Error, "No history data found.");
                return(resultHistory);
            }
            //Get History Media Data

            resultHistory = Caster.MakeContractSessionHistoryList(sessionHistoryData);

            return(resultHistory);
        }
Esempio n. 7
0
        public IncidentList GetIncidentsbyID(string IdentificationToken, string incidentID)
        {
            // Authenticate the Request from Token

            var incidents = new IncidentList {
                List = new List <Incident>()
            };

            string mobileNumber = string.Empty;

            var Incidents = new List <entity.Incident>();

            try
            {
                Incidents = _incidentAccess.GetAllIncidentsDataByID(incidentID);
                if (Incidents != null)
                {
                    Incidents.ForEach(tease => { incidents.List.Add(Caster.MakeContractIncident(tease)); });

                    ResultsManager.AddResultInfo(incidents, ResultTypeEnum.Success, "Successed");
                }
            }
            catch
            {
                ResultsManager.AddResultInfo(incidents, ResultTypeEnum.Exception, "Failed");
            }
            return(incidents);
        }
Esempio n. 8
0
        public IncidentList GetIncidentsbyDates(string IdentificationToken, string startDate, string endDate)
        {
            // Authenticate the Request from Token

            var incidents = new IncidentList {
                List = new List <Incident>()
            };

            DateTime vStartTime;
            DateTime vEndTime;
            string   mobileNumber = string.Empty;

            vStartTime = Converter.ToDateTime(startDate).Date;
            vEndTime   = Converter.ToMaxDateTime(endDate).Date.AddMinutes(1440).AddSeconds(-1);

            var Incidents = new List <entity.Incident>();

            try
            {
                Incidents = _incidentAccess.GetAllIncidentsDataByFilter(vStartTime.Ticks.ToString(),
                                                                        vEndTime.Ticks.ToString());
                if (Incidents != null)
                {
                    Incidents.ForEach(tease => { incidents.List.Add(Caster.MakeContractIncident(tease)); });

                    ResultsManager.AddResultInfo(incidents, ResultTypeEnum.Success, "Successed");
                }
            }
            catch
            {
                ResultsManager.AddResultInfo(incidents, ResultTypeEnum.Exception, "Failed");
            }
            return(incidents);
        }
Esempio n. 9
0
        /// <summary>
        /// </summary>
        /// <param name="profileID"></param>
        /// <param name="lastUpdateTimeTicks"></param>
        /// <returns></returns>
        public async Task <GeoTagList> GetUserLocations(string profileID, string lastUpdateTimeTicks,
                                                        string GroupID = "0")
        {
            string liveUserID = WebOperationContext.Current.IncomingRequest.Headers["LiveUserID"];
            string UType      = WebOperationContext.Current.IncomingRequest.Headers["UserType"];

            long ProfileID           = Convert.ToInt64(profileID);
            long LastUpdateTimeTicks = Convert.ToInt64(lastUpdateTimeTicks);

            bool isAuthorized = false;

            if (UType != null && Convert.ToChar(UType) == 'a')
            {
                isAuthorized = await _authService.OwnGroupMembersAccess(liveUserID, Convert.ToInt32(GroupID), ProfileID);
            }
            else
            {
                bool isAuthorizedForSelf = await _authService.SelfAccess(liveUserID, ProfileID);

                bool isAuthorizedForLocateBuddy = await _authService.LocateBuddyAccess(liveUserID, ProfileID);

                if (isAuthorizedForSelf || isAuthorizedForLocateBuddy)
                {
                    isAuthorized = true;
                }
            }
            var geoTagList = new GeoTagList();

            if (isAuthorized)
            {
                List <LiveLocation> geoLiveLocation =
                    (await _locRepository.GetLocationData(ProfileID, LastUpdateTimeTicks)).ToList();

                List <GeoTag> LiveLocationData = geoLiveLocation.ConvertToGeoTagList();
                geoTagList.List = LiveLocationData;
            }
            else
            {
                ResultsManager.AddResultInfo(geoTagList, ResultTypeEnum.AuthError,
                                             "You are not authorized to view locations for this profile");
            }

            return(geoTagList);
        }
Esempio n. 10
0
        /// <summary>
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="dummyTicks"></param>
        /// <returns></returns>
        public async Task <ProfileLiteList> GetBuddiesToLocateLastLocation(string userID, string dummyTicks)
        {
            long UserID = Convert.ToInt64(userID);

            string liveUserID = WebOperationContext.Current.IncomingRequest.Headers["LiveUserID"];

            bool isAuthorized = await _authService.ValidUserAccess(liveUserID, UserID);

            var profileLiteList = new ProfileLiteList();

            if (isAuthorized)
            {
                profileLiteList.List = await GetLocateBuddies(UserID);
            }
            else
            {
                ResultsManager.AddResultInfo(profileLiteList, ResultTypeEnum.AuthError,
                                             "You are not authorized to access this method");
            }

            return(profileLiteList);
        }
Esempio n. 11
0
        public IncidentList GetIncidents(string IdentificationToken)
        {
            // Authenticate the Request from Token

            var incidents = new IncidentList {
                List = new List <Incident>()
            };

            var Incidents = new List <entity.Incident>();

            try
            {
                Incidents = _incidentAccess.GetAllIncidents();

                Incidents.ForEach(tease => { incidents.List.Add(Caster.MakeContractIncident(tease)); });

                ResultsManager.AddResultInfo(incidents, ResultTypeEnum.Success, "Successed");
            }
            catch
            {
                ResultsManager.AddResultInfo(incidents, ResultTypeEnum.Exception, "Failed");
            }
            return(incidents);
        }