public ActionResult registrerSpilldeltakelse(string club) { init(club, 10); int spillID = 0; int sesjonID = 0; Int32.TryParse(Request["sesjonID"], out sesjonID); if (Int32.TryParse(Request["spillID"], out spillID)) { Models.SpillRegData spilldata = new Models.SpillRegData(); Structures.BoardgamesHelper.ConstructFormData(spilldata, this, sesjonID, spillID); spilldata.sesjonen.Spillere.Sort(new Structures.Poengsorter()); //spilldata.sesjonen.Spillere.OrderBy(x => x.posisjon); if (brukerData.viewStatus == 2 && (brukerData.userObject.status >= 25 || brukerData.userObject.spillerID == spilldata.sesjonen.spillerID || spilldata.sesjonen.spillsesjonID == 0)) { return(View(spilldata)); } else { return(View("Resviews/Spilling", spilldata.sesjonen)); } } else { return(View()); } }
public ActionResult registrerSpilldeltakelse(Models.SpillRegData spillreg) { int i = 0; init("", 10); if (brukerData.viewStatus == 2) { if (ModelState.IsValid) //if(1 == 1) { Models.SpillRapport rapporten = null; if (spillreg.sesjonen.spillrapport.rapport != null && spillreg.sesjonen.spillrapport.rapport.Length > 0) { if (spillreg.sesjonen.spillrapport.spillrapportID == 0) { rapporten = spillreg.sesjonen.spillrapport; databaseKontekst.spillrapporter.Add(rapporten); databaseKontekst.SaveChanges(); } else { rapporten = (from m in databaseKontekst.spillrapporter where m.spillrapportID == spillreg.sesjonen.spillrapport.spillrapportID select m).FirstOrDefault(); rapporten.overskrift = spillreg.sesjonen.spillrapport.overskrift; rapporten.rapport = spillreg.sesjonen.spillrapport.rapport; } } if (spillreg.sesjonen.spillsesjonID == 0) { List <Models.Spilldeltakelse> fjernmeg = new List <Models.Spilldeltakelse>(); if (spillreg.sesjonen.scenarioID <= 0) { spillreg.sesjonen.scenarioID = null; } for (i = 0; i < spillreg.sesjonen.Spillere.Count(); i++) { if (spillreg.sesjonen.Spillere[i].deltakerID <= 0) { fjernmeg.Add(spillreg.sesjonen.Spillere[i]); } else if (spillreg.sesjonen.Spillere[i].fraksjonID <= 0) { spillreg.sesjonen.Spillere[i].fraksjonID = null; } } foreach (Models.Spilldeltakelse tabort in fjernmeg) { spillreg.sesjonen.Spillere.Remove(tabort); } spillreg.sesjonen.spillerID = brukerData.userObject.spillerID; if (rapporten != null) { spillreg.sesjonen.spillrapport = rapporten; } databaseKontekst.spillsesjoner.Add(spillreg.sesjonen); databaseKontekst.SaveChanges(); } else { Models.Spillsesjon endresesjon = (from m in databaseKontekst.spillsesjoner where m.spillsesjonID == spillreg.sesjonen.spillsesjonID select m).FirstOrDefault(); endresesjon.dato = spillreg.sesjonen.dato; endresesjon.scenarioID = spillreg.sesjonen.scenarioID; endresesjon.spillrapport = rapporten; if (rapporten == null) { if (endresesjon.spillrapport != null) { databaseKontekst.spillrapporter.Remove(endresesjon.spillrapport); } endresesjon.rapportID = null; } if (endresesjon.scenarioID <= 0) { endresesjon.scenarioID = null; } // Ja, dette kan gjøre smidigiere uten en ekstra spørring for hver spilldeltakelse, men tenker sikkerhet og enkelhet først her. for (i = 0; i < spillreg.sesjonen.Spillere.Count(); i++) { Models.Spilldeltakelse firstuse = spillreg.sesjonen.Spillere[i]; Models.Spilldeltakelse orgdeltak = (from m in endresesjon.Spillere where m.spilldeltakelseID == firstuse.spilldeltakelseID select m).FirstOrDefault(); if (firstuse.deltakerID <= 0) { databaseKontekst.deltakelser.Remove(orgdeltak); } else { if (firstuse.fraksjonID <= 0) { firstuse.fraksjonID = null; } orgdeltak.fraksjonID = firstuse.fraksjonID; orgdeltak.deltakerID = firstuse.deltakerID; orgdeltak.poengsum = firstuse.poengsum; orgdeltak.posisjon = firstuse.posisjon; } } databaseKontekst.SaveChanges(); } return(RedirectToAction("SpillSesjoner/")); } else { return(View("Login")); } } else { return(RedirectToAction("Login")); } }
public static void ConstructFormData(Models.SpillRegData spillreg, Controllers.MainController contro, int sesjonID, int spillID) { int i = 0; if (sesjonID == 0) { spillreg.sesjonen = new Models.Spillsesjon(); spillreg.sesjonen.dato = DateTime.Today.Date; spillreg.sesjonen.Spill = (from m in contro.databaseKontekst.spillene where m.spillID == spillID select m).FirstOrDefault(); spillreg.sesjonen.spillID = spillreg.sesjonen.Spill.spillID; spillreg.sesjonen.klubbID = contro.brukerData.userClub.klubbID; spillreg.sesjonen.Spillere = new List <Models.Spilldeltakelse>(); for (i = 0; i < spillreg.sesjonen.Spill.spillerantall; i++) { Models.Spilldeltakelse nydel = new Models.Spilldeltakelse(); nydel.sesjon = spillreg.sesjonen; nydel.deltakerID = -1; nydel.fraksjonID = 0; spillreg.sesjonen.Spillere.Add(nydel); } } else { spillreg.sesjonen = (from m in contro.databaseKontekst.spillsesjoner where m.spillsesjonID == sesjonID select m).FirstOrDefault(); foreach (Models.Spilldeltakelse nyvar in spillreg.sesjonen.Spillere) { if (nyvar.fraksjonID == null) { nyvar.fraksjonID = 0; } } } if (sesjonID == 0 && spillreg.sesjonen.spillrapport == null) { Models.SpillRapport rapporten = new Models.SpillRapport(); rapporten.spillerID = contro.brukerData.userObject.spillerID; spillreg.sesjonen.spillrapport = rapporten; } var getQuery = (from m in contro.databaseKontekst.spillere select new { name = m.fornavn + " " + m.etternavn, ID = m.spillerID }).ToList(); getQuery.Add(new { name = "Ukjent", ID = 0 }); getQuery.Add(new { name = "Ikke i bruk", ID = -1 }); spillreg.spillerne = new List <Models.SelectListCustomItem>(); foreach (var getSingle in getQuery) { spillreg.spillerne.Add(new Models.SelectListCustomItem(getSingle.ID, getSingle.name)); } var fraksjoner = (from m in contro.databaseKontekst.spillfraksjoner where m.spillID == spillreg.sesjonen.Spill.spillID select new { name = m.navn, ID = m.fraksjonID }).ToList(); if (fraksjoner.Count > 0) { fraksjoner.Add(new { name = "Ikke spesifisert", ID = 0 }); spillreg.fraksjonene = new List <Models.SelectListCustomItem>(); foreach (var fraksje in fraksjoner) { spillreg.fraksjonene.Add(new Models.SelectListCustomItem(fraksje.ID, fraksje.name)); } } else { spillreg.fraksjonene = null; } var scenarioer = (from m in contro.databaseKontekst.spillscenarier where m.spillID == spillreg.sesjonen.Spill.spillID select new { name = m.navn, ID = m.scenarioID }).ToList(); if (scenarioer.Count > 0) { scenarioer.Add(new { name = "Ikke spesifisert", ID = 0 }); spillreg.scenariene = new List <Models.SelectListCustomItem>(); foreach (var fraksje in scenarioer) { spillreg.scenariene.Add(new Models.SelectListCustomItem(fraksje.ID, fraksje.name)); } } else { spillreg.scenariene = null; } }