public JsonResult Get()
        {
            var almanacDays =
                _repository.Query<AlmanacDay>(x=> x.Date >= SystemDateTime.Now().AddDays(-30)).OrderByDescending(x=>x.Date);

            var mappedAlmanacDays =
                _mappingEngine.Map<IEnumerable<AlmanacDay>, IEnumerable<AlmanacDayGridItemModel>>(almanacDays);

            var almanacDayGridSummary = new AlmanacDayGridSummaryModel {AlmanacDays = mappedAlmanacDays};

            return Json(almanacDayGridSummary, JsonRequestBehavior.AllowGet);
        }
        public JsonResult GetRainfallData(int locationId, int periodId)
        {
            var daysToAdd = 0;

            switch ((PeriodType)periodId)
            {
                case PeriodType.Today:
                    daysToAdd = 0;
                    break;
                case PeriodType.Yesterday:
                    daysToAdd = -1;
                    break;
                case PeriodType.LastWeek:
                    daysToAdd = -7;
                    break;
                case PeriodType.LastMonth:
                    daysToAdd = -30;
                    break;
                case PeriodType.LastYear:
                    daysToAdd = -365;
                    break;
                default:
                    daysToAdd = 0;
                    break;
            }

            IEnumerable<AlmanacDay> almanacDays = locationId != 0
                                          ? _repository.Query<AlmanacDay>(
                                              x => x.Date.Date >= SystemDateTime.Now().AddDays(daysToAdd).Date && x.City.Id == locationId)
                                                       .OrderByDescending(x => x.Date)
                                          : _repository.Query<AlmanacDay>(x => x.Date.Date >= SystemDateTime.Now().AddDays(daysToAdd).Date)
                                                       .OrderByDescending(x => x.Date);

            var mappedAlmanacDays =
                _mappingEngine.Map<IEnumerable<AlmanacDay>, IEnumerable<AlmanacDayGridItemModel>>(almanacDays);

            var almanacDayGridSummary = new AlmanacDayGridSummaryModel { AlmanacDays = mappedAlmanacDays };

            return Json(almanacDayGridSummary, JsonRequestBehavior.AllowGet);
        }
        public JsonResult GetRainfallData(int locationId, int periodId, TableParameter param)
        {
            int daysfrom;
            int daysTo;

            switch ((PeriodType)periodId)
            {
                case PeriodType.Today:
                    daysfrom = 0;
                    daysTo = 0;
                    break;
                case PeriodType.Yesterday:
                    daysfrom = -1;
                    daysTo = -1;
                    break;
                case PeriodType.LastWeek:
                    daysfrom = -7;
                    daysTo = -1;
                    break;
                case PeriodType.LastMonth:
                    daysfrom = -30;
                    daysTo = -1;
                    break;
                case PeriodType.LastYear:
                    daysfrom = -365;
                    daysTo = -1;
                    break;
                default:
                    daysfrom = 0;
                    daysTo = 0;
                    break;
            }

            var totalRecords = locationId != 0
                                ? _repository.Query<AlmanacDay>(
                                              x => x.Date.Date >= SystemDateTime.Now().AddDays(daysfrom).Date
                                                  && x.Date.Date <= SystemDateTime.Now().AddDays(daysTo).Date
                                                  && x.City.Id == locationId).Count()
                                : _repository.Query<AlmanacDay>(
                                              x => x.Date.Date >= SystemDateTime.Now().AddDays(daysfrom).Date
                                                  && x.Date.Date <= SystemDateTime.Now().AddDays(daysTo).Date).Count();

            IEnumerable<AlmanacDay> almanacDays = locationId != 0
                                          ? _repository.Query<AlmanacDay>(
                                              x => x.Date.Date >= SystemDateTime.Now().AddDays(daysfrom).Date
                                                  && x.Date.Date <= SystemDateTime.Now().AddDays(daysTo).Date
                                                  && x.City.Id == locationId)
                                                       .OrderByDescending(x => x.Date).Skip(param.iDisplayStart).Take(param.iDisplayLength)
                                          : _repository.Query<AlmanacDay>(
                                              x => x.Date.Date >= SystemDateTime.Now().AddDays(daysfrom).Date
                                                  && x.Date.Date <= SystemDateTime.Now().AddDays(daysTo).Date)
                                                       .OrderByDescending(x => x.Date).Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var mappedAlmanacDays =
                _mappingEngine.Map<IEnumerable<AlmanacDay>, IEnumerable<AlmanacDayGridItemModel>>(almanacDays);

            var almanacDayGridSummary = new AlmanacDayGridSummaryModel
                {
                    sEcho = param.sEcho,
                    aaData = mappedAlmanacDays,
                    iTotalRecords = totalRecords,
                    iTotalDisplayRecords = totalRecords
                };

            return Json(almanacDayGridSummary, JsonRequestBehavior.AllowGet);
        }
        public JsonResult GetRainfallDataByLocation(int locationId)
        {
            var almanacDays = _repository.Query<AlmanacDay>(x => x.City.Id == locationId);
            var mappedAlmanacDays =
                _mappingEngine.Map<IEnumerable<AlmanacDay>, IEnumerable<AlmanacDayGridItemModel>>(almanacDays);

            var almanacDayGridSummary = new AlmanacDayGridSummaryModel { AlmanacDays = mappedAlmanacDays };

            return Json(almanacDayGridSummary, JsonRequestBehavior.AllowGet);
        }