public ActionResult Download([RouteValue] int id, [QueryStringValue] int afdelingID, [QueryStringValue] int functieID, [RouteValue] int groepID, [QueryStringValue] LidInfoModel.SpecialeLedenLijst ledenLijst, [QueryStringValue] LidEigenschap sortering) { WerkJaarInfo werkJaarInfo; int groepsWerkJaarID; // Als geen groepswerkjaar gegeven is: haal recentste op if (id == 0) { var gwj = VeelGebruikt.GroepsWerkJaarOphalen(groepID); werkJaarInfo = new WerkJaarInfo { WerkJaar = gwj.WerkJaar, ID = gwj.WerkJaarID }; groepsWerkJaarID = werkJaarInfo.ID; } else { var gwjs = ServiceHelper.CallService <IGroepenService, IEnumerable <WerkJaarInfo> >(svc => svc.WerkJarenOphalen(groepID)); werkJaarInfo = (from wj in gwjs where wj.ID == id select wj).FirstOrDefault(); groepsWerkJaarID = id; } // Haal de op te lijsten leden op; de filter wordt bepaald uit de method parameters. var leden = ServiceHelper.CallService <ILedenService, IList <PersoonLidInfo> >( svc => svc.LijstZoekenPersoonLidInfo( FilterMaken(afdelingID, functieID, ledenLijst, groepsWerkJaarID))); // Alle afdelingen is eigenlijk overkill. De actieve zou genoeg zijn. Maar meestal // zal daar niet zo' n verschil opzitten. var alleAfdelingen = ServiceHelper.CallService <IGroepenService, IList <AfdelingInfo> >( svc => svc.AlleAfdelingenOphalen(groepID)); const string bestandsNaam = "leden.xlsx"; var pkg = GapExcelManip.LidExcelDocument(leden, alleAfdelingen); return(new ExcelResult(pkg, bestandsNaam)); }
public ActionResult Download(int id) { var uitstap = ServiceHelper.CallService <IUitstappenService, UitstapOverzicht>(s => s.DetailsOphalen(id)); var lijst = ServiceHelper.CallService <IUitstappenService, IEnumerable <DeelnemerDetail> >(s => s.DeelnemersOphalen(id)).ToList(); var personenlijst = ServiceHelper.CallService <IGelieerdePersonenService, IEnumerable <PersoonOverzicht> >(g => g.OverzichtOphalen(lijst.Select(e => e.GelieerdePersoonID).ToList())); foreach (var persoonLidInfo in personenlijst) { PersoonOverzicht info = persoonLidInfo; lijst.Where(e => e.GelieerdePersoonID == info.GelieerdePersoonID).First().PersoonOverzicht = persoonLidInfo; } string[] kolomkoppen = { "AD-nummer", "Voornaam", "Familienaam", "Geboortedatum", "Geslacht", "Telefoon", "Emailadres", "Straat", "Huisnummer", "Postcode", "Woonplaats", "Land", "Afdelingen", "Functie", "Contactpersoon", "Betaald", "Medische fiche", "Opmerkingen" }; var bestandsNaam = String.Format("{0}.xlsx", uitstap.Naam.Replace(" ", "-")); var package = GapExcelManip.ExcelDocument( lijst, kolomkoppen, it => it.PersoonOverzicht.AdNummer, it => it.VoorNaam, it => it.FamilieNaam, it => it.PersoonOverzicht.GeboorteDatum, it => it.PersoonOverzicht.Geslacht, it => it.PersoonOverzicht.TelefoonNummer, it => it.PersoonOverzicht.Email, it => it.PersoonOverzicht.StraatNaam, it => it.PersoonOverzicht.HuisNummer, it => it.PersoonOverzicht.PostNummer != null ? it.PersoonOverzicht.PostNummer.ToString() : it.PersoonOverzicht.PostCode, it => it.PersoonOverzicht.WoonPlaats, it => it.PersoonOverzicht.Land, it => it.Afdelingen == null ? String.Empty : String.Concat(it.Afdelingen.Select(afd => afd.Afkorting + " ").ToArray()), it => it.Type, it => it.IsContact ? "Ja" : "Nee", it => it.HeeftBetaald ? "Ja" : "Nee", it => it.MedischeFicheOk ? "Ja" : "Nee", it => it.Opmerkingen); return(new ExcelResult(package, bestandsNaam)); }