Exemplo n.º 1
0
        /// <summary>
        /// The log exception.
        /// </summary>
        /// <param name="ex">
        /// The exception.
        /// </param>
        public static void LogException(FinancesException ex)
        {
            if (ex == null)
            {
                return;
            }

            var  logSource = ConfigurationManager.AppSettings["EventViewerLogger.Source"];
            bool logEnable;

            bool.TryParse(ConfigurationManager.AppSettings["EventViewerLogger.Enabled"], out logEnable);
            if (!logEnable)
            {
                return;
            }

            try
            {
                EventLog.WriteEntry(
                    logSource,
                    JsonConvert.SerializeObject(ex, Formatting.Indented),
                    EventLogEntryType.Error);
            }
            catch
            {
                // do nothing it just save log
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// The process action async.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <param name="method">
        /// The method.
        /// </param>
        /// <typeparam name="TReq">
        /// Request type.
        /// </typeparam>
        /// <typeparam name="TResp">
        /// Response type.
        /// </typeparam>
        /// <returns>
        /// The response.
        /// </returns>
        protected async Task <HttpResponseMessage> ProcessActionAsync <TReq, TResp>(TReq request, Func <TReq, Task <TResp> > method)
        {
            var output     = new ActionResponse <TResp>();
            var statusCode = HttpStatusCode.OK;

            try
            {
                output.HasError = false;
                output.Results  = await method(request);
            }
            catch (Exception ex)
            {
                var financesException = new FinancesException(ex.GetType().Name, ex);
                EventViewerLogger.LogException(financesException);
                output.ErrorMessage = ex.Message;
                output.ErrorGuid    = financesException.ErrorCode.ToString();
                output.HasError     = true;
                statusCode          = HttpStatusCode.InternalServerError;
            }

            return(this.Request.CreateResponse(statusCode, output));
        }