public IHttpActionResult List() { 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!")); } List <Models.DzienRoboczyPracownikaToSend> lista = new List <Models.DzienRoboczyPracownikaToSend>(); try { Models.DataBaseEntities db = new Models.DataBaseEntities(); foreach (Models.DzienTygodnia d in db.DzienTygodnia) { foreach (Models.DzienRoboczyPracownika drp in d.DzienRoboczyPracownika) { lista.Add(new Models.DzienRoboczyPracownikaToSend(drp)); } } } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(lista)); }
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)); }
public IHttpActionResult SkasujPozycje(int id) { 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.PracownikNaStanowisku pns = db.PracownikNaStanowisku.FirstOrDefault(p => p.Id == id); if (pns == null) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pozycji o id " + id)); } db.PracownikNaStanowisku.Remove(pns); db.SaveChanges(); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, ex.ToString())); } return(Ok()); }
public IHttpActionResult StanowiskoDelete(int pracownik, int 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" && user != pracownik) { return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!")); } List <Models.StanowiskoPracownikaToSend> stanowiska = new List <Models.StanowiskoPracownikaToSend>(); try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.StanowiskoPracownika sp = db.StanowiskoPracownika.First(s => s.Pracownik.Id == pracownik && s.Stanowisko.Id == stanowisko); db.StanowiskoPracownika.Remove(sp); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id" + pracownik + " pracującego na stanowisku o id" + stanowisko)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(stanowiska)); }
public IHttpActionResult List(Boolean czyWszystkie) { List <Models.GrafikToSend> lista = new List <Models.GrafikToSend>(); try { Models.DataBaseEntities db = new Models.DataBaseEntities(); if (czyWszystkie) { foreach (Models.Grafik gr in db.Grafik) { lista.Add(new Models.GrafikToSend(gr, false)); } } else { foreach (Models.Grafik gr in db.Grafik.Where(g => g.Zatwierdzony != null)) { lista.Add(new Models.GrafikToSend(gr, false)); } } } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(lista)); }
public IHttpActionResult List() { List <Models.StanowiskoToSend> lista = new List <Models.StanowiskoToSend>(); try { Models.DataBaseEntities db = new Models.DataBaseEntities(); foreach (Models.Stanowisko st in db.Stanowisko) { /* * st.PracownikNaStanowisku = null; * st.StanowiskoPracownika = null; * st.StanowiskoMiejsca = null; * lista.Add(st); */ lista.Add(new Models.StanowiskoToSend(st, false)); } } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(lista)); }
public IHttpActionResult Get(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" && user != id) { return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!")); } try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.Pracownik pracownik = db.Pracownik.First(p => p.Id == id); return(Ok(new Models.PracownikToSend(pracownik, true))); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id " + id)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } }
public IHttpActionResult Put(Models.DzienRoboczyPracownikaToSend dzienRoboczy) { 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.DzienRoboczyPracownika drp = null; try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.Pracownik pracownik = db.Pracownik.First(p => p.Id == dzienRoboczy.pracownik); drp = pracownik.DzienRoboczyPracownika.FirstOrDefault(d => d.DzienTygodnia.Id == dzienRoboczy.dzien); if (drp != null) { drp.Poczatek = dzienRoboczy.poczatek; drp.Koniec = dzienRoboczy.koniec; } else { drp = new Models.DzienRoboczyPracownika(); drp.DzienTygodnia = db.DzienTygodnia.First(d => d.Id == dzienRoboczy.dzien); drp.Koniec = dzienRoboczy.koniec; drp.Poczatek = dzienRoboczy.poczatek; drp.Pracownik = pracownik; db.DzienRoboczyPracownika.Add(drp); } 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 pracownika o id " + dzienRoboczy.pracownik)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(drp.Id)); }
public IHttpActionResult StanowiskoAdd(int pracownik, int 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" && user != pracownik) { return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!")); } try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.StanowiskoPracownika sp = db.StanowiskoPracownika.FirstOrDefault(s => s.Pracownik.Id == pracownik && s.Stanowisko.Id == stanowisko); if (sp == null) { sp = new Models.StanowiskoPracownika(); sp.Pracownik = db.Pracownik.FirstOrDefault(p => p.Id == pracownik); if (sp.Pracownik == null) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id" + pracownik)); } sp.Stanowisko = db.Stanowisko.FirstOrDefault(s => s.Id == stanowisko); if (sp.Stanowisko == null) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono stanowiska o id" + stanowisko)); } db.StanowiskoPracownika.Add(sp); } } 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 List(int id, DateTime data, Boolean zatwierdzone) { 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 != id) { return(Content(HttpStatusCode.Forbidden, "Brak uprawnień do wykonania zadania!")); } List <Models.UrlopToSend> lista = new List <Models.UrlopToSend>(); try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.Pracownik pracownik = db.Pracownik.First(p => p.Id == id); if (zatwierdzone) { foreach (Models.Urlop u in db.Urlop.Where(u => u.Zatwierdzony && u.DzienUrlopu.OrderBy(dd => dd.Dzien_Data).FirstOrDefault().Dzien_Data >= data)) //foreach (Models.Urlop u in pracownik.Urlop.Where(ur => ur.Zatwierdzony == true)) { lista.Add(new Models.UrlopToSend(u)); } } else { foreach (Models.Urlop u in pracownik.Urlop.Where(u => u.DzienUrlopu.OrderBy(dd => dd.Dzien_Data).FirstOrDefault().Dzien_Data >= data)) //foreach (Models.Urlop u in pracownik.Urlop) { lista.Add(new Models.UrlopToSend(u)); } } } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id " + id)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(lista)); }
public IHttpActionResult Delete(int pracownik, int dzien) { 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.DzienRoboczyPracownika drp = null; try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.Pracownik pr = db.Pracownik.First(p => p.Id == pracownik); if (dzien < 0 || dzien > 6) { throw new ArgumentException(); } drp = pr.DzienRoboczyPracownika.FirstOrDefault(d => d.DzienTygodnia.Id == dzien); db.DzienRoboczyPracownika.Remove(drp); db.SaveChanges(); } catch (ArgumentException ex) { return(Content(HttpStatusCode.NotFound, "Nie ma dnia tygodnia nr " + dzien)); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id " + pracownik)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(drp.Id)); }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var identity = new ClaimsIdentity(context.Options.AuthenticationType); context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); using (var db = new Models.DataBaseEntities()) { if (db != null) { var users = db.Pracownik.ToList(); if (users != null) { var user = users.Find(u => u.Email == context.UserName && u.Haslo == context.Password && u.Haslo != ""); if (user != null) { identity.AddClaim(new Claim("Id", user.Id.ToString())); identity.AddClaim(new Claim("Admin", user.Administrator.ToString())); var props = new AuthenticationProperties(new Dictionary <string, string> { { "userdisplayname", user.Imie + " " + user.Nazwisko } }); var ticket = new AuthenticationTicket(identity, props); context.Validated(ticket); } else { context.SetError("invalid_grant", "Nieprawidłowy Email lub Hasło"); context.Rejected(); } } } else { context.SetError("invalid_grant", "Nieprawidłowy Email lub Hasło"); context.Rejected(); } return; } }
public IHttpActionResult Get() { try { Models.DataBaseEntities db = new Models.DataBaseEntities(); int user = int.Parse(((ClaimsIdentity)User.Identity).Claims.First(c => c.Type == "Id").Value); Models.Pracownik pracownik = db.Pracownik.First(p => p.Id == user); return(Ok(new Models.PracownikToSend(pracownik, true))); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie istnieje pracownik odpowiadający przesłanemu tokenowi")); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } }
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 Get(int id) { Models.GrafikToSend grafik = null; try { Models.DataBaseEntities db = new Models.DataBaseEntities(); grafik = new Models.GrafikToSend(db.Grafik.First(g => g.Id == id)); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono grafiku o id " + id)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(grafik)); }
public IHttpActionResult Zatwierdz(int id, Boolean zatwierdzone) { 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.DataBaseEntities db = new Models.DataBaseEntities(); Models.Grafik gr = null; try { gr = db.Grafik.First(g => g.Id == id); if (zatwierdzone) { gr.Zatwierdzony = DateTime.Now; } else { gr.Zatwierdzony = null; } db.SaveChanges(); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono grafiku o id " + id)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(gr.Zatwierdzony)); }
public IHttpActionResult Get(int id) { Models.StanowiskoToSend stanowisko = null; try { Models.DataBaseEntities db = new Models.DataBaseEntities(); stanowisko = new Models.StanowiskoToSend(db.Stanowisko.First(s => s.Id == id)); } 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(stanowisko)); }
public IHttpActionResult List() { 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!")); } List <Models.PracownikToSend> pracownicy = new List <Models.PracownikToSend>(); try { Models.DataBaseEntities db = new Models.DataBaseEntities(); foreach (Models.Pracownik p in db.Pracownik) { /* * p.Haslo = ""; * p.Urlop = null; * p.StanowiskoPracownika = null; * p.DzienRoboczyPracownika = null; * * pracownicy.Add(p); */ pracownicy.Add(new Models.PracownikToSend(p)); } } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(pracownicy)); }
public IHttpActionResult GrafikPracownika(int id, DateTime dzien) { Models.GrafikToSend grafik = null; try { Models.DataBaseEntities db = new Models.DataBaseEntities(); Models.Grafik gr = db.Grafik.Where(g => g.Zatwierdzony != null && g.Poczatek <= dzien && g.Koniec > dzien).OrderBy(g => g.Poczatek).First(); grafik = new Models.GrafikToSend(gr, id); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono zatwierdzonego grafiku na dzień " + dzien.ToString("dd'-'MM'-'yyyy"))); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok(grafik)); }
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.Pracownik pracownik = db.Pracownik.First(p => p.Id == id); pracownik.Administrator = false; pracownik.GodzinWUmowie = 0; pracownik.StanowiskoPracownika.Clear(); pracownik.Urlop.Clear(); pracownik.DzienRoboczyPracownika.Clear(); db.SaveChanges(); } catch (InvalidOperationException ex) { return(Content(HttpStatusCode.NotFound, "Nie znaleziono pracownika o id " + id)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, "Błąd serwera")); } return(Ok()); }
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()); }
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)); }
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)); }
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)); }
public IHttpActionResult Generuj(DateTime poczatek, DateTime koniec, int naGodzine) { 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.Grafik grafik = null; try { if (TRWA_GENEROWANIE) { return(Content(HttpStatusCode.Conflict, "Trwa Generowanie")); } TRWA_GENEROWANIE = true; Models.DataBaseEntities db = new Models.DataBaseEntities(); List <Models.Pracownik> pracownicy = db.Pracownik.Where(p => p.GodzinWUmowie > 0 && p.StanowiskoPracownika.Count() > 0).ToList(); List <Models.Stanowisko> stanowiska = db.Stanowisko.Where(s => s.StanowiskoPracownika.Count() > 0).ToList(); // 1 bit dla czy w pracy // pozostale numer stanowiska int dlugoscKodonu = (int)Math.Round(Math.Log(stanowiska.Count(), 2), 0, MidpointRounding.AwayFromZero); int iloscPrzedzialow = (int)Math.Round(koniec.Subtract(poczatek).TotalHours *naGodzine, 0, MidpointRounding.AwayFromZero) * naGodzine; double przedzial = 60 / naGodzine; List <double> genMin = new List <double>(); List <double> genMax = new List <double>(); List <int> genBits = new List <int>(); List <int> genDecimal = new List <int>(); for (int i = 0; i < iloscPrzedzialow * pracownicy.Count(); i++) { genMin.Add(0); genMin.Add(0); genMax.Add(1); genMax.Add(stanowiska.Count() - 1); genBits.Add(1); genBits.Add(dlugoscKodonu); genDecimal.Add(0); genDecimal.Add(0); } var selection = new EliteSelection(); //var selection = new TournamentSelection(100, true); var crossover = new UniformCrossover(0.5f); //var crossover = new ThreeParentCrossover(); //var mutation = new ReverseSequenceMutation(); var mutation = new FlipBitMutation(); //var mutation = new UniformMutation(false); var fitness = new OcenaGrafiku(pracownicy, stanowiska, naGodzine, poczatek, koniec); var termination = new GeneticSharp.Domain.Terminations.OrTermination( new FitnessStagnationTermination(1000), new FitnessThresholdTermination(0), new TimeEvolvingTermination(new TimeSpan(0, 5, 0))); var chromosome = new FloatingPointChromosome(genMin.ToArray(), genMax.ToArray(), genBits.ToArray(), genDecimal.ToArray()); var population = new Population(1000, 10000, chromosome); var ga = new GeneticAlgorithm(population, fitness, selection, crossover, mutation); ga.Termination = termination; ga.MutationProbability = 0.20f; ga.Start(); var wynik = (ga.BestChromosome as FloatingPointChromosome).ToFloatingPoints(); double?x = (ga.BestChromosome as FloatingPointChromosome).Fitness; DateTime czas = poczatek; grafik = new Models.Grafik(); grafik.Poczatek = poczatek; grafik.Koniec = koniec; db.Grafik.Add(grafik); int j = 0; while (czas < koniec) { Models.Czas cz = new Models.Czas(); foreach (Models.Pracownik pr in pracownicy) { if (wynik[j] == 1) { Models.PracownikNaStanowisku pns = new Models.PracownikNaStanowisku(); pns.Pracownik = pr; pns.Stanowisko = stanowiska[(int)wynik[j + 1] % stanowiska.Count()]; pns.Czas = cz; db.PracownikNaStanowisku.Add(pns); } j += 2; } if (cz.PracownikNaStanowisku.Count() > 0) { cz.Grafik = grafik; cz.Poczatek = czas; cz.Koniec = czas.AddMinutes(przedzial); db.Czas.Add(cz); } czas = czas.AddMinutes(przedzial); } db.SaveChanges(); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, ex.ToString())); } TRWA_GENEROWANIE = false; return(Ok(grafik.Id)); }