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); } }
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); } }
/// <summary> /// Output standard POI List results /// </summary> /// <param name="outputProvider"></param> /// <param name="context"></param> /// <param name="filter"></param> private void OutputPOIList(IOutputProvider outputProvider, HttpContext context, APIRequestSettings filter) { List <OCM.API.Common.Model.ChargePoint> dataList = null; //get list of charge points for output: dataList = new POIManager().GetChargePoints(filter); int numResults = dataList.Count; //send response outputProvider.GetOutput(context.Response.OutputStream, dataList, filter); }
private void OnNewFile(string path) { TimeBasedPoller reader; if (IsRolledFile(path) || _knownFiles.TryGetValue(path, out reader)) { return; } var output = _outputProvider.GetOutput(path); _knownFiles.Add(path, new TimeBasedPoller(new RollingFileReader(path, _positionStore, _readBehaviour), (buf, pos, len) => { output.Write(buf, pos, len); output.Flush(); return(true); })); }
/// <summary> /// Output standard POI List results /// </summary> /// <param name="outputProvider"></param> /// <param name="context"></param> /// <param name="filter"></param> private void OutputPOIList(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { #if DEBUG var stopwatch = Stopwatch.StartNew(); #endif List <OCM.API.Common.Model.ChargePoint> dataList = null; //get list of charge points for output: dataList = new POIManager().GetChargePoints(filter); #if DEBUG System.Diagnostics.Debug.WriteLine("OutputPOIList: Time for Query/Conversion: " + stopwatch.ElapsedMilliseconds + "ms"); stopwatch.Restart(); #endif //send response outputProvider.GetOutput(context.Response.OutputStream, dataList, filter); #if DEBUG System.Diagnostics.Debug.WriteLine("OutputPOIList: Time for Output to stream: " + stopwatch.ElapsedMilliseconds + "ms"); #endif }
/// <summary> /// Output standard POI List results /// </summary> /// <param name="outputProvider"></param> /// <param name="context"></param> /// <param name="filter"></param> private async Task OutputPOIList(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { #if DEBUG var stopwatch = Stopwatch.StartNew(); #endif IEnumerable <OCM.API.Common.Model.ChargePoint> dataList = null; //get list of charge points for output: var poiManager = new POIManager(); dataList = await poiManager.GetPOIListAsync(filter); #if DEBUG System.Diagnostics.Debug.WriteLine("OutputPOIList: Time for Query/Conversion: " + stopwatch.ElapsedMilliseconds + "ms"); stopwatch.Restart(); #endif //send response await outputProvider.GetOutput(context, context.Response.Body, dataList, filter); #if DEBUG System.Diagnostics.Debug.WriteLine("OutputPOIList: Time for Output to stream: " + stopwatch.ElapsedMilliseconds + "ms"); #endif }
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); }
/// <summary> /// Output Core Reference Data (lookup lists, default objects) /// </summary> /// <param name="outputProvider"></param> /// <param name="context"></param> /// <param name="filter"></param> private void OutputCoreReferenceData(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { //get core reference data var refDataManager = new ReferenceDataManager(); CoreReferenceData data = null; //cache result if (HttpContext.Current.Cache["CoreRefData"] != null && filter.EnableCaching) { data = (CoreReferenceData)HttpContext.Current.Cache["CoreRefData"]; } else { data = refDataManager.GetCoreReferenceData(); HttpContext.Current.Cache.Add("CoreRefData", data, null, Cache.NoAbsoluteExpiration, new TimeSpan(1, 0, 0), CacheItemPriority.Normal, null); } //populate non-cached fragments (user profile) data.UserProfile = new InputProviderBase().GetUserFromAPICall(context); //send response outputProvider.GetOutput(context.Response.OutputStream, data, filter); }
/// <summary> /// Output Core Reference Data (lookup lists, default objects) /// </summary> /// <param name="outputProvider"></param> /// <param name="context"></param> /// <param name="filter"></param> private async Task OutputCoreReferenceData(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { //get core reference data using (var refDataManager = new ReferenceDataManager()) { if (_settings.IsCacheOnlyMode) { filter.AllowDataStoreDB = false; } var data = await refDataManager.GetCoreReferenceDataAsync(filter); if (data != null) { //send response await outputProvider.GetOutput(context, context.Response.Body, data, filter); } else { // failed await new JSONOutputProvider().GetOutput(context, context.Response.Body, new { Status = "Error", Message = "Cache not ready, canoot return results" }, filter); } } }
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); } }
/// <summary> /// Construct a pipeline stage. /// </summary> /// <param name="name">The name of the stage.</param> /// <param name="pipelineDepth">The maximum depth of the queue allowed in this stage.</param> /// <param name="previousStage">The previous stage from where this stage takes its input.</param> /// <param name="isParallel">Set to true to use parallel threads in this stage.</param> public PipelineStage(string name, int pipelineDepth, IOutputProvider <TInputType> previousStage, bool isParallel) : this(name, pipelineDepth, previousStage.GetOutput(), isParallel, true) { }
/// <summary> /// Construct a pipeline stage. /// </summary> /// <param name="name">The name of the stage.</param> /// <param name="pipelineDepth">The maximum depth of the queue allowed in this stage.</param> /// <param name="previousStage">The previous stage from where this stage takes its input.</param> /// <param name="isParallel">Set to true to use parallel threads in this stage.</param> /// <param name="shouldWaitForOutputQueue">Set to false to indicate completion without waiting for the output queue to drain.</param> public PipelineStage(string name, int pipelineDepth, IOutputProvider <TInputType> previousStage, bool isParallel, bool shouldWaitForOutputQueue) : this(name, pipelineDepth, previousStage.GetOutput(), isParallel, shouldWaitForOutputQueue) { }
/// <summary> /// Output standard POI List results /// </summary> /// <param name="outputProvider"></param> /// <param name="context"></param> /// <param name="filter"></param> private void OutputPOIList(IOutputProvider outputProvider, HttpContext context, APIRequestParams filter) { List<OCM.API.Common.Model.ChargePoint> dataList = null; //get list of charge points for output: dataList = new POIManager().GetChargePoints(filter); int numResults = dataList.Count; //send response outputProvider.GetOutput(context.Response.OutputStream, dataList, filter); }