public IHttpActionResult Patch(Models.PracownikToSend pracownik) { 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 != pracownik.Id) { return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!")); } try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.Pracownik pr = db.Pracownik.First(p => p.Id == pracownik.Id); if (pracownik.Imie != null && pracownik.Imie.Length > 0) { pr.Imie = pracownik.Imie; } if (pracownik.Nazwisko != null && pracownik.Nazwisko.Length > 0) { pr.Nazwisko = pracownik.Nazwisko; } if (pracownik.Haslo != null && pracownik.Haslo.Length > 0) { pr.Haslo = HashPassword(pracownik.Haslo); } if (pracownik.Email != null && pracownik.Email.Length > 0) { pr.Email = pracownik.Email; } if (pracownik.GodzinWUmowie != null) { pr.GodzinWUmowie = pracownik.GodzinWUmowie; } pr.Administrator = pracownik.Administrator; if (pracownik.DniRobocze != null) { db.DzienRoboczyPracownika.RemoveRange(pr.DzienRoboczyPracownika); pr.DzienRoboczyPracownika.Clear(); foreach (Models.DzienRoboczyPracownikaToSend drpts in pracownik.DniRobocze) { if (drpts.poczatek >= drpts.koniec) { return(Content(HttpStatusCode.BadRequest, "Godzina zakończenai musi być po godzinie rozpoczęcia!")); } Models.DzienRoboczyPracownika drp = new Models.DzienRoboczyPracownika(); drp.DzienTygodnia = db.DzienTygodnia.First(d => d.Id == drpts.dzien); drp.Pracownik = pr; drp.Poczatek = drpts.poczatek; drp.Koniec = drpts.koniec; db.DzienRoboczyPracownika.Add(drp); } } if (pracownik.Stanowiska != null) { db.StanowiskoPracownika.RemoveRange(pr.StanowiskoPracownika); pr.StanowiskoPracownika.Clear(); foreach (Models.StanowiskoPracownikaToSend spts in pracownik.Stanowiska) { Models.StanowiskoPracownika sp = new Models.StanowiskoPracownika(); sp.Pracownik = pr; sp.Stanowisko = db.Stanowisko.First(s => s.Id == spts.StanowiskoId); db.StanowiskoPracownika.Add(sp); } } db.SaveChanges(); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id " + pracownik.Id)); } 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()); }
public IHttpActionResult Put(Models.PracownikToSend pracownik) { 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.Pracownik pr = new Models.Pracownik(); try { Models.DataBaseEntities db = new Models.DataBaseEntities(); pr.Imie = pracownik.Imie; pr.Nazwisko = pracownik.Nazwisko; pr.Haslo = HashPassword(pracownik.Haslo); pr.Administrator = false; pr.GodzinWUmowie = pracownik.GodzinWUmowie; pr.Email = pracownik.Email; if (pracownik.DniRobocze != null) { foreach (Models.DzienRoboczyPracownikaToSend drpts in pracownik.DniRobocze) { Models.DzienRoboczyPracownika drp = new Models.DzienRoboczyPracownika(); drp.DzienTygodnia = db.DzienTygodnia.First(d => d.Id == drpts.dzien); drp.Pracownik = pr; drp.Poczatek = drpts.poczatek; drp.Koniec = drpts.koniec; db.DzienRoboczyPracownika.Add(drp); } } if (pracownik.Stanowiska != null) { foreach (Models.StanowiskoPracownikaToSend spts in pracownik.Stanowiska) { Models.StanowiskoPracownika sp = new Models.StanowiskoPracownika(); sp.Pracownik = pr; sp.Stanowisko = db.Stanowisko.First(s => s.Id == spts.StanowiskoId); db.StanowiskoPracownika.Add(sp); } } db.Pracownik.Add(pr); 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(pr.Id)); }