Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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");
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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));
        }