public List <RaceRoleValues> getRaceRoleValues(List <List <GenericDataSurveyDTO> > genericDataSurveys) { List <RaceRoleValues> raceRoleValues = new List <RaceRoleValues>(); RaceRoleValues raceRoleValue; 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; //main RaceVSRoles raceRoleValues.Add(raceRoleValue); } return(raceRoleValues); }
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 List <RaceRoleValues> GetGeneral([FromRoute] Guid firmID, [FromRoute] int category, [FromRoute] Guid BaseSurvey, [FromRoute] Guid TopSurvey) { var raceRoleValues = GetReportRaceVSRole(firmID, category, BaseSurvey, TopSurvey); List <RaceRoleValues> minorityRaceRoleValuesTemp = new List <RaceRoleValues>(); //filtering double EquityPartners; double OtherLawyers; double Associates; double Counsel; double NonEquityPartners; string year; foreach (var general in DiversityRankRace) { var raceRoleValue = raceRoleValues.Find(x => x.Race == general); if (raceRoleValue != null) { minorityRaceRoleValuesTemp.Add(raceRoleValue); } } //remove the rating foreach (var rrv in minorityRaceRoleValuesTemp) { rrv.MyRoleValues = rrv.MyRoleValues.Where(x => x.Year != "Rate").ToList(); } //summation of every year var numberOfRaceRoleValue = minorityRaceRoleValuesTemp.Count(); if (numberOfRaceRoleValue == 0) { return(new List <RaceRoleValues>()); } var numberOfYears = minorityRaceRoleValuesTemp[0].MyRoleValues.Count(); List <RaceRoleValues> minoritySummationList = new List <RaceRoleValues>(); RaceRoleValues minorityRaceRoleValue = new RaceRoleValues { Race = "Minorities", MyRoleValues = new List <RoleValues>() }; for (int i = 0; i < numberOfYears; i++) { EquityPartners = 0; OtherLawyers = 0; Associates = 0; Counsel = 0; NonEquityPartners = 0; year = ""; for (int j = 0; j < numberOfRaceRoleValue; j++) { EquityPartners += ConvertToNumber(minorityRaceRoleValuesTemp[j].MyRoleValues[i].EquityPartners); OtherLawyers += ConvertToNumber(minorityRaceRoleValuesTemp[j].MyRoleValues[i].OtherLawyers); Associates += ConvertToNumber(minorityRaceRoleValuesTemp[j].MyRoleValues[i].Associates); Counsel += ConvertToNumber(minorityRaceRoleValuesTemp[j].MyRoleValues[i].Counsel); NonEquityPartners += ConvertToNumber(minorityRaceRoleValuesTemp[j].MyRoleValues[i].NonEquityPartners); year = minorityRaceRoleValuesTemp[j].MyRoleValues[i].Year; } var minorityRoleValue = new RoleValues { Associates = Associates.ToString(), Counsel = Counsel.ToString(), EquityPartners = EquityPartners.ToString(), NonEquityPartners = NonEquityPartners.ToString(), OtherLawyers = NonEquityPartners.ToString(), Year = year }; minorityRoleValue.Total = Compute(minorityRoleValue); minorityRaceRoleValue.MyRoleValues.Add(minorityRoleValue); } RoleValues rateRoleValue = new RoleValues(); rateRoleValue = getRate("Rate", minorityRaceRoleValue.MyRoleValues); minorityRaceRoleValue.MyRoleValues.Add(rateRoleValue); //main RaceVSRoles minoritySummationList.Add(minorityRaceRoleValue); return(minoritySummationList); }