public ActionResult PrisonersHealth(PrisonerCategory?Category, PrisonerStatus?Status, PrisonerClass?Class, Gender?Gender, int?Age, string District, string Height, string Weight, string BloodGroup, string CommunicableDisease, string PrisonerNumber, string IdentificationMark1, string Name, DateTime?AdmissionFrom, DateTime?AdmissionTo, DateTime?ReleaseFrom, DateTime?ReleaseTo, DateTime?HearingFrom, DateTime?HearingTo, int?Page = 1) { var filter = new PrisonerFilter { Category = Category, Status = Status, Class = Class, Gender = Gender, Age = Age, AdmissionFrom = AdmissionFrom, AdmissionTo = AdmissionTo, ReleaseFrom = ReleaseFrom, ReleaseTo = ReleaseTo, HearingFrom = HearingFrom, HearingTo = HearingTo, District = District, Height = Height, Weight = Weight, BloodGroup = BloodGroup, IdentificationMark1 = IdentificationMark1, CommunicableDisease = CommunicableDisease, Name = Name, PrisonerNumber = PrisonerNumber, Page = Page }; var query = db.Prisoners.Include(o => o.PresentDistrict); return(GetPrisoners(query, filter)); }
public ActionResult ReleasedPrisoners(PrisonerCategory?Category, PrisonerClass?Class, Gender?Gender, int?Age, string District, string FIR, string Section, string Name, string Parentage, string PrisonerNumber, string PoliceStation, string TrialCourt, DateTime?AdmissionFrom, DateTime?AdmissionTo, DateTime?ReleaseFrom, DateTime?ReleaseTo, DateTime?HearingFrom, DateTime?HearingTo, int?Page = 1) { var filter = new PrisonerFilter { Category = Category, Status = PrisonerStatus.Released, Class = Class, Gender = Gender, Age = Age, AdmissionFrom = AdmissionFrom, AdmissionTo = AdmissionTo, ReleaseFrom = ReleaseFrom, ReleaseTo = ReleaseTo, HearingFrom = HearingFrom, HearingTo = HearingTo, PoliceStation = PoliceStation, TrialCourt = TrialCourt, District = District, FIRNumber = FIR, Section = Section, Name = Name, Parentage = Parentage, PrisonerNumber = PrisonerNumber, Page = Page }; var query = db.Prisoners.Include(o => o.PresentDistrict); return(GetPrisoners(query, filter)); }
private void PopulateFilters(PrisonerFilter filter, IEnumerable <PrisonerViewModel> query) { ViewBag.Category = new SelectList(Enum.GetValues(typeof(PrisonerCategory)), filter.Category); ViewBag.Status = new SelectList(Enum.GetValues(typeof(PrisonerStatus)), filter.Status); ViewBag.Class = new SelectList(Enum.GetValues(typeof(PrisonerClass)), filter.Class); ViewBag.Gender = new SelectList(Enum.GetValues(typeof(Gender)), filter.Gender); ViewBag.District = new SelectList(db.Districts.Select(q => q.Name).OrderBy(o => o), filter.District); ViewBag.FIR = new SelectList(db.FIRs.Select(q => q.FIRNumber).OrderBy(o => o), filter.FIRNumber); ViewBag.Section = new SelectList(db.Sections.Select(q => q.Name).OrderBy(o => o), filter.Section); ViewBag.PoliceStation = new SelectList(db.PoliceStations.Select(q => q.Name).OrderBy(o => o), filter.PoliceStation); ViewBag.TrialCourt = new SelectList(db.Courts.Select(q => q.Name).OrderBy(o => o), filter.TrialCourt); ViewBag.Height = new SelectList(Lists.Heights.OrderBy(o => o), filter.Height); ViewBag.BloodGroup = new SelectList(Lists.BloodGroups.OrderBy(o => o), filter.BloodGroup); ViewBag.CommunicableDisease = new SelectList(db.Diseases.Select(q => q.Name).OrderBy(o => o), filter.CommunicableDisease); ViewBag.PrisonerNumber = filter.PrisonerNumber; ViewBag.Name = filter.Name; ViewBag.Parentage = filter.Parentage; // Medical Info ViewBag.Age = filter.Age; ViewBag.IdentificationMark1 = filter.IdentificationMark1; ViewBag.Weight = filter.Weight; if (filter.AdmissionFrom != null) { ViewBag.AdmissionFrom = filter.AdmissionFrom.Value.ToString("dd-MMM-yyyy"); } if (filter.AdmissionTo != null) { ViewBag.AdmissionTo = filter.AdmissionTo.Value.ToString("dd-MMM-yyyy"); } if (filter.ReleaseFrom != null) { ViewBag.ReleaseFrom = filter.ReleaseFrom.Value.ToString("dd-MMM-yyyy"); } if (filter.ReleaseTo != null) { ViewBag.ReleaseTo = filter.ReleaseTo.Value.ToString("dd-MMM-yyyy"); } if (filter.HearingFrom != null) { ViewBag.HearingFrom = filter.HearingFrom.Value.ToString("dd-MMM-yyyy"); } if (filter.HearingTo != null) { ViewBag.HearingTo = filter.HearingTo.Value.ToString("dd-MMM-yyyy"); } }
private IQueryable <PrisonerViewModel> GetFilteredQuery(IQueryable <PrisonerViewModel> query, PrisonerFilter filter) { if (filter.Category != null) { query = query.Where(o => o.Category == filter.Category); } if (filter.Status != null) { query = query.Where(o => o.Status == filter.Status); } if (filter.Class != null) { query = query.Where(o => o.Class == filter.Class); } if (filter.Gender != null) { query = query.Where(o => o.Gender == filter.Gender); } if (!string.IsNullOrWhiteSpace(filter.PrisonerNumber)) { query = query.Where(o => o.PrisonerNumber.Contains(filter.PrisonerNumber)); } if (filter.Age != null) { query = query.Where(o => o.Age == filter.Age); } if (!string.IsNullOrWhiteSpace(filter.Weight)) { query = query.Where(o => o.Weight.Contains(filter.Weight) || o.WeightOnAdmission.Contains(filter.Weight) || o.WeightOnRelease.Contains(filter.Weight)); } if (!string.IsNullOrWhiteSpace(filter.Height)) { query = query.Where(o => o.Height == filter.Height); } if (!string.IsNullOrWhiteSpace(filter.BloodGroup)) { query = query.Where(o => o.BloodGroup == filter.BloodGroup); } if (!string.IsNullOrWhiteSpace(filter.IdentificationMark1)) { query = query.Where(o => o.IdentificationMark1.Contains(filter.IdentificationMark1)); } if (!string.IsNullOrWhiteSpace(filter.CommunicableDisease)) { query = query.Where(o => o.CommunicableDisease == filter.CommunicableDisease); } if (!string.IsNullOrWhiteSpace(filter.Name)) { query = query.Where(o => o.Name.Contains(filter.Name)); } if (!string.IsNullOrWhiteSpace(filter.Parentage)) { query = query.Where(o => o.Parentage.Contains(filter.Parentage)); } if (!string.IsNullOrWhiteSpace(filter.District)) { query = query.Where(o => o.District == filter.District); } if (!string.IsNullOrWhiteSpace(filter.FIRNumber)) { query = query.Where(o => o.FIRs.Contains(filter.FIRNumber)); } if (!string.IsNullOrWhiteSpace(filter.Section)) { query = query.Where(o => o.UnderSections.Contains(filter.Section)); } if (!string.IsNullOrWhiteSpace(filter.PoliceStation)) { query = query.Where(o => o.PoliceStation.Contains(filter.PoliceStation)); } if (!string.IsNullOrWhiteSpace(filter.TrialCourt)) { query = query.Where(o => o.TrialCourt == filter.TrialCourt); } if (filter.AdmissionFrom != null) { query = query.Where(o => o.DateOfAdmission >= filter.AdmissionFrom); } if (filter.AdmissionTo != null) { query = query.Where(o => o.DateOfAdmission <= filter.AdmissionTo); } if (filter.ReleaseFrom != null) { query = query.Where(o => o.DateOfRelease >= filter.ReleaseFrom); } if (filter.ReleaseTo != null) { query = query.Where(o => o.DateOfRelease <= filter.ReleaseTo); } if (filter.HearingFrom != null) { query = query.Where(o => o.DateOfHearing >= filter.HearingFrom); } if (filter.HearingTo != null) { query = query.Where(o => o.DateOfHearing <= filter.HearingTo); } return(query); }
public ActionResult GetPrisoners(IQueryable <Prisoner> prisonerQuery, PrisonerFilter filter) { var query = prisonerQuery.Select(o => new PrisonerViewModel { PrisonerId = o.PrisonerId, Name = o.Name, Parentage = o.FatherOrHusbandName, Status = o.Status, Category = o.Category, Class = o.Class, Gender = o.Gender, Age = o.Age, Height = o.Height, Weight = o.Weight, BloodGroup = o.BloodGroup, IdentificationMark1 = o.IdentificationMark1, IdentificationMark2 = o.IdentificationMark2, Scar = o.Scar, HealthOnAdmission = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).HealthOnAdmission, HealthOnRelease = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).HealthOnRelease, WeightOnAdmission = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).WeightOnAdmission, WeightOnRelease = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).WeightOnRelease, CommunicableDisease = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).CommunicableDisease.Name, District = o.PresentDistrict.Name, AdmissionId = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).AdmissionId, PrisonerNumber = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).PrisonerNumber, FIRCount = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).FIRs.Count(), FIRs = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).FIRs.OrderByDescending(f => f.FIRDate).FirstOrDefault().FIRNumber, PoliceStation = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).FIRs.OrderByDescending(f => f.FIRDate).FirstOrDefault().PoliceStation.Name, UnderSections = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).FIRs.OrderByDescending(f => f.FIRDate).FirstOrDefault().Sections.FirstOrDefault().Name, DateOfAdmission = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).DateOfAdmission, DateOfRelease = db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).DateOfRelease, TrialCourt = db.CourtHearings.OrderByDescending(a => a.DateOfHearing).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).Court.Name, DateOfHearing = db.CourtHearings.OrderByDescending(a => a.DateOfHearing).FirstOrDefault(a => a.PrisonerId == o.PrisonerId).DateOfHearing, Children = db.Children.Count(c => c.PrisonerId == o.PrisonerId) }); foreach (var p in query) { var firs = db.FIRs.Where(o => o.AdmissionId == db.Admissions.OrderByDescending(a => a.DateOfAdmission).FirstOrDefault(a => a.PrisonerId == p.PrisonerId).AdmissionId); p.FIRs = ""; p.PoliceStation = ""; p.UnderSections = ""; foreach (var fir in firs) { p.FIRs += string.Format("{0}, ", fir.FIRNumber); p.PoliceStation += string.Format("{0}, ", fir.PoliceStation.Name); foreach (var section in fir.Sections) { p.UnderSections += string.Format("{0}, ", section.Name); } } p.FIRs = p.FIRs.Remove(p.FIRs.Length - 2, 2); p.PoliceStation = p.PoliceStation.Remove(p.PoliceStation.Length - 2, 2); p.UnderSections = p.UnderSections.Remove(p.UnderSections.Length - 2, 2); } if (filter == null) { filter = new PrisonerFilter(); } query = GetFilteredQuery(query, filter); query = query.OrderBy(o => o.Name); var list = query.ToPagedList(filter.Page.Value, PageSize); var report = new PrisonerReport(list, filter); PopulateFilters(filter, list); ViewBag.PageSize = PageSize; ViewBag.Count = query.Count(); return(View(report)); }