private void UpdateTreenerSpordialad(string[] selectedSpordiala, Treener treenerToUpdate) { if (selectedSpordiala == null) { treenerToUpdate.SpordialaAssignments = new List <SpordialaAssignment>(); return; } var selectedSpordialaHS = new HashSet <string>(selectedSpordiala); var treenerSpordiala = new HashSet <int> (treenerToUpdate.SpordialaAssignments.Select(c => c.Spordiala.SpordialaID)); foreach (var spordiala in _context.Spordialad) { if (selectedSpordialaHS.Contains(spordiala.SpordialaID.ToString())) { if (!treenerSpordiala.Contains(spordiala.SpordialaID)) { treenerToUpdate.SpordialaAssignments.Add(new SpordialaAssignment { TreenerID = treenerToUpdate.ID, SpordialaID = spordiala.SpordialaID }); } } else { if (treenerSpordiala.Contains(spordiala.SpordialaID)) { SpordialaAssignment spordialaToRemove = treenerToUpdate.SpordialaAssignments.FirstOrDefault(i => i.SpordialaID == spordiala.SpordialaID); _context.Remove(spordialaToRemove); } } } }
// GET: Treenerid/Create public IActionResult Create() { var treener = new Treener(); treener.SpordialaAssignments = new List <SpordialaAssignment>(); PopulateAssignedSpordialaData(treener); return(View()); }
private void PopulateAssignedSpordialaData(Treener treener) { var allSpordialad = _context.Spordialad; var treenerSpordialad = new HashSet <int>(treener.SpordialaAssignments.Select(c => c.SpordialaID)); var viewModel = new List <AssignedSpordialaData>(); foreach (var spordiala in allSpordialad) { viewModel.Add(new AssignedSpordialaData { SpordialaID = spordiala.SpordialaID, Nimi = spordiala.Nimi, Assigned = treenerSpordialad.Contains(spordiala.SpordialaID) }); } ViewData["Courses"] = viewModel; }
public async Task <IActionResult> DeleteConfirmed(int id) { Treener treener = await _context.Treenerid .Include(i => i.SpordialaAssignments) .SingleAsync(i => i.ID == id); var osakonnad = await _context.Osakonnad .Where(d => d.TreenerID == id) .ToListAsync(); osakonnad.ForEach(d => d.TreenerID = null); _context.Treenerid.Remove(treener); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
// GET: Treenerid public async Task <IActionResult> Index(int?id, int?spordialaID) { var viewModel = new TreenerIndexData(); viewModel.Treenerid = await _context.Treenerid .Include(i => i.AsutuseAssignment) .Include(i => i.SpordialaAssignments) .ThenInclude(i => i.Spordiala) .ThenInclude(i => i.Registreeringud) .ThenInclude(i => i.Sportlane) .Include(i => i.SpordialaAssignments) .ThenInclude(i => i.Spordiala) .ThenInclude(i => i.Osakond) .AsNoTracking() .OrderBy(i => i.Perekonnanimi) .ToListAsync(); if (id != null) { ViewData["TreenerID"] = id.Value; Treener treener = viewModel.Treenerid.Where( i => i.ID == id.Value).Single(); viewModel.Spordialad = treener.SpordialaAssignments.Select(s => s.Spordiala); } if (spordialaID != null) { ViewData["SpordialaID"] = spordialaID.Value; var selectedCourse = viewModel.Spordialad.Where(x => x.SpordialaID == spordialaID).Single(); await _context.Entry(selectedCourse).Collection(x => x.Registreeringud).LoadAsync(); foreach (Registreering registreering in selectedCourse.Registreeringud) { await _context.Entry(registreering).Reference(x => x.Sportlane).LoadAsync(); } viewModel.Registreeringud = selectedCourse.Registreeringud; } return(View(viewModel)); }
public async Task <IActionResult> Create([Bind("Eesnimi, PalkamiseKP, Perekonnanimi, AsutuseAssignment")] Treener treener, string[] selectedSpordialad) { if (selectedSpordialad != null) { treener.SpordialaAssignments = new List <SpordialaAssignment>(); foreach (var spordiala in selectedSpordialad) { var spordialaToAdd = new SpordialaAssignment { TreenerID = treener.ID, SpordialaID = int.Parse(spordiala) }; treener.SpordialaAssignments.Add(spordialaToAdd); } } if (ModelState.IsValid) { _context.Add(treener); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } PopulateAssignedSpordialaData(treener); return(View(treener)); }
public static void Initialize(SpordiContext context) { //context.Database.EnsureCreated(); // Look for any Sportlased. if (context.Sportlased.Any()) { return; // DB has been seeded } var sportlased = new Sportlane[] { new Sportlane { Eesnimi = "Carson", Perekonnanimi = "Alexander", RegistreeringuKP = DateTime.Parse("2010-09-01") }, new Sportlane { Eesnimi = "Meredith", Perekonnanimi = "Alonso", RegistreeringuKP = DateTime.Parse("2012-09-01") }, new Sportlane { Eesnimi = "Arturo", Perekonnanimi = "Anand", RegistreeringuKP = DateTime.Parse("2013-09-01") }, new Sportlane { Eesnimi = "Gytis", Perekonnanimi = "Barzdukas", RegistreeringuKP = DateTime.Parse("2012-09-01") }, new Sportlane { Eesnimi = "Yan", Perekonnanimi = "Li", RegistreeringuKP = DateTime.Parse("2012-09-01") }, new Sportlane { Eesnimi = "Peggy", Perekonnanimi = "Justice", RegistreeringuKP = DateTime.Parse("2011-09-01") }, new Sportlane { Eesnimi = "Laura", Perekonnanimi = "Norman", RegistreeringuKP = DateTime.Parse("2013-09-01") }, new Sportlane { Eesnimi = "Nino", Perekonnanimi = "Olivetto", RegistreeringuKP = DateTime.Parse("2005-09-01") } }; foreach (Sportlane s in sportlased) { context.Sportlased.Add(s); } context.SaveChanges(); var treenerid = new Treener[] { new Treener { Eesnimi = "Kim", Perekonnanimi = "Abercrombie", PalkamiseKP = DateTime.Parse("1995-03-11") }, new Treener { Eesnimi = "Fadi", Perekonnanimi = "Fakhouri", PalkamiseKP = DateTime.Parse("2002-07-06") }, new Treener { Eesnimi = "Roger", Perekonnanimi = "Harui", PalkamiseKP = DateTime.Parse("1998-07-01") }, new Treener { Eesnimi = "Candace", Perekonnanimi = "Kapoor", PalkamiseKP = DateTime.Parse("2001-01-15") }, new Treener { Eesnimi = "Roger", Perekonnanimi = "Zheng", PalkamiseKP = DateTime.Parse("2004-02-12") } }; foreach (Treener i in treenerid) { context.Treenerid.Add(i); } context.SaveChanges(); var osakonnad = new Osakond[] { new Osakond { Nimi = "Motosport", Eelarve = 350000, AlgusKP = DateTime.Parse("2007-09-01"), TreenerID = treenerid.Single(i => i.Perekonnanimi == "Abercrombie").ID }, new Osakond { Nimi = "Veesport", Eelarve = 100000, AlgusKP = DateTime.Parse("2007-09-01"), TreenerID = treenerid.Single(i => i.Perekonnanimi == "Fakhouri").ID }, new Osakond { Nimi = "Talisport", Eelarve = 350000, AlgusKP = DateTime.Parse("2007-09-01"), TreenerID = treenerid.Single(i => i.Perekonnanimi == "Harui").ID }, new Osakond { Nimi = "Suvesport", Eelarve = 100000, AlgusKP = DateTime.Parse("2007-09-01"), TreenerID = treenerid.Single(i => i.Perekonnanimi == "Kapoor").ID } }; foreach (Osakond d in osakonnad) { context.Osakonnad.Add(d); } context.SaveChanges(); var spordialad = new Spordiala[] { new Spordiala { SpordialaID = 1050, Nimi = "Kergejõustik", OsakondID = osakonnad.Single(s => s.Nimi == "Suvesport").OsakondID }, new Spordiala { SpordialaID = 4022, Nimi = "Suusatamine", OsakondID = osakonnad.Single(s => s.Nimi == "Talisport").OsakondID }, new Spordiala { SpordialaID = 4041, Nimi = "Autoralli", OsakondID = osakonnad.Single(s => s.Nimi == "Motosport").OsakondID }, new Spordiala { SpordialaID = 1045, Nimi = "Uisutamine", OsakondID = osakonnad.Single(s => s.Nimi == "Talisport").OsakondID }, new Spordiala { SpordialaID = 3141, Nimi = "Vettehüpped", OsakondID = osakonnad.Single(s => s.Nimi == "Veesport").OsakondID }, new Spordiala { SpordialaID = 2021, Nimi = "Laskesuusatamine", OsakondID = osakonnad.Single(s => s.Nimi == "Talisport").OsakondID }, new Spordiala { SpordialaID = 2042, Nimi = "Purjetamine", OsakondID = osakonnad.Single(s => s.Nimi == "Suvesport").OsakondID }, }; foreach (Spordiala c in spordialad) { context.Spordialad.Add(c); } context.SaveChanges(); var asutuseAssignments = new AsutuseAssignment[] { new AsutuseAssignment { TreenerID = treenerid.Single(i => i.Perekonnanimi == "Fakhouri").ID, Location = "Smith 17" }, new AsutuseAssignment { TreenerID = treenerid.Single(i => i.Perekonnanimi == "Harui").ID, Location = "Gowan 27" }, new AsutuseAssignment { TreenerID = treenerid.Single(i => i.Perekonnanimi == "Kapoor").ID, Location = "Thompson 304" }, }; foreach (AsutuseAssignment o in asutuseAssignments) { context.AsutuseAssignments.Add(o); } context.SaveChanges(); var spordialatreenerid = new SpordialaAssignment[] { new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Kergejõustik").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Kapoor").ID }, new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Kergejõustik").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Harui").ID }, new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Suusatamine").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Zheng").ID }, new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Autoralli").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Zheng").ID }, new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Uisutamine").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Fakhouri").ID }, new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Vettehüpped").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Harui").ID }, new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Laskesuusatamine").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Abercrombie").ID }, new SpordialaAssignment { SpordialaID = spordialad.Single(c => c.Nimi == "Purjetamine").SpordialaID, TreenerID = treenerid.Single(i => i.Perekonnanimi == "Abercrombie").ID }, }; foreach (SpordialaAssignment si in spordialatreenerid) { context.SpordialaAssignments.Add(si); } context.SaveChanges(); var registreering = new Registreering[] { new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Alexander").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Kergejõustik").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Alexander").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Suusatamine").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Alexander").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Purjetamine").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Alonso").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Vettehüpped").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Alonso").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Uisutamine").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Alonso").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Laskesuusatamine").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Anand").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Kergejõustik").SpordialaID }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Anand").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Autoralli").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Barzdukas").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Kergejõustik").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Li").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Autoralli").SpordialaID, }, new Registreering { SportlaneID = sportlased.Single(s => s.Perekonnanimi == "Justice").ID, SpordialaID = spordialad.Single(c => c.Nimi == "Vettehüpped").SpordialaID, } }; foreach (Registreering r in registreering) { var RegistreeringInDataBase = context.Registreeringud.Where( s => s.Sportlane.ID == r.SportlaneID && s.Spordiala.SpordialaID == r.SpordialaID).SingleOrDefault(); if (RegistreeringInDataBase == null) { context.Registreeringud.Add(r); } } context.SaveChanges(); }
public async Task <IActionResult> Edit(int?id, byte[] rowVersion) { if (id == null) { return(NotFound()); } var osakondToUpdate = await _context.Osakonnad.Include(i => i.Administrator).FirstOrDefaultAsync(m => m.OsakondID == id); if (osakondToUpdate == null) { Osakond deletedOsakond = new Osakond(); await TryUpdateModelAsync(deletedOsakond); ModelState.AddModelError(string.Empty, "Ei saa muudatusi salvestada. Osakond on teise kasutaja poolt kustutatud."); ViewData["TreenerID"] = new SelectList(_context.Treenerid, "ID", "Täisnimi", deletedOsakond.TreenerID); return(View(deletedOsakond)); } _context.Entry(osakondToUpdate).Property("RowVersion").OriginalValue = rowVersion; if (await TryUpdateModelAsync <Osakond>(osakondToUpdate, "", s => s.Nimi, s => s.AlgusKP, s => s.Eelarve, s => s.TreenerID)) { try { await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch (DbUpdateConcurrencyException ex) { var exceptionEntry = ex.Entries.Single(); var clientValues = (Osakond)exceptionEntry.Entity; var databaseEntry = exceptionEntry.GetDatabaseValues(); if (databaseEntry == null) { ModelState.AddModelError(string.Empty, "Ei saa muudatusi salvestada. Osakond on teise kasutaja poolt kustutatud."); } else { var databaseValues = (Osakond)databaseEntry.ToObject(); if (databaseValues.Nimi != clientValues.Nimi) { ModelState.AddModelError("Nimi", $"Current value: {databaseValues.Nimi}"); } if (databaseValues.Eelarve != clientValues.Eelarve) { ModelState.AddModelError("Eelarve", $"Current value: {databaseValues.Eelarve:c}"); } if (databaseValues.AlgusKP != clientValues.AlgusKP) { ModelState.AddModelError("AlgusKP", $"Current value: {databaseValues.AlgusKP:d}"); } if (databaseValues.TreenerID != clientValues.TreenerID) { Treener databaseInstructor = await _context.Treenerid.FirstOrDefaultAsync(i => i.ID == databaseValues.TreenerID); ModelState.AddModelError("TreenerID", $"Current value: {databaseInstructor?.Täisnimi}"); } ModelState.AddModelError(string.Empty, "The record you attempted to edit " + "was modified by another user after you got the original value. The " + "edit operation was canceled and the current values in the database " + "have been displayed. If you still want to edit this record, click " + "the Save button again. Otherwise click the Back to List hyperlink."); osakondToUpdate.RowVersion = (byte[])databaseValues.RowVersion; ModelState.Remove("RowVersion"); } } } ViewData["TreenerID"] = new SelectList(_context.Treenerid, "ID", "Täisnimi", osakondToUpdate.TreenerID); return(View(osakondToUpdate)); }