public DataTable getData(DateTime date)
        {
            DeliveryBL      deliveryStatusBL = new DeliveryBL();
            List <Delivery> list             = deliveryStatusBL.GetAll().Where(x => x.RecordStatus == 1 && x.CreatedDate.ToShortDateString() == date.ToShortDateString()).ToList();

            List <DeliveryStatusViewModel> modelList = Match(list);

            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("No", typeof(string)));
            dt.Columns.Add(new DataColumn("AWB", typeof(string)));
            dt.Columns.Add(new DataColumn("QTY", typeof(string)));
            dt.Columns.Add(new DataColumn("Status", typeof(string)));
            dt.Columns.Add(new DataColumn("Remarks", typeof(string)));
            dt.Columns.Add(new DataColumn("Area", typeof(string)));
            dt.Columns.Add(new DataColumn("Driver", typeof(string)));
            dt.Columns.Add(new DataColumn("Checker", typeof(string)));
            dt.Columns.Add(new DataColumn("Plate No", typeof(string)));
            dt.Columns.Add(new DataColumn("Batch", typeof(string)));

            dt.Columns.Add(new DataColumn("BCO", typeof(string)));
            dt.Columns.Add(new DataColumn("ScannedBy", typeof(string)));
            dt.BeginLoadData();
            int ctr = 1;

            foreach (DeliveryStatusViewModel item in modelList)
            {
                DataRow row = dt.NewRow();
                row[0]  = (ctr++).ToString();
                row[1]  = item.AirwayBillNo;
                row[2]  = item.QTY.ToString();
                row[3]  = item.Status;
                row[4]  = item.Remarks;
                row[5]  = item.Area;
                row[6]  = item.Driver;
                row[7]  = item.Checker;
                row[8]  = item.PlateNo;
                row[9]  = item.Batch;
                row[10] = item.BCO;
                row[11] = item.ScannedBy;
                dt.Rows.Add(row);
            }
            dt.EndLoadData();

            return(dt);
        }
        public DataTable getDataByAllFilter(DateTime date, string revenueUnitName, Guid?deliveredById, Guid?statusId)
        {
            DeliveryBL deliveryStatusBL = new DeliveryBL();

            List <DeliveryStatusViewModel> resultList = new List <DeliveryStatusViewModel>();
            List <DeliveryStatusViewModel> modelList  = new List <DeliveryStatusViewModel>();


            List <Delivery> list = deliveryStatusBL.GetAll().Where
                                       (x => x.RecordStatus == 1 &&
                                       ((x.DeliveredBy.EmployeeId == deliveredById && x.DeliveredBy.EmployeeId != Guid.Empty) || (x.DeliveredBy.EmployeeId == x.DeliveredBy.EmployeeId && deliveredById == Guid.Empty)) &&
                                       ((x.DeliveryStatus.DeliveryStatusId == statusId && x.DeliveryStatus.DeliveryStatusId != Guid.Empty) || (x.DeliveryStatus.DeliveryStatusId == x.DeliveryStatus.DeliveryStatusId && statusId == Guid.Empty)) &&
                                       x.CreatedDate.ToShortDateString() == date.ToShortDateString()
                                       ).ToList();

            if (revenueUnitName != "All")
            {
                modelList = Match(list).FindAll(x => x.Area == revenueUnitName);
            }
            else
            {
                modelList = Match(list);
            }

            //if (num == 1)
            //{
            //    list = deliveryStatusBL.GetAll().Where
            //        (x => x.RecordStatus == 1
            //        && x.DeliveredBy.EmployeeId == deliveredById
            //        && x.DeliveryStatus.DeliveryStatusId == statusId
            //        //&& x.DeliveredBy.AssignedToArea.RevenueUnitName == revenueUnitName
            //        && x.CreatedDate.ToShortDateString() == date.ToShortDateString()).ToList();
            //    List<DeliveryStatusViewModel> modelList = Match(list);
            //    resultList = modelList.FindAll(x => x.Area == revenueUnitName);

            //}
            //else if(num == 2)
            //{
            //    list = deliveryStatusBL.GetAll().Where(x => x.RecordStatus == 1 && x.DeliveryStatus.DeliveryStatusId == statusId && x.CreatedDate.ToShortDateString() == date.ToShortDateString()).ToList();
            //    List<DeliveryStatusViewModel> modelList = Match(list);
            //    resultList = modelList.FindAll(x => x.Area == revenueUnitName);
            //}
            //else if (num == 3)
            //{
            //    list = deliveryStatusBL.GetAll().Where(x => x.RecordStatus == 1 && x.CreatedDate.ToShortDateString() == date.ToShortDateString()).ToList();
            //    List<DeliveryStatusViewModel> modelList = Match(list);
            //    resultList = modelList.FindAll(x => x.Area == revenueUnitName);
            //}
            //else if (num == 4)
            //{
            //    list = deliveryStatusBL.GetAll().Where(x => x.RecordStatus == 1 && x.DeliveredBy.EmployeeId == deliveredById && x.CreatedDate.ToShortDateString() == date.ToShortDateString()).ToList();
            //    List<DeliveryStatusViewModel> modelList = Match(list);
            //    resultList = modelList.FindAll(x => x.Area == revenueUnitName);
            //}
            //else if (num == 5)
            //{
            //    list = deliveryStatusBL.GetAll().Where(x => x.RecordStatus == 1 && x.CreatedDate.ToShortDateString() == date.ToShortDateString()).ToList();
            //    List<DeliveryStatusViewModel> modelList = Match(list);
            //    resultList = modelList;
            //}



            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("No", typeof(string)));
            dt.Columns.Add(new DataColumn("AWB", typeof(string)));
            dt.Columns.Add(new DataColumn("QTY", typeof(string)));
            dt.Columns.Add(new DataColumn("Status", typeof(string)));
            dt.Columns.Add(new DataColumn("Remarks", typeof(string)));
            dt.Columns.Add(new DataColumn("Area", typeof(string)));
            dt.Columns.Add(new DataColumn("Driver", typeof(string)));
            dt.Columns.Add(new DataColumn("Checker", typeof(string)));
            dt.Columns.Add(new DataColumn("Plate No", typeof(string)));
            dt.Columns.Add(new DataColumn("Batch", typeof(string)));

            dt.Columns.Add(new DataColumn("BCO", typeof(string)));
            dt.Columns.Add(new DataColumn("ScannedBy", typeof(string)));
            dt.Columns.Add(new DataColumn("DeliveredBy", typeof(string)));
            dt.Columns.Add(new DataColumn("ReceivedBy", typeof(string)));
            dt.BeginLoadData();
            int ctr = 1;

            //foreach (DeliveryStatusViewModel item in resultList)
            foreach (DeliveryStatusViewModel item in modelList)
            {
                DataRow row = dt.NewRow();
                row[0]  = (ctr++).ToString();
                row[1]  = item.AirwayBillNo;
                row[2]  = item.QTY.ToString();
                row[3]  = item.Status;
                row[4]  = item.Remarks;
                row[5]  = item.Area;
                row[6]  = item.Driver;
                row[7]  = item.Checker;
                row[8]  = item.PlateNo;
                row[9]  = item.Batch;
                row[10] = item.BCO;
                row[11] = item.ScannedBy;
                row[12] = item.DeliveredBy;
                row[13] = item.ReceivedBy;

                dt.Rows.Add(row);
            }
            dt.EndLoadData();

            return(dt);
        }