public static BaseResponse Process(Request request) { BaseResponse response = null; var config = new ConfigReader(HostingEnvironment.MapPath("~/App_Data/ServerConfig.xml")).Read(); var handlers = HandlerFactory.Find(request); try { foreach (var handler in handlers) { DataResponse dataResponse; if (handler.Process(request, config, out dataResponse)) { response = dataResponse; break; } } } catch (Exception ex) { var errorResponse = Utils.CreateResponse<ErrorResponse>(); errorResponse.Message = ex.Message; errorResponse.Detail = ex.ToString(); response = errorResponse; } return response; }
public static IEnumerable<BaseHandler> Find(Request request) { if (string.IsNullOrEmpty(request.Handler)) return _handlers.Take(1); var result = _handlers.Where(h => h.Handler == request.Handler); return result; }
public Response Accept(Request id) { Response response = null; var config = new ConfigReader(HostingEnvironment.MapPath("~/App_Data/ServerConfig.xml")).Read(); var handlers = HandlerFactory.Find(id); foreach (var handler in handlers) { if (handler.Process(id, config, out response)) break; } return response; }
public async Task<Response> Send(Request request) { using (var client = new HttpClient()) { client.BaseAddress = _uri; client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var response = await client.PostAsJsonAsync("api/service/accept", request); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsAsync<Response>(); return content; } return null; } }
public override bool Process(Request request, ServerConfig config, out Response response) { var schema = config.Schemas.FirstOrDefault(s => s.Id == request.Payload.Schema); if (schema != null) { var connection = config.Connections.FirstOrDefault(c => c.Id == schema.Connection); if (connection != null) { var dataAccess = DataFactory.Find(connection); if (dataAccess != null) { var dataList = dataAccess.Process(request, connection, schema); response = new Response { CreatedDate = DateTime.Now, Id = request.Id, Payload = new Payload { Schema = request.Payload.Schema, Data = dataList }, Tag = request.Tag }; return true; } } } response = null; return true; }
public override bool Process(Request request, ServerConfig config, out DataResponse dataResponse) { var schema = config.Schemas.FirstOrDefault(s => s.Id == request.Payload.Schema); if (schema != null) { var connection = config.Connections.FirstOrDefault(c => c.Id == schema.Connection); if (connection != null) { var dataAccess = DataFactory.Find(connection); if (dataAccess != null) { var dataList = dataAccess.Process(request, connection, schema); dataResponse = Utils.CreateResponse<DataResponse>(true, request.Tag); dataResponse.Payload = new Payload { Schema = request.Payload.Schema, Data = dataList }; return true; } } } dataResponse = null; return true; }
public abstract bool Process(Request request, ServerConfig config, out DataResponse dataResponse);
public abstract DataList Process(Request request, Connection connection, Schema schema);
public BaseResponse Accept(Request id) { return DataProcessor.Process(id); }