public ActionResult ChargeHist(DateTime fromdate, DateTime todate, int customerid)
        {
            int      rc;
            Customer customer = new Customer(customerid);

            Meter[] meters = Meter.GetMeters(new MeterParameters {
                UserId = customer.Id
            }, out rc);

            List <Topup> topups1 = new List <Topup>();

            foreach (Meter meter in meters)
            {
                Topup[] topups = Topup.GetMonthlyTopups(new TopupParameters {
                    fromdate = fromdate, todate = todate, MeterId = meter.Meterid
                }, out rc);


                foreach (Topup topup in topups)
                {
                    topups1.Add(topup);
                }
            }


            decimal?amount  = 0;
            decimal?counter = 0;

            foreach (Topup topup in topups1)
            {
                amount  += topup.Amount;
                counter += 1;
            }
            //decimal? result =decimal.Round( amount.Value/count.Value,2);

            return(Content(JsonConvert.SerializeObject(new { result = "success", data = amount })));
        }
        //[HttpPost]
        //public ActionResult MonthlyCharge(Topup[] topups)
        //{
        //    //int? result = 0;
        //    if (ViewData.ModelState.IsValidField("meter id"))
        //    { //checking model state

        //        //check whether id is already exists in the database or not


        //        if (topups.Length == 0)
        //        {
        //            ModelState.AddModelError("MeterId", "meter not valid");
        //            return View(topups);
        //        }
        //        else {
        //            decimal? amount = 0;
        //            decimal? count = 0;
        //            foreach (Topup topup in topups)
        //            {
        //                amount += topup.Amount;
        //                count += 1;
        //            }
        //            ViewBag.amount = amount;
        //            ViewBag.count = count;
        //            return View(topups);
        //        }
        //    }

        //    else
        //    {
        //        //ModelState.AddModelError("MeterId", "meter must entered");
        //        return View(topups);
        //    }

        //}

        public ActionResult MonthlyCharge(DateTime?fromdate, DateTime?todate, string MeterId)
        {
            if (Session["employee"] == null)
            {
                return(RedirectToAction("index", "Employees"));
            }
            else
            {
                if (ViewData.ModelState.IsValidField("MeterId") == false && fromdate != null && todate != null)
                {
                    ModelState.AddModelError("MeterId", "meter id is required");
                    return(View());
                }
                if (ViewData.ModelState.IsValidField("MeterId") == false && fromdate == null && todate == null)
                {
                    ModelState.AddModelError("MeterId", "meter id is required");
                    int both = 0;
                    ViewBag.both = both;
                    return(View());
                }
                if (ViewData.ModelState.IsValidField("MeterId") == false && fromdate != null && todate == null)
                {
                    ModelState.AddModelError("MeterId", "meter id is required");
                    int to = 0;
                    ViewBag.to = to;
                    return(View());
                }
                if (ViewData.ModelState.IsValidField("MeterId") == false && fromdate == null && todate != null)
                {
                    ModelState.AddModelError("MeterId", "meter id is required");
                    int from = 0;
                    ViewBag.from = from;
                    return(View());
                }
                if (ViewData.ModelState.IsValidField("MeterId") == true && fromdate == null && todate == null)
                {
                    // ModelState.AddModelError("MeterId", "meter id is required");
                    int both = 0;
                    ViewBag.both = both;
                    return(View());
                }
                if (ViewData.ModelState.IsValidField("MeterId") == true && fromdate != null && todate == null)
                {
                    //ModelState.AddModelError("MeterId", "meter id is required");
                    int to = 0;
                    ViewBag.to = to;
                    return(View());
                }
                if (ViewData.ModelState.IsValidField("MeterId") == true && fromdate == null && todate != null)
                {
                    //ModelState.AddModelError("MeterId", "meter id is required");
                    int from = 0;
                    ViewBag.from = from;
                    return(View());
                }
                else if (ViewData.ModelState.IsValidField("MeterId") == true && fromdate != null && todate != null)

                {
                    //check whether id is already exists in the database or not
                    int     rc, count = 0;
                    Meter[] meters = Meter.GetMeters(new MeterParameters {
                    }, out rc);

                    foreach (Meter meter1 in meters)
                    {
                        if (MeterId == meter1.Meterid)
                        {
                            count = 1;
                        }
                    }

                    if (count == 1)
                    {
                        Topup[] topups = Topup.GetMonthlyTopups(new TopupParameters {
                            fromdate = fromdate, todate = todate, MeterId = MeterId
                        }, out rc);

                        decimal?amount = 0;
                        decimal?countt = 0;
                        foreach (Topup topup in topups)
                        {
                            amount += topup.Amount;
                            countt += 1;
                        }
                        ViewBag.amount = amount;
                        ViewBag.count  = countt;
                        return(View());
                    }
                    else
                    {
                        if (MeterId != null)
                        {
                            int valid = 0;
                            ViewBag.valid = valid;
                            return(View());
                        }
                        else
                        {
                            return(View());
                        }
                    }
                }

                else
                {
                    return(View());
                }
            }
        }