private IEnumerable <CompressedError> Compressed(IEnumerable <ErrorDisplay> data)
        {
            var errors = new List <CompressedError>();

            try
            {
                foreach (var err in (from d in data
                                     select new { Message = d.Message, Class = d.ClassName }).Distinct())
                {
                    var item = new CompressedError()
                    {
                        Class   = err.Class,
                        Message = err.Message,
                        Count   = (from d in data
                                   where d.Message == err.Message &&
                                   d.ClassName == err.Class
                                   select d).Count(),
                    };
                    errors.Add(item);
                }
            }
            catch (Exception ex)
            {
                logCore.Log(ex, EventTypes.Critical, 99999);
            }

            return(errors);
        }
Example #2
0
        public ActionResult ErrorsCompressed(Guid?application)
        {
            using (new PerformanceMonitor())
            {
                if (Guid.Empty == application || null == application)
                {
                    return(this.Json(WebResponse.Bind((int)Fault.InvalidApplicationIdentifier, "Application Identifier not specified."), JsonRequestBehavior.AllowGet));
                }
                else
                {
                    var query = new LogQuery()
                    {
                        ApplicationIdentifier = application.Value,
                        From = DateTime.UtcNow.AddDays(-1),
                        To   = DateTime.UtcNow,
                    };

                    try
                    {
                        var data = logCore.SelectErrors(query);

                        var items = new List <CompressedError>();
                        foreach (var err in (from d in data
                                             select new{ Message = d.Message, Class = d.ClassName }).Distinct())
                        {
                            var item = new CompressedError()
                            {
                                Class   = err.Class,
                                Message = err.Message,
                                Count   = (from d in data
                                           where d.Message == err.Message &&
                                           d.ClassName == err.Class
                                           select d).Count(),
                            };
                            items.Add(item);
                        }

                        return(this.Json(items, JsonRequestBehavior.AllowGet));
                    }
                    catch (Exception ex)
                    {
                        logCore.Log(ex, EventTypes.Error, (int)Fault.Unknown);
                        return(this.Json(WebResponse.Bind((int)Fault.Unknown, ex.Message), JsonRequestBehavior.AllowGet));
                    }
                }
            }
        }