public async Task<ActionResult> Index(int? Id, string sortOrder, string currentFilter, int? page)
        {
            Room_ElectricityConsumption room_ElectricityConsumption = new Room_ElectricityConsumption();
            SearchRoom_ElectricityConsumption searchRoom_ElectricityConsumption = new SearchRoom_ElectricityConsumption();

            if (Id != null)
            { room_ElectricityConsumption = await _Room_ElectricityConsumptionRepository.GetById(Id.Value.ToString ());
            await GetType(room_ElectricityConsumption.RoomAllocationId );
            }
            else
                await GetType(1);
            await  GetSearchType(1);

            var room_ElectricityConsumptions = getList(sortOrder, currentFilter, page, await _Room_ElectricityConsumptionRepository.GetAll());
            Room_ElectricityConsumptionViewModel model = new Room_ElectricityConsumptionViewModel { List = room_ElectricityConsumptions, Room_ElectricityConsumption = room_ElectricityConsumption, SearchRoom_ElectricityConsumption = searchRoom_ElectricityConsumption };
            return View(model);
        }
        public async Task<ActionResult> Search(SearchRoom_ElectricityConsumption searchRoom_ElectricityConsumption)
        {
           Room_ElectricityConsumption room_ElectricityConsumption = new Room_ElectricityConsumption();
           await GetType(1);

           var roomelectric = await _Room_ElectricityConsumptionRepository.GetAll();
           roomelectric = roomelectric.Where(r => ((!string.IsNullOrEmpty(searchRoom_ElectricityConsumption.SearchFromDate.ToString())) && r.ForDate >= searchRoom_ElectricityConsumption.SearchFromDate && r.ForDate  >= searchRoom_ElectricityConsumption.SearchToDate)
                                          || ((searchRoom_ElectricityConsumption.SearchRoomAllocationId != 0) && searchRoom_ElectricityConsumption.SearchRoomAllocationId == r.RoomAllocationId)
                                          
                                      );

            var roomelectric_list = getList("", "", 1, roomelectric);

            await GetSearchType(searchRoom_ElectricityConsumption.SearchRoomAllocationId);
            Room_ElectricityConsumptionViewModel model = new Room_ElectricityConsumptionViewModel { List = roomelectric_list,  Room_ElectricityConsumption   = room_ElectricityConsumption, SearchRoom_ElectricityConsumption   = searchRoom_ElectricityConsumption };
            return View("Index", model);

        }
        public async Task<ActionResult> Save([Bind(Include = "Id,RoomAllocationId,ForDate,Beginning,Ending,Unit_Consumed,RoomReservation_Id,EnteredDate,EnteredbyUserId,ModifyDate,ModifiedByUserId")]Room_ElectricityConsumption room_ElectricityConsumption)
        {

            if (ModelState.IsValid)
            {
                if (room_ElectricityConsumption.RoomReservation_Id == 0)
                    room_ElectricityConsumption.RoomReservation_Id = null;

                if (room_ElectricityConsumption.Id == 0)
                {

                    //Things to do find : latest room reservation from room details table.
                var roomdetail= await   _RoomReservation_RoomDetailsRepository.GetLatestByRoomAllocationId(room_ElectricityConsumption.RoomAllocationId);
                    if (roomdetail != null)
                          room_ElectricityConsumption.RoomReservation_Id = roomdetail.RoomReservation_Id;
                  await  _Room_ElectricityConsumptionRepository.Create(room_ElectricityConsumption);
                }
                else

                    _Room_ElectricityConsumptionRepository.Update(room_ElectricityConsumption, room_ElectricityConsumption.Id.ToString ());

            }
            else
            {
                SearchRoom_ElectricityConsumption searchRoom_ElectricityConsumption = new SearchRoom_ElectricityConsumption();

                
                await GetType(room_ElectricityConsumption.RoomAllocationId);
                await GetSearchType(1);
                var room_ElectricityConsumptions = getList("", "", 1,await  _Room_ElectricityConsumptionRepository.GetAll());
                Room_ElectricityConsumptionViewModel model = new Room_ElectricityConsumptionViewModel { List = room_ElectricityConsumptions, Room_ElectricityConsumption = room_ElectricityConsumption,  SearchRoom_ElectricityConsumption  = searchRoom_ElectricityConsumption };
                 return View("Index", model);
            }
            return RedirectToAction("Index");
        }