getting an null value in approved application:
public void Load_FullGrid()
{
try
{
DatabaseContext db = new DatabaseContext();
List GVList = new List();
var _districts = db.Districts.Where(x => x.isActive == true).Select(x => new { Id = x.Id, Name = x.Name }).OrderBy(x => x.Name).ToList();
DataTable _dt = new DataTable();
_dt.Columns.Add("");
_dt.Columns.Add("");
foreach (var _dist in _districts)
{
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
}
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
_dt.Columns.Add("");
int i;
i = 2;
DataRow dr0 = _dt.NewRow();
foreach (var _dist in _districts)
{
dr0[i] = _dist.Name;
i = i + 7;
}
dr0[i] = "GRAND TOTAL";
_dt.Rows.Add(dr0);
DataRow dr1 = _dt.NewRow();
i = 2;
dr1[0] = "PROJECT";
dr1[1] = "ACTIVITY";
foreach (var _dist in _districts)
{
dr1[i + 0] = "TOTAL APPLICATIONS";
dr1[i + 1] = "APPROVED APPLICATIONS";
dr1[i + 2] = "REJECTED APPLICATIONS";
dr1[i + 3] = "UNDER PROCESS APPLICATIONS";
dr1[i + 4] = "BANK PENDING APPLICATIONS";
dr1[i + 5] = "BRANCH PENDING APPLICATIONS";
dr1[i + 6] = "BRANCH APPROVED APPLICATIONS";
//i = i + 4;
i = i + 7;
}
dr1[i + 0] = "TOTAL APPLICATIONS";
dr1[i + 1] = "APPROVED APPLICATIONS";
dr1[i + 2] = "REJECTED APPLICATIONS";
dr1[i + 3] = "UNDER PROCESS APPLICATIONS";
dr1[i + 4] = "BANK PENDING APPLICATIONS";
dr1[i + 5] = "BRANCH PENDING APPLICATIONS";
dr1[i + 6] = "BRANCH APPROVED APPLICATIONS";
_dt.Rows.Add(dr1);
var _activities = (from _activity in db.ProjectActivityMasters
join _project in db.Projects
on _activity.ProjectId equals _project.Id
where _activity.IsActive == true && (_activity.Role == null || _activity.ProjectId == 29)
select new
{
Id = _activity.Id,
Activity = _activity.Name,
Project = _project.Name,
ProjectId = _project.Id
}).ToList().OrderBy(x => x.ProjectId).ThenBy(x => x.Activity);
foreach (var _act in _activities)
{
int? a, u, r, t, bank_pending, branch_pending, branch_approved;
a = 0;
u = 0;
r = 0;
t = 0;
bank_pending = 0;
branch_pending = 0;
branch_approved = 0;
i = 1;
DataRow dr = _dt.NewRow();
dr[0] = _act.Project;
dr[1] = _act.Activity;
foreach (var _dist in _districts)
{
GridList _gv = new GridList();
_gv.ActId = _act.Id;
_gv.ActivityName = _act.Activity;
_gv.ProjId = _act.ProjectId;
_gv.ProjectName = _act.Project;
_gv.DistId = _dist.Id;
_gv.DistName = _dist.Name;
var _data= (from _applications in db.ApplicationFormBase
join _activity in db.ProjectActivityMasters
on _applications.ProjectActivityMasterId equals _activity.Id
where _activity.Id == _act.Id && _activity.IsActive == true
&& _applications.DistrictId == _dist.Id
select _applications
).ToList();
_gv.Approved = _data.Where(x => x.ApplicationStatus == "approved" && x.NextRole == "0").ToList().Count();
_gv.Pending = _data.Where(x => (x.ApplicationStatus == "pending" && x.NextRole != "0") || (x.ApplicationStatus == "processing" && x.NextRole != "0")).ToList().Count();
_gv.Rejected = _data.Where(x => x.ApplicationStatus == "rejected" && x.NextRole == "0").ToList().Count();
//_gv.Approved = (from _applications in db.ApplicationFormBase
// join _activity in db.ProjectActivityMasters
// on _applications.ProjectActivityMasterId equals _activity.Id
// where _activity.Id == _act.Id && _activity.IsActive == true
// && _applications.ApplicationStatus == "approved" && _applications.NextRole == "0"
// && _applications.DistrictId == _dist.Id
// select _applications
// ).ToList().Count();
//_gv.Pending = (from _applications in db.ApplicationFormBase
// join _activity in db.ProjectActivityMasters
// on _applications.ProjectActivityMasterId equals _activity.Id
// where _activity.Id == _act.Id && _activity.IsActive == true
// && (
// (_applications.ApplicationStatus == "pending" && _applications.NextRole != "0")
// ||
// (_applications.ApplicationStatus == "processing" && _applications.NextRole != "0")
// )
// && _applications.DistrictId == _dist.Id
// select _applications
// ).ToList().Count();
//_gv.Rejected = (from _applications in db.ApplicationFormBase
// join _activity in db.ProjectActivityMasters
// on _applications.ProjectActivityMasterId equals _activity.Id
// where _activity.Id == _act.Id && _activity.IsActive == true
// && _applications.ApplicationStatus == "rejected" && _applications.NextRole == "0"
// && _applications.DistrictId == _dist.Id
// select _applications
// ).ToList().Count();
_gv.Total = _data.ToList().Count();
//_gv.Total = (from _applications in db.ApplicationFormBase
// join _activity in db.ProjectActivityMasters
// on _applications.ProjectActivityMasterId equals _activity.Id
// where _activity.Id == _act.Id && _activity.IsActive == true
// && _applications.DistrictId == _dist.Id
// select _applications
// ).ToList().Count();
_gv.BankPending = _data.Where(x => x.ApplicationStatus == "approved" && x.NextRole == "bank").ToList().Count();
//_gv.BankPending = (from _applications in db.ApplicationFormBase
// join _activity in db.ProjectActivityMasters
// on _applications.ProjectActivityMasterId equals _activity.Id
// where _activity.Id == _act.Id && _activity.IsActive == true
// && _applications.ApplicationStatus == "approved" && _applications.NextRole == "bank"
// && _applications.DistrictId == _dist.Id
// select _applications
// ).ToList().Count();
_gv.BankPending = _data.Where(x => x.ApplicationStatus == "approved" && x.NextRole == "branch").ToList().Count();
//_gv.BranchPending = (from _applications in db.ApplicationFormBase
// join _activity in db.ProjectActivityMasters
// on _applications.ProjectActivityMasterId equals _activity.Id
// where _activity.Id == _act.Id && _activity.IsActive == true
// && _applications.ApplicationStatus == "approved" && _applications.NextRole == "branch"
// && _applications.DistrictId == _dist.Id
// select _applications
// ).ToList().Count();
/////
_gv.BranchApproved = (from _applications in db.ApplicationFormBase
join _activity in db.ProjectActivityMasters
on _applications.ProjectActivityMasterId equals _activity.Id
join _tran in db.ApplicantRegistrationFormTransactions
on _applications.BranchId equals _tran.LoginId
where _activity.Id == _act.Id && _activity.IsActive == true && _tran.Action == "approved"
&& _applications.ApplicationStatus == "approved" && _applications.NextRole == "0"
&& _applications.DistrictId == _dist.Id
select _applications
).ToList().Count();
///
a = a + _gv.Approved + _gv.BankPending + _gv.BranchPending;
u = u + _gv.Pending;
r = r + _gv.Rejected;
t = t + _gv.Total;
if (_gv.BankPending == null)
_gv.BankPending = 0;
if (_gv.BranchPending == null)
_gv.BranchPending = 0;
if (_gv.BranchApproved == null)
_gv.BranchApproved = 0;
bank_pending = bank_pending + _gv.BankPending;
branch_pending = branch_pending + _gv.BranchPending;
branch_approved = branch_approved + _gv.BranchApproved;
dr[i + 1] = _gv.Total;
dr[i + 2] = _gv.Approved + _gv.BankPending + _gv.BranchPending;
dr[i + 3] = _gv.Rejected;
dr[i + 4] = _gv.Pending;
dr[i + 5] = _gv.BankPending;
dr[i + 6] = _gv.BranchPending;
dr[i + 7] = _gv.BranchApproved;
//dr[i + 8] = bank_pending+ branch_pending+ branch_approved;
i = i + 7;
GVList.Add(_gv);
}
dr[i + 1] = t;
dr[i + 2] = a;
dr[i + 3] = r;
dr[i + 4] = u;
dr[i + 5] = bank_pending;
dr[i + 6] = branch_pending;
dr[i + 7] = branch_approved;
//dr[i + 8] = bank_pending + branch_pending + branch_approved;
_dt.Rows.Add(dr);
}
if (GridView1.Rows.Count>0)
{
GridView1.DataSource = null;
GridView1.DataBind();
}
GridView1.DataSource = _dt;
GridView1.DataBind();
}
catch (Exception ex)
{
string s = ex.Message.ToString();
}
}
Jayraj ChhayaPosted Feb 14, 2024, 10:18 AM
The exception is occurring because the code is trying to execute a LINQ query on the
db.Districtstable, but the query is returning null. This means that thedb.Districtstable is empty or there is an issue with the database connection.Here's an updated version of the code with the fix: