public ActionResult ShowMeterData(int meterId)
        {
            using (var context = new TownUtilityBillSystemEntities())
            {
                var model = new MeterItemModel();

                var meterItemsDB = from item in context.METER_ITEM.ToList()
                                   where item.METER_ID == meterId
                                   select item;

                CreateMeterModelWithOneMeter(meterId, context, model);

                foreach (var item in meterItemsDB)
                {
                    model.MeterItems.Add(new MeterItem()
                    {
                        Id = item.ID, Date = item.DATE, Meter = model.Meter, Value = item.VALUE
                    });
                }

                var view = View("~/Views/Meter/ShowMeterData.cshtml", model);

                return(view);
            }
        }
        public ActionResult ShowMeterData(int meterId)
        {
            var model = new MeterItemModel();

            model.GetMeterData(meterId);

            return(View(model));
        }
        public ActionResult EditMeterData(int meterItemId)
        {
            var model = new MeterItemModel();

            model.GetMeterAndDataToEdit(meterItemId);

            ViewBag.CurrentCulture = HelperMethod.GetCurrentLanguage();

            return(View(model));
        }
        public ActionResult GetMeterDataForChart(int meterId)
        {
            var model = new MeterItemModel();

            model.GetMeterDataForChart(meterId);

            if (model.ChartData.Count != 0)
            {
                return(Json(model.ChartData, JsonRequestBehavior.AllowGet));
            }

            return(Json(null, JsonRequestBehavior.AllowGet));
        }
        public ActionResult EditMeterData(int meterItemId)
        {
            using (var context = new TownUtilityBillSystemEntities())
            {
                var model       = new MeterItemModel();
                var meterItemDB = context.METER_ITEM.Find(meterItemId);
                var meterDB     = context.METER.Where(m => m.ID == meterItemDB.METER_ID).FirstOrDefault();

                CreateMeterModelWithOneMeter(meterDB.ID, context, model);

                model.MeterItem = new MeterItem()
                {
                    Id = meterItemDB.ID, Date = meterItemDB.DATE, Value = meterItemDB.VALUE
                };

                var view = View("~/Views/Meter/EditMeterData.cshtml", model);

                return(view);
            }
        }
        private static void CreateMeterModelWithOneMeter(int meterId, TownUtilityBillSystemEntities context, MeterItemModel model)
        {
            var meterDB     = context.METER.Where(m => m.ID == meterId).FirstOrDefault();
            var meterTypeDB = context.METER_TYPE.Where(mt => mt.ID == meterDB.METER_TYPE_ID).FirstOrDefault();
            var utilityDB   = context.UTILITY.Where(u => u.ID == meterTypeDB.UTILITY_ID).FirstOrDefault();
            var addressDB   = context.ADDRESS.Where(a => a.ID == meterDB.ADDRESS_ID).FirstOrDefault();
            var indexDB     = context.INDEX.Where(i => i.ID == addressDB.INDEX_ID).FirstOrDefault();
            var townDB      = context.TOWN.Where(t => t.ID == addressDB.TOWN_ID).FirstOrDefault();
            var streetDB    = context.STREET.Where(s => s.ID == addressDB.STREET_ID).FirstOrDefault();
            var buildingDB  = context.BUILDING.Where(b => b.ID == addressDB.BUILDING_ID).FirstOrDefault();
            var flatPartDB  = context.FLAT_PART.Where(fp => fp.ID == addressDB.FLAT_PART_ID).FirstOrDefault();
            var unitDB      = context.UNIT.Where(u => u.ID == utilityDB.UNIT_ID).FirstOrDefault();
            var unit        = new Unit()
            {
                Id = unitDB.ID, Name = unitDB.NAME
            };

            var utility = new Utility()
            {
                Id = utilityDB.ID, Name = utilityDB.NAME, Unit = unit
            };

            var meterType = new MeterType()
            {
                Id = meterTypeDB.ID, Name = meterTypeDB.NAME, Utility = utility
            };

            var index = new Index()
            {
                Id = indexDB.ID, Value = indexDB.VALUE
            };
            var town = new Town()
            {
                Id = townDB.ID, Name = townDB.NAME
            };
            var street = new Street()
            {
                Id = streetDB.ID, Name = streetDB.NAME
            };
            var building = new Building()
            {
                Id = buildingDB.ID, Number = buildingDB.NUMBER
            };

            FlatPart flatPart = null;

            if (flatPartDB != null)
            {
                if (!String.IsNullOrEmpty(flatPartDB.NAME) && !flatPartDB.NUMBER.HasValue)
                {
                    flatPart = new FlatPart()
                    {
                        Id = flatPartDB.ID, Name = flatPartDB.NAME
                    }
                }
                ;

                else if (String.IsNullOrEmpty(flatPartDB.NAME) && flatPartDB.NUMBER.HasValue)
                {
                    flatPart = new FlatPart()
                    {
                        Id = flatPartDB.ID, Number = (int)flatPartDB.NUMBER
                    }
                }
                ;

                else if (!String.IsNullOrEmpty(flatPartDB.NAME) && flatPartDB.NUMBER.HasValue)
                {
                    flatPart = new FlatPart()
                    {
                        Id = flatPartDB.ID, Number = (int)flatPartDB.NUMBER, Name = flatPartDB.NAME
                    }
                }
                ;
            }

            var address = new Address()
            {
                Id = addressDB.ID, Index = index, Town = town, Street = street, Building = building, FlatPart = flatPart
            };

            model.Meter = new Meter()
            {
                Id = meterDB.ID, SerialNumber = meterDB.SERIAL_NUMBER, ReleaseDate = meterDB.RELEASE_DATE, VarificationDate = meterDB.VARIFICATION_DATE, MeterType = meterType, Address = address
            };
        }