コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: Host.cs プロジェクト: HVCCTechHelp/HVCCcheckIn
        //
        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));
        }
コード例 #6
0
        /// <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;
            }
        }
コード例 #7
0
        public IActionResult Create(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                return(NotFound());
            }

            WaterMeterViewModel model = new WaterMeterViewModel
            {
                Cities = _cityRepository.GetComboCities(),
                UserId = id
            };

            return(View(model));
        }
コード例 #8
0
        /// <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;
            }
        }
コード例 #9
0
        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));
        }