FundraisingMenu.SearchServices.FundraisingMenuSearchServices.GetResult C# (CSharp) Method

GetResult() private method

Retrieve the Project and its related Package data needed for a result row for the specified Project.
private GetResult ( CihProject cihProject ) : FundraisingMenuResult
cihProject FundraisingMenu.Models.CihProject Project to retrieve data for
return FundraisingMenu.Models.FundraisingMenuResult
        private FundraisingMenuResult GetResult(CihProject cihProject)
        {
            MdmProject p = _mdmSS.GetProjectForHubId(cihProject.Id.ToString());

            // Relationship data
            BuDivReg buDivsRegions = _relations.GetMdmBusinessUnitsRelated(p);
            List<String> gc = _relations.GetMdmGlobalChallenges(p).Select(r => r.Name).Distinct().ToList();
            List<string> regs = buDivsRegions.Regs.Select(r => r.Name).Distinct().ToList();
            List<string> countries = _relations.GetMdmCountries(p).Select(r => r.Name).Distinct().ToList();

            // Contact data
            Person programContact = cihProject.ProgramContact != null
                ? _persons.FindPersonWithPersonId(Convert.ToInt32(cihProject.ProgramContact)) : null;

            Person philanthropyContact = cihProject.PhilanthropyContact != null
                ? _persons.FindPersonWithPersonId(Convert.ToInt32(cihProject.PhilanthropyContact)) : null;

            List<String> projectKeywords = new List<String>();
            projectKeywords = _keywords.GetProjectKeywords(Convert.ToInt32(cihProject.Id)).Select(r => r.Keyword).ToList();

            List<FundraisingNeedDto> fundraisingNeeds = _fundraisingNeeds.GetProjectFundraisingNeeds(cihProject.Id);

            // Packages: Either a list or we use the default package from the database.
            List<Package> pkgs = _packages.GetPackagesForHubId(cihProject.Id);
            if (pkgs.Count == 0)
            {
                List<Package> defaultPackageList = new List<Package>();
                Package defaultPackage = _packages.GetDefaultPackage();
                if (defaultPackage != null)
                    defaultPackageList.Add(defaultPackage);
                pkgs = defaultPackageList;
            }
            List<ProjectPackageDto> pkgDto;
            pkgDto = pkgs.Select(r => GetProjectPackageDto(cihProject.Id, r, true)).ToList();

            return new FundraisingMenuResult()
             {
                 // Column items.

                 ProjectName = p.Name,
                 ProjectBriefDescription = p.Description,
                 GlobalChallenge = gc,
                 Region = regs,
                 Country = countries,
                 ProjectPackage = pkgDto,
                 ProgramContact = programContact == null ? null : new Person()
                 {
                     PersonName = programContact.PersonName,
                     Email = programContact.Email,
                     PhoneNumber = programContact.PhoneNumber,
                     PhoneNumberToday = programContact.PhoneNumberToday
                 },
                 PhilanthropyContact = philanthropyContact == null ? null : new Person()
                 {
                     PersonName = philanthropyContact.PersonName,
                     Email = philanthropyContact.Email,
                     PhoneNumber = philanthropyContact.PhoneNumber,
                     PhoneNumberToday = philanthropyContact.PhoneNumberToday
                 },
                 HubId = StringOrEmpty(p.HubId),
                 ProjectKeyword = projectKeywords,
                 ProjectFundraisingNeed = fundraisingNeeds
             };
        }