예제 #1
0
        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));
        }
예제 #2
0
        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));
        }