public IActionResult Get([FromQuery] GetHttpRequest request) { var serviceResponse = _storageService.SelectAll(request.Offset, request.Limit); var response = new GetHttpResponse { Total = serviceResponse.Total, StorageCollection = serviceResponse.Storages.SelectMany( storage => new List <object> { new { storage.Id, storage.Name, storage.RackNumber } }) }; return(StatusCode((int)HttpStatusCode.OK, response)); }
public async void StartListen() { if (_IsRun == false) { if (_Listener == null) { _Listener = new HttpListener(); _Listener.Prefixes.Add(_address); } _Logger.AddItem(LogItem.Create("Started function", LogItemType.Start, FunctionName)); try { _Listener.Start(); } catch (Exception e) { throw new InvalidOperationException("Start Function error", e); } _IsRun = true; Status = "Выключить"; Stopwatch tickCounter = new Stopwatch(); while (true) { tickCounter.Reset(); HttpListenerContext CurrentContext; try { CurrentContext = await _Listener.GetContextAsync(); } catch (Exception e) { if (_Listener != null && _Listener.IsListening) { continue; } else { break; } } var Request = CurrentContext.Request; _Logger.AddItem(LogItem.Create("Receive exchange", LogItemType.Exchange, FunctionName)); Statistics.RequestCount += 1; if (Request.HttpMethod == "GET") { var requestString = Request.QueryString; var GetRequest = Request.RawUrl; Statistics.DataReceive += GetRequest.Length; Dictionary <string, object> Params = GetHttpRequest.GetParams(GetRequest); var par = Params.Values.ToArray(); tickCounter.Start(); var result = _Runner.Run(_FunctionName, par); tickCounter.Stop(); Statistics.TickCounter += tickCounter.ElapsedTicks; var response = CurrentContext.Response; var responseStream = response.OutputStream; if (FunctionSettings.EnableCors) { response.AddHeader("Access-Control-Allow-Headers", FunctionSettings.GetCorsHeaderString); } string responseString; if (result.GetType() != typeof(string)) { responseString = result.ToString(); } else { responseString = (string)result; } var returnArray = Encoding.UTF8.GetBytes(responseString); response.ContentLength64 = returnArray.Length; responseStream.Write(returnArray, 0, returnArray.Length); } else { var stream = Request.InputStream; byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); string strFromRequest = Encoding.UTF8.GetString(array); } } } }