public IHttpActionResult Delete(int id)
        {
            User = System.Web.HttpContext.Current.User;
            int user;

            int.TryParse(((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Id").Value, out user);

            ((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Admin");
            if (((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Admin").Value == "false")
            {
                return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!"));
            }
            try
            {
                Models.DataBaseEntities db         = new Models.DataBaseEntities();
                Models.Stanowisko       stanowisko = db.Stanowisko.First(s => s.Id == id);

                stanowisko.StanowiskoPracownika.Clear();
                stanowisko.StanowiskoMiejsca.Clear();

                db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                string wiadomosc = "";
                foreach (DbValidationError er in e.EntityValidationErrors.First().ValidationErrors)
                {
                    wiadomosc += er.ErrorMessage + "\n";
                }
                return(Content(HttpStatusCode.BadRequest, wiadomosc));
            }
            catch (InvalidOperationException ex)
            {
                return(Content(HttpStatusCode.NotFound, "Nie znaleziono stanowiska o id " + id));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, "Błąd serwera"));
            }

            return(Ok());
        }
        public IHttpActionResult Put(Models.StanowiskoToSend stanowisko)
        {
            User = System.Web.HttpContext.Current.User;
            int user;

            int.TryParse(((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Id").Value, out user);

            ((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Admin");
            if (((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Admin").Value == "false")
            {
                return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!"));
            }

            Models.Stanowisko st = null;

            try
            {
                Models.DataBaseEntities db = new Models.DataBaseEntities();

                st = new Models.Stanowisko();

                st.Nazwa             = stanowisko.Nazwa;
                st.StanowiskoMiejsca = new List <Models.StanowiskoMiejsca>();

                db.Stanowisko.Add(st);

                foreach (Models.StanowiskoMiejscaToSend smts in stanowisko.Miejsca)
                {
                    Models.Godzina go = db.Godzina.FirstOrDefault(g => g.Poczatek == smts.Pocatek && g.Koniec == smts.Koniec && g.DzienTygodnia.Id == smts.Dzien);
                    if (go == null)
                    {
                        go               = new Models.Godzina();
                        go.Poczatek      = smts.Pocatek;
                        go.Koniec        = smts.Koniec;
                        go.DzienTygodnia = db.DzienTygodnia.First(d => d.Id == smts.Dzien % 7);

                        db.Godzina.Add(go);
                    }

                    Models.StanowiskoMiejsca sm = new Models.StanowiskoMiejsca();
                    sm.Godzina    = go;
                    sm.Maksimum   = smts.Max;
                    sm.Minimum    = smts.Min;
                    sm.Stanowisko = st;

                    db.StanowiskoMiejsca.Add(sm);
                }

                db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                string wiadomosc = "";
                foreach (DbValidationError er in e.EntityValidationErrors.First().ValidationErrors)
                {
                    wiadomosc += er.ErrorMessage + "\n";
                }
                return(Content(HttpStatusCode.BadRequest, wiadomosc));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, "Błąd serwera"));
            }

            return(Ok(st.Id));
        }
示例#3
0
        public IHttpActionResult DodajPozycje(Models.NaStanowiskuToSend naStanowisku, int grafik)
        {
            User = System.Web.HttpContext.Current.User;
            ((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Admin");
            if (((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Admin").Value == "false")
            {
                return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!"));
            }

            try
            {
                Models.DataBaseEntities db = new Models.DataBaseEntities();

                Models.Grafik gr = db.Grafik.FirstOrDefault(g => g.Id == grafik);
                if (gr == null)
                {
                    return(Content(HttpStatusCode.NotFound, "Nie znaleziono grafiku o id " + grafik));
                }

                Models.Pracownik pracownik = db.Pracownik.FirstOrDefault(p => p.Id == naStanowisku.IdPracownika);
                if (pracownik == null)
                {
                    return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id " + naStanowisku.IdPracownika));
                }

                Models.Stanowisko stanowisko = db.Stanowisko.FirstOrDefault(s => s.Id == naStanowisku.IdStanowiska);
                if (stanowisko == null)
                {
                    return(Content(HttpStatusCode.NotFound, "Nie znaleziono stanowiska o id " + naStanowisku.IdStanowiska));
                }

                Models.Czas godzina = gr.Czas.FirstOrDefault(g => g.Poczatek == naStanowisku.Poczatek && g.Koniec == naStanowisku.Koniec);
                if (godzina == null)
                {
                    godzina          = new Models.Czas();
                    godzina.Poczatek = naStanowisku.Poczatek;
                    godzina.Koniec   = naStanowisku.Koniec;
                    godzina.Grafik   = gr;

                    db.Czas.Add(godzina);
                }
                else
                {
                    foreach (Models.PracownikNaStanowisku pns in godzina.PracownikNaStanowisku)
                    {
                        if (pns.Pracownik.Id == naStanowisku.IdPracownika)
                        {
                            return(Content(HttpStatusCode.BadRequest, "Pracownik znajduje się już na stanowisku"));
                        }
                    }
                }

                Models.PracownikNaStanowisku prns = new Models.PracownikNaStanowisku();
                prns.Pracownik  = pracownik;
                prns.Stanowisko = stanowisko;
                prns.Czas       = godzina;

                db.PracownikNaStanowisku.Add(prns);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, ex.ToString()));
            }

            return(Ok());
        }