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));
        }
示例#2
0
 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);
             }
         }
     }
 }