public JsonResult AddRegisteredReading(RegisteredWaterMeterReadingViewModel viewModel) { try { using (VesiPortalDbContext context = new VesiPortalDbContext()) { RegisteredWaterMeterReading registeredWaterMeterReading = new RegisteredWaterMeterReading { Guid = Guid.NewGuid(), WaterMeterGuid = viewModel.WaterMeterGuid, Reading = viewModel.Reading, ReadingDate = viewModel.ReadingDate }; WaterMeterReading.Add(context, registeredWaterMeterReading); } return(Json(data: new { Valid = true, Message = Messages.WaterMeterReadingAdded }, behavior: JsonRequestBehavior.AllowGet)); } catch (Exception) { return(Json(data: new { Valid = false, ErrorMessage = ErrorMessages.WaterMeterReadingAddError }, behavior: JsonRequestBehavior.AllowGet)); } }
public ActionResult GetConsumptionChart(ConsumptionHistoryViewModel viewModel) { CustomerUser user = null; ConsumptionHistoryChartViewModel consumptionHistoryChartViewModel = new ConsumptionHistoryChartViewModel(); try { using (VesiPortalDbContext context = new VesiPortalDbContext()) { var guid = User.Identity.GetUserId(); user = (CustomerUser)UserManager.FindById(Guid.Parse(guid)); WaterMeter waterMeter = WaterMeter.Get(context, viewModel.WaterMeterGuid); if (waterMeter == null) { throw new Exception(ErrorMessages.WaterMeterNotFound); } List <RegisteredWaterMeterReading> registeredWaterMeterReadings = RegisteredWaterMeterReading.GetRegisteredWaterMeterReadings(context, waterMeter, viewModel.StartDate, viewModel.EndDate) .ToList(); if (registeredWaterMeterReadings.Count > 0) { consumptionHistoryChartViewModel.ConsumptionAmounts = registeredWaterMeterReadings.OrderBy(x => x.ReadingDate).Select(x => x.DailyConsumption).ToList(); consumptionHistoryChartViewModel.ConsumptionDates = registeredWaterMeterReadings.OrderBy(x => x.ReadingDate).Select(x => x.ReadingDate).ToList(); DateTime minDate = viewModel.StartDate.HasValue ? viewModel.StartDate.Value : registeredWaterMeterReadings.Min(x => x.ReadingDate); DateTime maxDate = viewModel.EndDate.HasValue ? viewModel.EndDate.Value :registeredWaterMeterReadings.Max(x => x.ReadingDate); consumptionHistoryChartViewModel.StartDate = minDate; consumptionHistoryChartViewModel.EndDate = maxDate; } consumptionHistoryChartViewModel.FileName = user.Id.GetHashCode().ToString() + ".png"; return(PartialView("_ConsumptionHistoryChart", consumptionHistoryChartViewModel)); } } catch { return(PartialView("_ConsumptionHistoryChart", new ConsumptionHistoryChartViewModel())); } }
/// <summary> /// Show the view for adding a new reading for registered customer /// </summary> /// <returns>View</returns> public ActionResult ShowNewRegisteredReading() { RegisteredWaterMeterReadingViewModel registeredWaterMeterReadingViewModel = new RegisteredWaterMeterReadingViewModel(); WaterMeter defaultMeter = null; try { if (User.IsInRole("Customer")) { var guid = User.Identity.GetUserId(); CustomerUser user = (CustomerUser)UserManager.FindById(Guid.Parse(guid)); if (user == null) { throw new Exception(ErrorMessages.UserNotFound); } List <WaterMeter> waterMeters = user.WaterMeters.ToList(); if (waterMeters.Count <= 0) { throw new Exception(ErrorMessages.UserHasNoWaterMeters); } for (int i = 0; i < waterMeters.Count; i++) { // Add select list item for each water meter SelectListItem selectListItem = new SelectListItem() { Value = waterMeters[i].Guid.ToString(), Text = waterMeters[i].Id }; registeredWaterMeterReadingViewModel.SelectWaterMeters.Add(selectListItem); if (i == 0) { // Set the first meter as default choice registeredWaterMeterReadingViewModel.SelectWaterMeters[i].Selected = true; defaultMeter = waterMeters[i]; } } if (defaultMeter != null) { // Get previous reading info for the default water meter RegisteredWaterMeterReading previousReading = defaultMeter.WaterMeterReadings .OrderByDescending(x => x.ReadingDate) .ThenByDescending(x => x.Timestamp) .FirstOrDefault(); if (previousReading != null) { registeredWaterMeterReadingViewModel.PreviousReading = previousReading.Reading; registeredWaterMeterReadingViewModel.PreviousReadingDate = previousReading.ReadingDate; } } } return(View("RegisteredWaterMeterReadingAddView", registeredWaterMeterReadingViewModel)); } catch (Exception e) { TempData[StaticMembers.ERROR_MSG] = e.Message; return(RedirectToAction("Index", "Home")); } }