public async Task <ActionResult <Kwalifikacja> > PostKwalifikacja(IKwalifikacjaAPI model) { Kwalifikacja kwalifikacja = new Kwalifikacja { ID = model.ID, Link = model.Link, Nazwa = model.Nazwa, Opis = model.Opis, }; var k = context.Kwalifikacje.Add(kwalifikacja); await context.SaveChangesAsync(); var kWydzial = model.Wydzial.Select(r => r.ID).ToArray(); var kwalifikacjaWydzial = context.Wydzialy.Where(w => kWydzial.Contains(w.ID)) .Select(q => new KwalifikacjaWydzial { WydzialID = q.ID, KwalifikacjaID = kwalifikacja.ID, Wydzial = q }); context.KwalifikacjeWydzialy.AddRange(kwalifikacjaWydzial); await context.SaveChangesAsync(); var kStanowisko = model.Stanowisko.Select(s => s.ID).ToArray(); var kwalifikacjaStanowisko = context.Stanowiska.Where(s => kStanowisko.Contains(s.ID)) .Select(q => new KwalifikacjaStanowisko { KwalifikacjaID = kwalifikacja.ID, StanowiskoID = q.ID, Stanowisko = q }).AsEnumerable(); context.KwalifikacjeStanowiska.AddRange(kwalifikacjaStanowisko); await context.SaveChangesAsync(); #region usuń //var kWydzial = mode.KwalifikacjaWydzial.Select(r => r.WydzialID).ToArray(); //kwalifikacja.KwalifikacjaWydzial = null; //var k = context.Kwalifikacje.Add(kwalifikacja); //await context.SaveChangesAsync(); //var kwalifikacjaWydzial = context.Wydzialy.Where(w => kWydzial.Contains(w.ID)) // .Select(q => new KwalifikacjaWydzial // { // WydzialID = q.ID, // KwalifikacjaID=kwalifikacja.ID, // Wydzial = q // }); //context.KwalifikacjeWydzialy.AddRange(kwalifikacjaWydzial); //await context.SaveChangesAsync(); #endregion model.ID = kwalifikacja.ID; model.Stanowisko = kwalifikacjaStanowisko.Select(s => s.Stanowisko).ToArray(); model.Wydzial = kwalifikacjaWydzial.Select(w => w.Wydzial).ToArray(); return(CreatedAtAction("GetKwalifikacja", new { id = kwalifikacja.ID }, model)); }
public async Task <IActionResult> PutKwalifikacja(int id, IKwalifikacjaAPI model) { if (id != model.ID) { return(BadRequest()); } Kwalifikacja modelKonwersja = new Kwalifikacja { ID = model.ID, Link = model.Link, Nazwa = model.Nazwa, Opis = model.Opis, }; context.Entry(modelKonwersja).State = EntityState.Modified; try { await context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!KwalifikacjaExists(id)) { return(NotFound(new { message = $"Nie znaleziono ID: {model.ID.ToString()}" })); } else { throw; } } //usuń wszystkie poprzednie var usun = context.KwalifikacjeWydzialy.Where(kw => kw.KwalifikacjaID == model.ID); context.KwalifikacjeWydzialy.RemoveRange(usun); context.SaveChanges(); // dodaj nowe wszystkie var kWydzial = model.Wydzial.Select(r => r.ID).ToArray(); var kwalifikacjaWydzial = context.Wydzialy.Where(w => kWydzial.Contains(w.ID)) .Select(q => new KwalifikacjaWydzial { WydzialID = q.ID, KwalifikacjaID = model.ID, Wydzial = q }).ToArray(); context.KwalifikacjeWydzialy.AddRange(kwalifikacjaWydzial); await context.SaveChangesAsync(); // stanowiska var usunStanowiska = context.KwalifikacjeStanowiska.Where(kw => kw.KwalifikacjaID == model.ID); context.KwalifikacjeStanowiska.RemoveRange(usunStanowiska); await context.SaveChangesAsync(); //dodaj stanowiska var kStan = model.Stanowisko.Select(s => s.ID).ToArray(); var kwalifikacjaStanowiska = context.Stanowiska.Where(s => kStan.Contains(s.ID)) .Select(q => new KwalifikacjaStanowisko { KwalifikacjaID = model.ID, StanowiskoID = q.ID }).ToArray(); context.KwalifikacjeStanowiska.AddRange(kwalifikacjaStanowiska); await context.SaveChangesAsync(); return(NoContent()); }