public JsonResult GetDashboardSummeryData(string jsonData)
        {
            Dashboardsummary SummeryData = new Dashboardsummary();

            try
            {
                JavaScriptSerializer json_serializer = new JavaScriptSerializer();
                json_serializer.MaxJsonLength = int.MaxValue;
                object[] objData = (object[])json_serializer.DeserializeObject(jsonData);

                foreach (Dictionary <string, object> item in objData)
                {
                    string Flag       = Convert.ToString(item["Flag"]);
                    string Cluster    = Convert.ToString(item["Cluster"]);
                    string SubCluster = Convert.ToString(item["SubCluster"]);
                    string City       = Convert.ToString(item["City"]);
                    string FromDate   = Convert.ToString(item["FromDate"]);
                    string Todate     = Convert.ToString(item["Todate"]);

                    bool IsBTD = false;
                    if (Flag == "1")
                    {
                        IsBTD = true;
                    }
                    SummeryData = MDR.GetSummeryDetails(IsBTD, Cluster, SubCluster, City, FromDate, Todate);
                    SummeryData.PurchaseOrderPointsStr = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDecimal(SummeryData.PurchaseOrderPoints));
                    SummeryData.SalesOrderPointsStr    = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDecimal(SummeryData.SalesOrderPoints));
                    SummeryData.RedeemedPointsStr      = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDecimal(SummeryData.RedeemedPoints));
                    SummeryData.AddOnPointsStr         = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDecimal(SummeryData.AddOnPoints));
                    SummeryData.LostPointsStr          = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDecimal(SummeryData.LostPoints));
                    SummeryData.TotalPointsBalanceStr  = String.Format(new CultureInfo("en-IN", false), "{0:n}", Convert.ToDecimal(SummeryData.TotalPointsBalance));
                }
            }
            catch (Exception ex)
            {
                newexception.AddException(ex);
            }
            return(new JsonResult()
            {
                Data = SummeryData, JsonRequestBehavior = JsonRequestBehavior.AllowGet, MaxJsonLength = Int32.MaxValue
            });
        }
        public Dashboardsummary GetSummeryDetails(bool IsBTD, string Cluster, string SubCluster, string City, string FromDate, string Todate)
        {
            Dashboardsummary         objDashboardsummary  = new Dashboardsummary();
            List <TransactionMaster> objtransactionmaster = new List <TransactionMaster>();

            using (var context = new ChitaleDBContext())
            {
                if (Cluster == "All" && SubCluster == "All" && City == "All" && FromDate == "" && Todate == "")
                {
                    objtransactionmaster = context.TransactionMasters.ToList();
                }
                else
                {
                    objtransactionmaster = context.TransactionMasters.ToList();
                    if (City != "All")
                    {
                        var lstResult = from s in context.CustomerDetails
                                        join sa in context.TransactionMasters on s.CustomerId equals sa.CustomerId
                                        where s.City == City
                                        select sa;
                        objtransactionmaster = lstResult.ToList();
                    }
                    else if (SubCluster != "All")
                    {
                        var lstResult = from s in context.CustomerDetails
                                        join sa in context.TransactionMasters on s.CustomerId equals sa.CustomerId
                                        where s.SubCluster == SubCluster
                                        select sa;
                        objtransactionmaster = lstResult.ToList();
                    }
                    else if (Cluster != "All")
                    {
                        var lstResult = from s in context.CustomerDetails
                                        join sa in context.TransactionMasters on s.CustomerId equals sa.CustomerId
                                        where s.Cluster == Cluster
                                        select sa;
                        objtransactionmaster = lstResult.ToList();
                    }

                    if (FromDate != "" && Todate != "")
                    {
                        objtransactionmaster = objtransactionmaster.Where(x => x.OrderDatetime >= Convert.ToDateTime(FromDate) && x.OrderDatetime <= Convert.ToDateTime(Todate)).ToList();
                    }
                    else
                    {
                        if (FromDate != "")
                        {
                            objtransactionmaster = objtransactionmaster.Where(x => x.OrderDatetime >= Convert.ToDateTime(FromDate)).ToList();
                        }
                        if (Todate != "")
                        {
                            objtransactionmaster = objtransactionmaster.Where(x => x.OrderDatetime >= Convert.ToDateTime(Todate)).ToList();
                        }
                    }
                }

                if (objtransactionmaster != null)
                {
                    var TxnFromDate = context.TransactionMasters.OrderBy(y => y.OrderDatetime).Select(z => z.OrderDatetime).FirstOrDefault();
                    if (TxnFromDate != null)
                    {
                        objDashboardsummary.FromDate = TxnFromDate.Value.ToString("dd-MM-yyyy");
                        objDashboardsummary.ToDate   = DateTime.Now.ToString("dd-MM-yyyy");
                    }
                    objDashboardsummary.PurchaseOrderPoints = (decimal)objtransactionmaster.Where(x => x.TxnType == "Purchase").Sum(x => x.NormalPoints);
                    objDashboardsummary.SalesOrderPoints    = (decimal)objtransactionmaster.Where(x => x.TxnType == "Sale").Sum(x => x.NormalPoints);
                    objDashboardsummary.AddOnPoints         = (decimal)objtransactionmaster.Sum(x => x.AddOnPoints);
                    objDashboardsummary.RedeemedPoints      = 0;
                    objDashboardsummary.LostPoints          = (decimal)objtransactionmaster.Sum(x => x.PenaltyPoints);
                    var NormalPoints = (decimal)objtransactionmaster.Sum(x => x.NormalPoints);
                    objDashboardsummary.TotalPointsBalance = (NormalPoints + objDashboardsummary.AddOnPoints) - objDashboardsummary.LostPoints;
                }
            }
            return(objDashboardsummary);
        }