Пример #1
0
        public IActionResult Post(LogErrorCreateRequestModel model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest());
                }

                LogCreateRequestModel createErrorModel = _service.ParseExceptionToExceptionModel(model);
                if (createErrorModel == null)
                {
                    return(BadRequest(model));
                }
                var result = _service.Create(createErrorModel);
                return(Ok(result));
            }

            catch (Exception e)
            {
                try { _service.SendLogError(e); } catch (System.Exception ex) { return(StatusCode(503, ex.Message)); }

                return(StatusCode(503, e));
            }
        }
Пример #2
0
 public void SendLogError(Exception e, string appCode)
 {
     try
     {
         LogErrorCreateRequestModel error = new LogErrorCreateRequestModel()
         {
             Exception = e,
             AppCode   = appCode,
             Serverity = 5
         };
         LogCreateRequestModel createError = ParseExceptionToExceptionModel(error);
         Create(createError);
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #3
0
 public LogCreateRequestModel ParseExceptionToExceptionModel(LogErrorCreateRequestModel model)
 {
     try
     {
         var ex     = new LogCreateRequestModel();
         int index  = model.Exception.StackTrace.IndexOf("line");
         int index2 = model.Exception.StackTrace.LastIndexOf("\\");
         int index3 = model.Exception.StackTrace.IndexOf("in ");
         ex.Message = model.Exception.Message;
         if (model.Exception.InnerException != null)
         {
             ex.Message += "\n" + model.Exception.InnerException.Message;
             if (model.Exception.InnerException.InnerException != null)
             {
                 ex.Message += "\n" + model.Exception.InnerException.InnerException.Message;
             }
         }
         var link   = model.Exception.StackTrace.Substring(index3 + 3).Replace(model.Exception.StackTrace.Substring(index2), "");
         int index4 = (link).LastIndexOf("\\");
         ex.ProjectName = (link).Substring(index4 + 1);
         ex.FileName    = model.Exception.StackTrace.Substring(index2 + 1).Replace(":" + model.Exception.StackTrace.Substring(index), "");
         var line      = model.Exception.StackTrace.Substring(index + 5);
         var nextSpace = line.IndexOf(' ');
         if (nextSpace > 0)
         {
             line = line.Remove(nextSpace);
         }
         ex.LineCode = Int32.Parse(line);
         ex.AppCode  = model.AppCode;
         //ex.LogType = (model.LogType < 1 || model.LogType > 3) ? 3 : model.LogType;
         ex.LogType   = 3;
         ex.Serverity = model.Serverity;
         return(ex);
     }
     catch (Exception)
     {
         throw;
     }
 }