public ActionResult LogEntries()
        {
            var logHandler = new LogHandler();

            var model = new LogEntriesViewModel
            {
                LogEntries = logHandler.ReadLatestLogEntries(100)
            };

            return(View(model));
        }
        public async Task <ActionResult> LogEntries(int?Page, string Start = "", string End = "", LogType Type = LogType.All,
                                                    string Country         = "Recent Countries")
        {
            _utilityService.SetViewCookie(HttpContext, "Log Entries View", "LogEntriesView", LogType.Information);
            var tzoffset = 0;

            if (Request.Cookies != null && Request.Cookies.Count > 0)
            {
                if (Request.Cookies["tzoffset"] != null)
                {
                    tzoffset = Int32.Parse(Request.Cookies["tzoffset"]);
                }
            }
            DateTime startdate;
            DateTime enddate;

            if (Start.Length == 0 || !IsDatePicker(Start))
            {
                startdate = DateTime.UtcNow;
                var smin = startdate.Minute % 15;
                smin     *= -1;
                startdate = startdate.AddDays(-7).AddMinutes(smin);
                Start     = startdate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm zzz");
            }
            else
            {
                startdate = DateTime.ParseExact(Start, "yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture,
                                                DateTimeStyles.AssumeUniversal).ToUniversalTime();
            }
            if (End.Length == 0 || !IsDatePicker(End))
            {
                enddate = DateTime.UtcNow;
                var emin = 15 - enddate.Minute % 15; // + 30;
                enddate = enddate.AddMinutes(emin);
                End     = enddate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm zzz");
            }
            else
            {
                enddate = DateTime.ParseExact(End, "yyyy-MM-dd HH:mm zzz", CultureInfo.InvariantCulture,
                                              DateTimeStyles.AssumeUniversal).ToUniversalTime();
            }

            var itemsPerPage = 10;
            var pageNumber   = Page ?? 1;
            var alltypes     = Enum.GetValues(typeof(LogType)).Cast <LogType>().ToArray();
            var typelist     = from value in alltypes
                               select new SelectListItem()
            {
                Value = ((int)value).ToString(),
                Text  = value.ToString()
            };

            var selectlist = new List <SelectListItem>(typelist);

            var v = new LogEntriesViewModel();

            try
            {
                var entries = _logcontext.LogEntries.Where(e => e.CreateDate > startdate && e.CreateDate < enddate).AsQueryable();
                if (Type != LogType.All)
                {
                    entries = entries.Where(e => e.LogType == Type);
                }
                entries     = entries.OrderByDescending(e => e.CreateDate).Take(1000).AsQueryable();
                v.TZoffset  = tzoffset;
                v.PageIndex = pageNumber;
                v.RowIndex  = itemsPerPage * pageNumber - itemsPerPage + 1;
                var count = await entries.CountAsync();

                v.EntryCount = count;
                v.TotalPages = (int)Math.Ceiling(count / (double)itemsPerPage);
                v.StartDate  = Start;
                v.EndDate    = End;
                v.Type       = Type;
                v.Country    = Country;
                v.Types      = selectlist;
                v.Entries    = await entries.AsNoTracking().Skip((pageNumber - 1) * itemsPerPage).Take(itemsPerPage).ToListAsync();
            }
            catch (Exception ex)
            {
                _utilityService.InsertLogEntry(HttpContext, "LogDbContext Error", "LogEntries threw an exception.",
                                               LogType.Critical, true, ex);
                throw;
            }
            return(View(v));
        }