Exemple #1
0
        private async Task <Models.CurrencyPrice> PerformRequest(Common.CurrencyPrice type, string url, TimeSpan timeout)
        {
            SvcResponse result = null;

            using (var req = new Request(_logger)) {
                await req
                .OnResult(async (res) => {
                    if (res.GetHttpStatus() == System.Net.HttpStatusCode.OK)
                    {
                        result = await res.ToJson <SvcResponse>();
                    }
                })
                .SendGet(url, timeout)
                ;
            }

            if (result == null)
            {
                var ex = new Exception($"Failed to get gold rate");
                _logger.Error(ex, ex.ToString());
                throw ex;
            }

            return(new Models.CurrencyPrice(
                       cur: type,
                       stamp: DateTimeOffset.FromUnixTimeSeconds(result.result.timestamp).UtcDateTime,
                       usd: RoundCents(result.result.usd),
                       eur: RoundCents(result.result.eur)
                       ));
        }
        //TODO: response generic error msg on prod mode
        protected void HandleSVCException(SvcResponse pResponse, params string[] pErrors)
        {
            string defaultMsg = "Internal Error at Service Layer. ";

            _logger?.LogError(defaultMsg, pErrors);
            pResponse.Errors.Add(defaultMsg);
            pResponse.Errors.AddRange(pErrors);
        }
Exemple #3
0
 public static IActionResult ToHttpResponse(this SvcResponse response)
 {
     response.ResponseCode = response.HasError ? HttpStatusCode.InternalServerError : HttpStatusCode.OK;
     return(new ObjectResult(response)
     {
         StatusCode = (int)HttpStatusCode.OK
     });
 }
        protected void HandleSVCException(SvcResponse pResponse, Exception pEx)
        {
            List <string> errs = new List <string>();

            do
            {
                errs.Add(pEx.Message);
                pEx = pEx.InnerException;
            } while (pEx != null);

            HandleSVCException(pResponse, errs.ToArray());
        }
Exemple #5
0
        public override async Task <SvcResponse> SaveMp4File(IAsyncStreamReader <Chunk> requestStream, ServerCallContext context)
        {
            SvcResponse resp     = new SvcResponse();
            String      fileName = System.Guid.NewGuid().ToString() + ".mp4";

            resp.Message = fileName;

            Console.WriteLine("SaveFile ->" + fileName);

            CancellationToken ct = new CancellationToken();

            if (destinationStrem == null)
            {
                destinationStrem = File.Create("c:\\temp\\" + fileName);
            }

            var stream = new CodedOutputStream(destinationStrem, true);

            while (await requestStream.MoveNext(ct))
            {
                var arr = requestStream.Current.PayLoad.ToByteArray();
                destinationStrem.Write(arr, 0, arr.Length);
            }
            destinationStrem.Flush();
            stream.Flush();
            stream.Dispose();

            if (destinationStrem != null)
            {
                destinationStrem.Dispose();
                destinationStrem.Close();
                destinationStrem = null;
            }

            return(new SvcResponse
            {
                Message = fileName,
                Code = "1"
            });
        }
 protected void HandleSVCException(Exception pEx)
 {
     HandleSVCException(SvcResponse.GetVoidResponse(HttpStatusCode.InternalServerError), pEx);
 }