private void OutputGeocodingResult(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { GeocodingResult result = null; //get or get and cache result if (HttpContext.Current.Cache["Geocoding_" + filter.HashKey] != null && filter.EnableCaching) { result = (GeocodingResult)HttpContext.Current.Cache["Geocoding_" + filter.HashKey]; } else { var geocoder = new GeocodingHelper(); geocoder.IncludeExtendedData = true; //result = geocoder.GeolocateAddressInfo_OSM(filter.Address); result = geocoder.GeolocateAddressInfo_Google(filter.Address); HttpContext.Current.Cache.Add("Geocoding_" + filter.HashKey, result, null, Cache.NoAbsoluteExpiration, new TimeSpan(1, 0, 0), CacheItemPriority.Normal, null); } //send API response if (filter.IsEnvelopedResponse) { var responseEnvelope = new APIResponseEnvelope(); responseEnvelope.Data = result; outputProvider.GetOutput(context.Response.OutputStream, responseEnvelope, filter); } else { outputProvider.GetOutput(context.Response.OutputStream, result, filter); } }
private void OutputProfileSignInResult(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { var sr = new System.IO.StreamReader(context.Request.InputStream); string jsonContent = sr.ReadToEnd(); var loginModel = JsonConvert.DeserializeObject <LoginModel>(jsonContent); User user = new OCM.API.Common.UserManager().GetUser(loginModel); string access_token = null; var responseEnvelope = new APIResponseEnvelope(); if (user == null) { context.Response.StatusCode = 401; context.Response.Flush(); return; } else { access_token = Security.JWTAuth.GenerateEncodedJWT(user); /* * var validatedToken = Security.JWTAuthTicket.ValidateJWTForUser(testTicket, user); */ } responseEnvelope.Data = new { UserProfile = user, access_token = access_token }; outputProvider.GetOutput(context.Response.OutputStream, responseEnvelope, filter); }
private void OutputGeocodingResult(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { GeocodingResult result = null; //get or get and cache result /*if (context.Cache["Geocoding_" + filter.HashKey] != null && filter.EnableCaching) * { * result = (GeocodingResult)context.Cache["Geocoding_" + filter.HashKey]; * } * else * { * * * //context.Cache.Add("Geocoding_" + filter.HashKey, result, null, Cache.NoAbsoluteExpiration, new TimeSpan(1, 0, 0), CacheItemPriority.Normal, null); * }*/ var geocoder = new GeocodingHelper(_settings); geocoder.IncludeExtendedData = false; if (!string.IsNullOrEmpty(filter.Address)) { result = geocoder.GeolocateAddressInfo_MapquestOSM(filter.Address); } else if (filter.Latitude != null && filter.Longitude != null) { result = geocoder.ReverseGecode_MapquestOSM((double)filter.Latitude, (double)filter.Longitude, new ReferenceDataManager()); if (!result.ResultsAvailable) { result = geocoder.ReverseGecode_OSM((double)filter.Latitude, (double)filter.Longitude, new ReferenceDataManager()); } } //send API response if (filter.IsEnvelopedResponse) { var responseEnvelope = new APIResponseEnvelope(); responseEnvelope.Data = result; outputProvider.GetOutput(context, context.Response.Body, responseEnvelope, filter); } else { outputProvider.GetOutput(context, context.Response.Body, result, filter); } }
public ActionResult Authenticate(LoginModel login) { User user = new OCM.API.Common.UserManager().GetUser(login); string access_token = null; var responseEnvelope = new APIResponseEnvelope(); if (user == null) { return(Unauthorized()); } else { access_token = Security.JWTAuth.GenerateEncodedJWT(user); } responseEnvelope.Data = new { UserProfile = user, access_token = access_token }; return(Ok(responseEnvelope)); }
private void OutputAvailabilityResult(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { //TODO: provider specific availability check with result caching var results = new List <object>(); foreach (var poiId in filter.ChargePointIDs) { results.Add(new { id = filter.ChargePointIDs, status = StandardStatusTypes.Unknown, timestamp = DateTime.UtcNow }); } //send API response if (filter.IsEnvelopedResponse) { var responseEnvelope = new APIResponseEnvelope(); responseEnvelope.Data = results; outputProvider.GetOutput(context.Response.OutputStream, responseEnvelope, filter); } else { outputProvider.GetOutput(context.Response.OutputStream, results, filter); } }
private async Task OutputProfileRegisterResult(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { var sr = new System.IO.StreamReader(context.Request.Body); string jsonContent = sr.ReadToEnd(); var registration = JsonConvert.DeserializeObject <RegistrationModel>(jsonContent); User user = null; if (!string.IsNullOrEmpty(registration.EmailAddress) && registration.EmailAddress.Trim().Length > 5 && registration.EmailAddress.Contains("@")) { if (!string.IsNullOrWhiteSpace(registration.Password) && registration.Password.Trim().Length > 4) { user = new OCM.API.Common.UserManager().RegisterNewUser(registration); } } else { context.Response.StatusCode = 401; } string access_token = null; var responseEnvelope = new APIResponseEnvelope(); if (user != null) { context.Response.StatusCode = 401; return; } else { access_token = Security.JWTAuth.GenerateEncodedJWT(user); } responseEnvelope.Data = new { UserProfile = user, access_token = access_token }; await outputProvider.GetOutput(context, context.Response.Body, responseEnvelope, filter); }