Exemple #1
0
        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);
                    }
                }
            }
        }
Exemple #2
0
        // GET: Treenerid/Create
        public IActionResult Create()
        {
            var treener = new Treener();

            treener.SpordialaAssignments = new List <SpordialaAssignment>();
            PopulateAssignedSpordialaData(treener);
            return(View());
        }
Exemple #3
0
        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;
        }
Exemple #4
0
        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)));
        }
Exemple #5
0
        // 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));
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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));
        }