示例#1
0
        public static Func <ErrorLog, bool> FilterErrorLog(this Func <ErrorLog, bool> source, ErrorLogFilter filter)
        {
            if (filter == null)
            {
                return(p => true);
            }

            Func <ErrorLog, bool> predicateCode        = p => true;
            Func <ErrorLog, bool> predicateMessage     = p => true;
            Func <ErrorLog, bool> predicateLevel       = p => true;
            Func <ErrorLog, bool> predicateArchieved   = p => true;
            Func <ErrorLog, bool> predicateOrigin      = p => true;
            Func <ErrorLog, bool> predicateEnvironment = p => true;

            if (filter.Code != null)
            {
                predicateCode = p => p.Code == filter.Code;
            }
            if (filter.Message != null)
            {
                predicateMessage = p => p.Message == filter.Message;
            }
            if (filter.Level != null)
            {
                predicateLevel = p => p.Level == filter.Level;
            }
            if (filter.Origin != null)
            {
                predicateLevel = p => p.Origin == filter.Origin;
            }
            if (filter.Archieved != null)
            {
                predicateArchieved = p => p.Archieved == filter.Archieved;
            }
            if (filter.Environment != null)
            {
                predicateEnvironment = p => p.Environment == filter.Environment;
            }

            return(p => predicateCode(p) && predicateMessage(p) &&
                   predicateLevel(p) && predicateArchieved(p) &&
                   predicateEnvironment(p) && predicateOrigin(p));
        }
示例#2
0
        public ActionResult <ErrorLogViewModel> Get()
        {
            var code        = HttpContext.Request.Query["code"];
            var message     = HttpContext.Request.Query["message"];
            var level       = HttpContext.Request.Query["level"];
            var archieved   = HttpContext.Request.Query["archieved"];
            var origin      = HttpContext.Request.Query["origin"];
            var environment = HttpContext.Request.Query["environment"];
            var orderby     = HttpContext.Request.Query["orderby"];

            ErrorLogFilter filter = new ErrorLogFilter();

            if (code.Count > 0)
            {
                filter.Code = code;
            }
            if (message.Count > 0)
            {
                filter.Message = message;
            }
            if (level.Count > 0)
            {
                filter.Level = level;
            }
            if (origin.Count > 0)
            {
                filter.Origin = origin;
            }
            if (archieved.Count > 0)
            {
                filter.Archieved = archieved == "true" ? true : false;
            }

            if (environment.Count > 0)
            {
                if (environment.ToString().ToLower() == "unknown")
                {
                    filter.Environment = ServerEnvironment.Unknown;
                }
                else if (environment.ToString().ToLower() == "development")
                {
                    filter.Environment = ServerEnvironment.Development;
                }
                else if (environment.ToString().ToLower() == "test")
                {
                    filter.Environment = ServerEnvironment.Test;
                }
                else if (environment.ToString().ToLower() == "acceptance")
                {
                    filter.Environment = ServerEnvironment.Acceptance;
                }
                else if (environment.ToString().ToLower() == "production")
                {
                    filter.Environment = ServerEnvironment.Production;
                }
                else
                {
                    return(BadRequest("Filtros informados são inválidos!"));
                }
            }

            OrderErrorLogByField orderErrorLogBy = OrderErrorLogByField.Any;

            if (orderby.Count > 0)
            {
                if (orderby.ToString().ToLower() == "code")
                {
                    orderErrorLogBy = OrderErrorLogByField.Code;
                }
                else if (orderby.ToString().ToLower() == "level")
                {
                    orderErrorLogBy = OrderErrorLogByField.Level;
                }
                else if (orderby.ToString().ToLower() == "message")
                {
                    orderErrorLogBy = OrderErrorLogByField.Message;
                }
                else
                {
                    return(BadRequest("Ordenação inválida!"));
                }
            }

            return(Ok(_errorLogAppService.GetErrorLogs(filter, orderErrorLogBy)));
        }