Пример #1
0
        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));
        }
Пример #2
0
        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());
        }