public List <RaceRoleValues> GetReportRaceVSRole([FromRoute] Guid firmID, [FromRoute] int category, [FromRoute] Guid BaseSurvey, [FromRoute] Guid TopSurvey) { var firm = _context.Firms.SingleOrDefault(x => x.FirmID == firmID); if (firm == null) { return(null); } //get companyProfiles of this firm companyProfiles = companyProfilesController.GetCompanyProfiles(firm.FirmID); var baseCompanyProfiledate = companyProfiles.FirstOrDefault(x => x.CompanyProfileID == BaseSurvey).Datecomp; var topCompanyProfiledate = companyProfiles.FirstOrDefault(x => x.CompanyProfileID == TopSurvey).Datecomp; //remove companyprofiles of base and top var insideScopeOfCompanyProfiles = companyProfiles.Where(x => x.CompanyProfileID != BaseSurvey); insideScopeOfCompanyProfiles = insideScopeOfCompanyProfiles.Where(x => x.CompanyProfileID != TopSurvey); //filter betweendates insideScopeOfCompanyProfiles = insideScopeOfCompanyProfiles.Where(x => x.Datecomp > baseCompanyProfiledate && x.Datecomp < topCompanyProfiledate).OrderBy(x => x.Datecomp); if (category == 0) { return(getCategoryOfAllValues(BaseSurvey, TopSurvey, insideScopeOfCompanyProfiles)); } List <List <GenericDataSurveyDTO> > genericDataSurveys = getCategoryValues(category, BaseSurvey, TopSurvey, insideScopeOfCompanyProfiles); List <RaceRoleValues> raceRoleValues = new List <RaceRoleValues>(); RaceRoleValues raceRoleValue = new RaceRoleValues(); if (genericDataSurveys.Count() != 0) { foreach (var race in Races) { raceRoleValue = new RaceRoleValues(); raceRoleValue.MyRoleValues = new List <RoleValues>(); foreach (var glds in genericDataSurveys) { var currentRace = glds.SingleOrDefault(x => x.RegionName == race); if (currentRace != null) { RoleValues roleValue = new RoleValues { Associates = currentRace.Associates, Counsel = currentRace.Counsel, EquityPartners = currentRace.EquityPartners, NonEquityPartners = currentRace.NonEquityPartners, OtherLawyers = currentRace.OtherLawyers, Year = companyProfiles.SingleOrDefault(x => x.CompanyProfileID == currentRace.CompanyProfileID).Datecomp.Year.ToString() }; roleValue.Total = Compute(roleValue); raceRoleValue.MyRoleValues.Add(roleValue); } } raceRoleValue.Race = race; //for rate RoleValues rateRoleValue = new RoleValues(); rateRoleValue = getRate(race, raceRoleValue.MyRoleValues); raceRoleValue.MyRoleValues.Add(rateRoleValue); //main RaceVSRoles raceRoleValues.Add(raceRoleValue); } } return(raceRoleValues); }
public IActionResult GetYears([FromRoute] Guid firmID) { var companyProfiles = companyProfilesController.GetCompanyProfiles(firmID); return(Ok(companyProfiles.OrderBy(x => x.Datecomp))); }