/// <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); }
/// <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); }
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); }
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); }
/// <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); }
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); }
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); }
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); }
/// <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); }
/// <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); }
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); }