public async Task <IActionResult> Edit(int id, WaterMeterViewModel model) { if (id != model.MeterId) { return(NotFound()); } if (ModelState.IsValid) { try { var waterMeter = new WaterMeter { Id = model.MeterId, Address = model.Address, TotalConsumption = model.TotalConsumption, MeterState = model.MeterState, CityId = model.CityId, ZipCode = model.ZipCode, CreationDate = model.CreationDate }; _context.Update(waterMeter); await _context.SaveChangesAsync(); } catch { return(NotFound()); } return(RedirectToAction(nameof(Index))); } return(View(model)); }
public async Task <IActionResult> Create(WaterMeterViewModel model) { if (ModelState.IsValid) { var user = await _userHelper.GetUserByIdAsync(model.UserId); var city = await _cityRepository.GetByIdAsync(model.CityId); var waterMeter = new WaterMeter { Address = model.Address, CityId = model.CityId, MeterState = model.MeterState, TotalConsumption = 0, ZipCode = model.ZipCode, CreationDate = DateTime.UtcNow, User = user }; await _waterMeterRepository.CreateAsync(waterMeter); return(RedirectToAction(nameof(Index))); } return(View(model)); }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var waterMeter = await _context.WaterMeters.FindAsync(id); if (waterMeter == null) { return(NotFound()); } var model = new WaterMeterViewModel { MeterId = waterMeter.Id, Address = waterMeter.Address, TotalConsumption = waterMeter.TotalConsumption, MeterState = waterMeter.MeterState, CityId = waterMeter.CityId, ZipCode = waterMeter.ZipCode, Cities = _cityRepository.GetComboCities(), CreationDate = waterMeter.CreationDate }; return(View(model)); }
public WaterMeterViewModel GetList(string where) { var water = new WaterMeterViewModel(); var sql = "select * from waterservice.WaterMeterView " + where; water.List = new MySqlHelper().FindToList <WaterMeter>(sql).ToList(); water.TotalCount = water.List.Count; return(water); }
// public static IMvvmBinder GetNewWaterMeterView(object arg) { ////IDataContext dc = new UnitTextConnectionDataContext(); IDataContext dc = new HVCC.Shell.Models.HVCCDataContext() as IDataContext; IViewModel vm = new WaterMeterViewModel(dc) { Caption = "Water Meter Readings" }; IView v = new HVCC.Shell.Views.WaterMeterView(vm); return(new MvvmBinder(dc, v, vm)); }
/// <summary> /// Invoked from the class constructor /// </summary> /// <param name="sender"></param> /// <param name="routedEventArgs"></param> //private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) //{ //} /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtMeterNumber_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { WaterMeterViewModel vm = this.DataContext as WaterMeterViewModel; // It is plusuable to assume that the water meter number may get entered incorrectly, or // need to be replaced at some point. Therefore, I've put in a hot-key <LeftCtrl> that // will enable editing of this control. Otherwise the control remains read-only. if (e.Key == System.Windows.Input.Key.LeftCtrl && appPermissions.CanEditWater) { object resource = TryFindResource("TextEditEditStyle"); this.txtMeterNumber.Style = (Style)resource; this.txtMeterNumber.IsReadOnly = false; } }
public IActionResult Create(string id) { if (string.IsNullOrWhiteSpace(id)) { return(NotFound()); } WaterMeterViewModel model = new WaterMeterViewModel { Cities = _cityRepository.GetComboCities(), UserId = id }; return(View(model)); }
/// <summary> /// Validates a grid row /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tableViewDetail_ValidateRow(object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { WaterMeterViewModel vm = this.DataContext as WaterMeterViewModel; WaterMeterReading row = e.Row as WaterMeterReading; try { if (null != row) { // Rule-1: All required fields must contain data string results = ValidationRules.IsWaterMeterReadingRowValid((WaterMeterReading)e.Row); if (!String.IsNullOrEmpty(results)) { e.IsValid = false; e.ErrorType = DevExpress.XtraEditors.DXErrorProvider.ErrorType.Critical; e.ErrorContent = "The highlighted field cannot be blank"; e.SetError(e.ErrorContent); return; } // Rule-2: Meter Reading must be greater than previous reading. //if (row.ReadingDate <= vm.SelectedProperty.LastMeterEntry.ReadingDate || // row.MeterReading <= vm.SelectedProperty.LastMeterEntry.MeterReading) if (row.ReadingDate <= vm.SelectedProperty.ReadingDate || row.MeterReading <= vm.SelectedProperty.MeterReading) { e.IsValid = false; e.ErrorType = DevExpress.XtraEditors.DXErrorProvider.ErrorType.Critical; e.ErrorContent = "The highlighted field cannot be less then the previous reading"; e.SetError(e.ErrorContent); return; } } } catch (Exception ex) { MessageBox.Show("Row Error: " + ex.Message); } finally { if (e.IsValid) { //row.Consumption = vm.CalculateWaterConsumption(); //row.PropertyID = vm.SelectedProperty.PropertyID; // assign the PropertID since it's a FK } e.Handled = true; } }
public async Task <IActionResult> RegisterWaterMeter(WaterMeterViewModel model) { var response = new ApiResponseModel(); if (!ModelState.IsValid) { response.SetMessage("INVALID_INPUT").SetData(ModelState.Values.SelectMany(v => v.Errors)); return(Json(response)); } var insertResult = await _waterMeterBusiness.Add(new WaterMeterDto { SerialNumber = model.SerialNumber, FirmwareVersion = model.FirmwareVersion, State = model.State }); response .SetStatus(insertResult.Success) .SetMessage(insertResult.Message) .SetData(insertResult.Data); return(Json(response)); }