private void ProcessIncommingBug(string msg) { using (var scope = scopeFactory.CreateScope()) { log.Debug("New Bug arrived " + msg); BugMessage bm = JsonConvert.DeserializeObject <BugMessage>(msg); var repositoryScope = scope.ServiceProvider.GetRequiredService <IRepository <OrganizationCost> >(); var now = DateTime.Now; try { var ocost = repositoryScope.GetFirst(x => x.Month == now.Month && x.Year == now.Year && x.OrganizationId == bm.message.organizationId); //ESTA - HAY Q ACTUALIZAR ocost.BugsAmount = ocost.BugsAmount + 1; repositoryScope.Update(ocost); } catch (InvalidOperationException) { //NO ESTA - HAY QUE AGREGAR LA TUPLA OrganizationCost oc = new OrganizationCost() { BugsAmount = 1, Month = now.Month, Year = now.Year, OrganizationId = bm.message.organizationId, UsersAmount = 0 }; repositoryScope.Add(oc); } repositoryScope.Save(); } }
public async Task <IActionResult> Get([FromQuery] CostsFilterOptions queryParams) { try { Token token = (Token)this.HttpContext.Items["Token"]; logger.Info("New request from userId: " + token.data.user.id + " arrived to obtain Costs for his Organization"); if (!queryParams.HasOptions()) { logger.Error("Missing required query paramteters on url"); throw new ArgumentException("Missing required query parameters"); } logger.Debug("Querying service for a report from: " + queryParams.From.ToShortDateString() + " To: " + queryParams.To.ToShortDateString() + " for organizationId: " + token.data.organizationId); List <MonthCost> result = this.costService.GetCosts( queryParams.From, queryParams.To, token.data.organizationId ); return(Ok(result)); } catch (ArgumentException exception) { return(BadRequest(exception.Message)); } catch (Exception e) { return(BadRequest(e.Message)); } }
static Task HandleExceptionAsync(HttpContext context, System.Exception exception, IHostingEnvironment env, ILoggerManager logger) { var message = String.Empty; var code = HttpStatusCode.InternalServerError; // 500 if unexpected switch (exception) { case BusinessException ex: code = HttpStatusCode.BadRequest; message = $"Busines Exception: {ex.Message}"; break; case DataException ex: code = HttpStatusCode.BadRequest; message = $"DataException {ex.Message}"; break; case BaseException ex: code = HttpStatusCode.BadRequest; message = $"BaseException {ex.Message}"; break; case System.Exception ex: code = HttpStatusCode.InternalServerError; message = $"Exception: {ex.Message}"; break; default: code = HttpStatusCode.InternalServerError; message = $"Unexpected Error. {exception.Message}"; break; } context.Response.Clear(); context.Response.ContentType = "application/json"; context.Response.StatusCode = (int)code; // logger.LogError(exception, message); logger.LogError(message); if (env.IsDevelopment()) { logger.Debug(exception, message); } //logger.Information(exception, message); var result = new ApiResponse() { IsValid = false, Message = env.IsDevelopment() ? $"{message}{exception.StackTrace}" : message }.ToJson(); return(context.Response.WriteAsync(result)); }
public IActionResult Login([FromBody] UserModel login) { _logger.Information("Information is logged"); _logger.Warning("Warning is logged"); _logger.Debug("Debug log is logged"); _logger.Error("Error is logged"); IActionResult response = Unauthorized(); var user = AuthenticateUser(login); if (user != null) { var tokenString = GenerateJSONWebToken(user); response = Ok(new { token = tokenString }); } return(response); }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { _logger.Debug("OnActionExecutionAsync - Before"); var logInfo = new LogInfo { Id = Guid.NewGuid() }; logInfo.StartDateTime = DateTime.UtcNow; logInfo.ServerName = Dns.GetHostName(); logInfo.ServerIp = context.HttpContext.Connection.LocalIpAddress.ToString(); // logInfo.RemoteIp = context.HttpContext.Connection.RemoteIpAddress.ToString(); var request = context.HttpContext.Request; logInfo.Uri = request.Path; logInfo.StatusCode = context.HttpContext.Response.StatusCode.ToString(); // HTTP Request parser using (var bodyReader = new StreamReader(request.Body)) { var body = bodyReader.ReadToEnd() ?? String.Empty; logInfo.Data = JsonConvert.SerializeObject( new { request.Headers, request.ContentType, request.Path, request.Protocol, request.Method, Body = body }); } logInfo.ModuleCode = context.Controller.GetType().Module.Name; logInfo.ModuleType = context.Controller.GetType().Module.Name.Split('.').First(); logInfo.ComponentCode = context.Controller.GetType().Name; //logInfo.CompCode = controllerActionDescriptor.ControllerName; logInfo.ComponentType = context.Controller.GetType().Namespace.Split('.').Last(); ControllerActionDescriptor controllerActionDescriptor = (ControllerActionDescriptor)context.ActionDescriptor; logInfo.OperationCode = controllerActionDescriptor.ActionName; logInfo.OperationType = context.HttpContext.Request.Method; _logger.LogAudit(logInfo); Stopwatch stopwatch = new Stopwatch(); stopwatch.Restart(); var nextContext = await next(); if (nextContext.Exception == null) { _logger.Debug("OnActionExecutionAsync - After"); stopwatch.Stop(); TimeSpan ts = stopwatch.Elapsed; LogInfo logInfoResp = logInfo.Clone() as LogInfo; logInfoResp.ModuleCode = null; logInfoResp.ModuleType = null; logInfoResp.ComponentCode = null; logInfoResp.ComponentType = null; logInfoResp.OperationCode = null; logInfoResp.OperationType = null; logInfo.EndDateTime = ((DateTime)logInfo.StartDateTime).AddMilliseconds(stopwatch.ElapsedMilliseconds); logInfo.TimeElapsed = logInfo.TimeElapsed = stopwatch.ElapsedMilliseconds; if (nextContext.Result != null && nextContext.Result is ObjectResult) { var nexValue = ((ObjectResult)(nextContext.Result)).Value; // HTTP Response parser logInfo.Data = JsonConvert.SerializeObject( new { request.Headers, request.ContentType, request.Path, request.Protocol, request.Method, Body = nexValue }); } _logger.LogAudit(logInfo); } }