public ActionResult <Ward> Post([FromBody] Ward ward) { using var db = new DutyingContext(); var hospital = db.Hospitals .Include(hospital => hospital.Wards) .FirstOrDefault(hospital => hospital.Id == ward.HospitalId); if (hospital is null) { return(NotFound()); } if (hospital.Wards is null) { hospital.Wards = new List <Ward>(); } hospital.Wards.Add(ward); db.Hospitals.Update(hospital); db.SaveChanges(); return(Created("", ward)); }
public ActionResult <Hospital> Post(string street, string zip, string city, string district, string name) { using var db = new DutyingContext(); var hospital = new Hospital() { Street = street, Zip = zip, City = city, District = district, Name = name, }; try { db.Add(hospital); db.SaveChanges(); } catch (Exception ex) { return(Problem( title: "Database communication error!", statusCode: StatusCodes.Status500InternalServerError, detail: ex.Message)); } return(Created("Hospital created", hospital)); }
public ActionResult <SchedulerEvent> Post([FromBody] SchedulerEvent schedulerEvent) { using var db = new DutyingContext(); var user = db.Users .Include(user => user.SchedulerEvents) .FirstOrDefault(user => user.Id == schedulerEvent.UserId); if (user is null) { NotFound(); } if (user.SchedulerEvents is null) { user.SchedulerEvents = new List <SchedulerEvent>(); } user.SchedulerEvents.Add(schedulerEvent); db.Users.Update(user); db.SaveChanges(); return(Created("", schedulerEvent)); }
public ActionResult Put([FromBody] SchedulerEvent schedulerEvent) { using var db = new DutyingContext(); var user = db.Users .Include(user => user.SchedulerEvents) .FirstOrDefault(user => user.Id == schedulerEvent.UserId); if (user is null) { NotFound(); } user.SchedulerEvents .Where(e => e.Id == schedulerEvent.Id) .Select(e => { e.StartsAt = e.StartsAt != schedulerEvent.StartsAt ? schedulerEvent.StartsAt : e.StartsAt; e.EndsAt = e.EndsAt != schedulerEvent.EndsAt ? schedulerEvent.EndsAt : e.EndsAt; e.Comment = e.Comment != schedulerEvent.Comment ? schedulerEvent.Comment : e.Comment; return(e); }).ToList(); db.Users.Update(user); db.SaveChanges(); return(Ok()); }
public ActionResult <User> Post([FromBody] User user) { using var db = new DutyingContext(); if (db.Users.Any(u => u.Email == user.Email)) { return(Problem(title: "User with given email already exists!", statusCode: StatusCodes.Status409Conflict)); } var ward = db.Wards .Include(ward => ward.Users) .ThenInclude(users => user.UserRoles) .FirstOrDefault(ward => ward.Id == user.WardId); if (ward.Users is null) { ward.Users = new List <User>(); } var salt = GenerateSalt(); var hashedPassword = HashPasswordPbkdf2(user.Password, salt); user.Password = hashedPassword; user.Salt = Convert.ToBase64String(salt); user.CreatedAt = DateTime.Now; try { var role = db.Roles .Where(role => role.Symbol == (int)RoleEnum.Doctor) .First(); user.UserRoles = new List <UserRole>() { new UserRole() { Role = role } }; ward.Users.Add(user); db.Wards.Update(ward); db.SaveChanges(); } catch (Exception ex) { return(Problem( title: "Database communication error!", statusCode: StatusCodes.Status500InternalServerError, detail: ex.Message)); } return(Created("User created", user)); }
public ActionResult <User> Put([FromBody] User user) { using var db = new DutyingContext(); if (!db.Users.Any(u => u.Id == user.Id)) { return(NotFound()); } var dbUser = db.Users .Include(user => user.UserRoles) .ThenInclude(uRoles => uRoles.Role) .FirstOrDefault(u => u.Id == user.Id); if (dbUser.FirstName != user.FirstName) { dbUser.FirstName = user.FirstName; } if (dbUser.LastName != user.LastName) { dbUser.LastName = user.LastName; } if (dbUser.Email != user.Email) { dbUser.Email = user.Email; } if (dbUser.WardId != user.WardId) { dbUser.WardId = user.WardId; } dbUser.UserRoles.RemoveAll(dbUr => !user.UserRoles.Any(ur => dbUr.RoleId == ur.RoleId)); user.UserRoles.RemoveAll(ur => dbUser.UserRoles.Any(dbUr => dbUr.RoleId == ur.RoleId)); if (user.UserRoles.Count > 0) { dbUser.UserRoles.AddRange(user.UserRoles); } if (!string.IsNullOrEmpty(user.Password) && dbUser.Password != RegisterController.HashPasswordPbkdf2(user.Password, Convert.FromBase64String(dbUser.Salt))) { var salt = RegisterController.GenerateSalt(); var hashedPassword = RegisterController.HashPasswordPbkdf2(user.Password, salt); dbUser.Password = hashedPassword; dbUser.Salt = Convert.ToBase64String(salt); } db.Users.Update(dbUser); db.SaveChanges(); return(Ok(dbUser)); }
public ActionResult Delete([FromRoute] int userId) { using var db = new DutyingContext(); var user = db.Users .FirstOrDefault(user => user.Id == userId); if (user is null) { return(NotFound()); } db.Users.Remove(user); db.SaveChanges(); return(Ok()); }
public ActionResult Delete([FromRoute] int wardId) { using var db = new DutyingContext(); var ward = db.Wards .FirstOrDefault(ward => ward.Id == wardId); if (ward is null) { return(NotFound()); } db.Wards.Remove(ward); db.SaveChanges(); return(Ok()); }
public ActionResult Delete([FromRoute] int hospitalId) { using var db = new DutyingContext(); var hospital = db.Hospitals .FirstOrDefault(hospital => hospital.Id == hospitalId); if (hospital is null) { return(NotFound()); } db.Hospitals.Remove(hospital); db.SaveChanges(); return(Ok()); }
public ActionResult Delete([FromRoute] int eventId) { using var db = new DutyingContext(); var _event = db.SchedulerEvents .FirstOrDefault(e => e.Id == eventId); if (_event is null) { return(NotFound()); } db.SchedulerEvents.Remove(_event); db.SaveChanges(); return(Ok()); }
public ActionResult <Hospital> Put([FromBody] Hospital hospital) { using var db = new DutyingContext(); if (!db.Hospitals.Any(h => h.Id == hospital.Id)) { return(NotFound()); } var dbHospital = db.Hospitals .FirstOrDefault(h => h.Id == hospital.Id); if (dbHospital.Street != hospital.Street) { dbHospital.Street = hospital.Street; } if (dbHospital.Zip != hospital.Zip) { dbHospital.Zip = hospital.Zip; } if (dbHospital.City != hospital.City) { dbHospital.City = hospital.City; } if (dbHospital.District != hospital.District) { dbHospital.District = hospital.District; } if (dbHospital.Name != hospital.Name) { dbHospital.Name = hospital.Name; } db.Hospitals.Update(dbHospital); db.SaveChanges(); return(Ok(dbHospital)); }