// GET: Admin/Netzbetreibers/Details/5 public ActionResult Details(int?id, int?rpId, string returnURL) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Netzbetreiber netzbetreiber = db.Netzbetreiber.GetByID(id); if (netzbetreiber == null) { return(HttpNotFound()); } //Wenn keine RegPId angegeben wurde, liefere die zum aktuellen Zeitpunkt aktuelle RegP, sonst die angegebene RegP. Regulierungsperiode rp; if (rpId == null) { //Hole aktuelle RegP, falls keine rpId angegeben wurde rp = db.Regulierungsperioden.Get( o => o.StartDate <= DateTime.Now && o.EndDate >= DateTime.Now).FirstOrDefault(); } else { //Hole angegebene RP rp = db.Regulierungsperioden.GetByID(rpId); } if (rp != null) { //Es wurde eine RP gefunden EOGViewModel vm = new EOGViewModel() { RegPNumber = rp.RegPId, RegPStart = rp.StartDate, RegPEnd = rp.EndDate, RegPMax = db.Regulierungsperioden.dbSet.Max(r => r.RegPId), Netzbetreiber = new List <Netzbetreiber>() }; //Nur die Netze übernehmen, die in der aktuellen RP vorhanden sind netzbetreiber.Netze = (from n in netzbetreiber.Netze where n.RegPId == rp.RegPId select n).ToList(); vm.Netzbetreiber.Add(netzbetreiber); ViewBag.ReturnURL = returnURL; return(View(vm)); } //Es wurde keine RP gefunden return(HttpNotFound()); }
// GET: EOG public ActionResult Index(int?id) { Regulierungsperiode rp; if (id == null) { //Hole aktuelle RegP rp = db.Regulierungsperioden.Get( o => o.StartDate <= DateTime.Now && o.EndDate >= DateTime.Now).FirstOrDefault(); } else { //Hole angegebene RP rp = db.Regulierungsperioden.GetByID(id); } //Es wurde eine RP gefunden if (rp != null) { EOGViewModel vm = new EOGViewModel() { RegPNumber = rp.RegPId, RegPStart = rp.StartDate, RegPEnd = rp.EndDate, RegPMax = db.Regulierungsperioden.dbSet.Max(r => r.RegPId), Netzbetreiber = new List <Netzbetreiber>() }; //Das automatische Nachladen von Daten wird deaktiviert db.Users.context.Configuration.LazyLoadingEnabled = false; ApplicationUser user = db.Users.GetByID(User.Identity.GetUserId()); //Lade die verknüpften und bestätigten NBs des Nutzers sowie alle Netze, EOGs etc. db.Users.context.Entry(user) .Collection(u => u.NetzbetreiberRelationships) //integriere die Beziehungen des Nutzers .Query() //filtere die Beziehungen .Where(rs => rs.Confirmed == true) .Include(rs => rs.Netzbetreiber.Netze //integriere die Netzbetreiber und Netze der einzelnen Beziehungen .Select(n => n.EOGs)) //integriere alle EOGs der Netze .Load(); //lade die Daten aus der DB //Nur falls der Nutzer bestätigte NBs hat if (user.NetzbetreiberRelationships != null) { //Filtere alle Netzbetreiber nach vorhandenen Netzen in der Periode List <Netzbetreiber> nbs = (from rs in user.NetzbetreiberRelationships select rs.Netzbetreiber).ToList(); foreach (Netzbetreiber nb in nbs) { List <Netz> netze = (from n in nb.Netze where n.RegPId == rp.RegPId select n).ToList(); if (netze.Count == 0) { continue; } nb.Netze = netze; vm.Netzbetreiber.Add(nb); } //Das automatische Nachladen wird wieder aktiviert db.Users.context.Configuration.LazyLoadingEnabled = true; return(View(vm)); } //Das automatische Nachladen wird wieder aktiviert db.Users.context.Configuration.LazyLoadingEnabled = true; //Hier ein Redirect zur Beantragung ohne bestätigten NB return(View(vm)); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); }