Exemple #1
0
        private void ExecuteShowReport()
        {
            if (SelectedResidenceColumns.Count == 0)
            {
                MessageBox.Show("No Columns selected");
                Result       = null;
                SearchStatus = String.Empty;
                return;
            }
            Result = new FlowDocument();
            List <Residence> input = null;

            using (UnitOfWork unitOfWork = new UnitOfWork(new MahalluDBContext())) {
                input = unitOfWork.Residences.GetAll().ToList();
                String[] temp = null;
                if (!String.IsNullOrEmpty(Area))
                {
                    if (Area.Contains(";"))
                    {
                        temp = Area.Split(';');
                    }
                    else
                    {
                        temp    = new string[1];
                        temp[0] = Area;
                    }
                    if (temp != null)
                    {
                        input = input.Where(x => temp.Contains(x.Area, new ContainsComparer())).ToList();
                    }
                }
                if (!String.IsNullOrEmpty(HouseName))
                {
                    temp = null;
                    if (HouseName.Contains(";"))
                    {
                        temp = HouseName.Split(';');
                    }
                    else
                    {
                        temp    = new string[1];
                        temp[0] = HouseName;
                    }
                    if (temp != null)
                    {
                        input = input.Where(x => temp.Contains(x.Name, new ContainsComparer())).ToList();
                    }
                }
                if (!String.IsNullOrEmpty(HouseNumber))
                {
                    temp = null;
                    if (HouseNumber.Contains(";"))
                    {
                        temp = HouseNumber.Split(';');
                    }
                    else
                    {
                        temp    = new string[1];
                        temp[0] = HouseNumber;
                    }
                    if (temp != null)
                    {
                        input = input.Where(x => temp.Contains(x.Number, new ContainsComparer())).ToList();
                    }
                }
            }

            List <ResidenceMember> members = null;

            using (UnitOfWork unitOfWork = new UnitOfWork(new MahalluDBContext())) {
                members = unitOfWork.ResidenceMembers.GetAll().ToList();
                String[] temp = null;
                if (!String.IsNullOrEmpty(MarriageStatus))
                {
                    if (MarriageStatus.Contains(";"))
                    {
                        temp = MarriageStatus.Split(';');
                    }
                    else
                    {
                        temp    = new string[1];
                        temp[0] = MarriageStatus;
                    }
                    if (temp != null)
                    {
                        members = members.Where(x => temp.Contains(x.MarriageStatus, new ContainsComparer())).ToList();
                    }
                }
                if (!String.IsNullOrEmpty(Country))
                {
                    temp = null;
                    if (Country.Contains(";"))
                    {
                        temp = Country.Split(';');
                    }
                    else
                    {
                        temp    = new string[1];
                        temp[0] = Country;
                    }
                    if (temp != null)
                    {
                        members = members.Where(x => temp.Contains(x.Country, new ContainsComparer())).ToList();
                    }
                }
                if (!String.IsNullOrEmpty(Qualification))
                {
                    temp = null;
                    if (Qualification.Contains(";"))
                    {
                        temp = Qualification.Split(';');
                    }
                    else
                    {
                        temp    = new string[1];
                        temp[0] = Qualification;
                    }
                    if (temp != null)
                    {
                        members = members.Where(x => temp.Contains(x.Qualification, new ContainsComparer())).ToList();
                    }
                }
                if (!String.IsNullOrEmpty(Gender))
                {
                    temp = null;
                    if (Gender.Contains(";"))
                    {
                        temp = Gender.Split(';');
                    }
                    else
                    {
                        temp    = new string[1];
                        temp[0] = Gender;
                    }
                    if (temp != null)
                    {
                        members = members.Where(x => temp.Contains(x.Gender, new ContainsComparer())).ToList();
                    }
                }
            }

            if (ValidateReportParameters())
            {
                BuildReport(input, members);
            }
        }