public IHttpActionResult Create(FacultyViewModel faculty) { if (!User.IsInRole(RoleNames.Admin)) { return(BadRequest("error")); } if (Framework.FacultyManager.FacultyIsAlreadyExist(faculty.Name)) { return(BadRequest("faculty")); } var newFacultyViewModel = new FacultyViewModel(); newFacultyViewModel.Name = faculty.Name; Faculty newFaculty = AutoMapper.Mapper.Map <Faculty>(newFacultyViewModel); if (faculty.Users[0].Email == faculty.Users[1].Email) { return(BadRequest()); } foreach (UserViewModel item in faculty.Users) { if (Framework.userManager.GetByEmail(item.Email) != null) { return(BadRequest()); } } Framework.FacultyManager.Create(newFaculty); foreach (UserViewModel uv in faculty.Users) { UserViewModel userViewModel = new UserViewModel(); userViewModel.Email = uv.Email; userViewModel.FacultyId = newFaculty.Id; userViewModel.PasswordSalt = HashDecoder.GenarateSalt(); userViewModel.Password = HashDecoder.ComputeHash(uv.Password, userViewModel.PasswordSalt); userViewModel.Roles_id = uv.Roles_id; userViewModel.Roles = Framework.RoleManager.GetById(uv.Roles_id); User user = AutoMapper.Mapper.Map <User>(userViewModel); Framework.userManager.Create(user); } return(Ok(newFaculty)); }
public IHttpActionResult Update(FacultyViewModel faculty) { if (!User.IsInRole(RoleNames.Admin)) { return(BadRequest("error")); } if (faculty.Users[0].Email == faculty.Users[1].Email) { return(BadRequest()); } Faculty updatedFaculty = Framework.FacultyManager.GetById(faculty.Id); if (Framework.FacultyManager.FacultyIsAlreadyExist(faculty.Name) && updatedFaculty.Name != faculty.Name) { return(BadRequest("faculty")); } updatedFaculty.Name = faculty.Name; foreach (UserViewModel item in faculty.Users) { User temporaryUpdatedUser = Framework.userManager.GetById(item.Id); if (Framework.userManager.GetByEmail(item.Email) != null && temporaryUpdatedUser.Email != item.Email) { return(BadRequest()); } } Framework.FacultyManager.Update(updatedFaculty); foreach (UserViewModel uv in faculty.Users) { User updatedUser = Framework.userManager.GetById(uv.Id); updatedUser.Email = uv.Email; if (updatedUser.Password != uv.Password) { updatedUser.PasswordSalt = HashDecoder.GenarateSalt(); updatedUser.Password = HashDecoder.ComputeHash(uv.Password, updatedUser.PasswordSalt); } Framework.userManager.Update(updatedUser); } updatedFaculty = Framework.FacultyManager.GetById(faculty.Id);//something weired var model = Mapper.Map <FacultyViewModel>(updatedFaculty); return(Ok(model)); }