Exemplo n.º 1
0
        public IHttpActionResult Zatwierdz(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.Urlop ur = db.Urlop.First(u => u.Id == id);
                ur.Zatwierdzony = true;

                db.SaveChanges();
            }
            catch (InvalidOperationException ex)
            {
                return(Content(HttpStatusCode.NotFound, "Nie znaleziono urlopu o id " + id));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, "Błąd serwera"));
            }

            return(Ok(id));
        }
Exemplo n.º 2
0
        public IHttpActionResult Put(Models.UrlopToSend urlop)
        {
            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" &&
                user != urlop.pracownik)
            {
                return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!"));
            }

            Models.Urlop ur = null;
            try
            {
                Models.DataBaseEntities db        = new Models.DataBaseEntities();
                Models.Pracownik        pracownik = db.Pracownik.First(p => p.Id == urlop.pracownik);

                DateTime dzis = DateTime.Now;
                if (urlop.poczatek > urlop.koniec)
                {
                    return(Content(HttpStatusCode.BadRequest, "Początek musi być datę wcześneijszą niż koniec!"));
                }
                if (urlop.poczatek < dzis.Date || urlop.koniec < dzis.Date)
                {
                    return(Content(HttpStatusCode.BadRequest, "Obie daty muszą być w przyszłości!"));
                }

                ur           = new Models.Urlop();
                ur.Powod     = urlop.powod;
                ur.Pracownik = pracownik;
                //ur.DzienUrlopu = new List<Models.DzienUrlopu>();

                db.Urlop.Add(ur);

                for (DateTime dt = urlop.poczatek; dt <= urlop.koniec; dt = dt.AddDays(1))
                {
                    if (pracownik.DzienRoboczyPracownika.FirstOrDefault(d => d.DzienTygodnia.Id == (int)dt.DayOfWeek) != null)
                    {
                        Models.Dzien dzien = db.Dzien.FirstOrDefault(d => d.Data == dt);
                        if (dzien == null)
                        {
                            dzien      = new Models.Dzien();
                            dzien.Data = dt;
                            db.Dzien.Add(dzien);
                        }
                        Models.DzienUrlopu du = new Models.DzienUrlopu();
                        du.Dzien = dzien;
                        du.Urlop = ur;
                        db.DzienUrlopu.Add(du);
                    }
                }


                db.SaveChanges();
            }
            catch (InvalidOperationException ex)
            {
                return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id " + urlop.pracownik));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, "Błąd serwera"));
            }

            return(Ok(ur.Id));
        }