Beispiel #1
0
        public void UpdateUser(CorporationUser user, CorporationUser userWithId)
        {
            if (!CheckUniqueUsername(user.Username, true, userWithId.UserId))
            {
                throw new UniqueValueViolationException("Username should be unique");
            }
            Country country = _countryRepository.GetCountryByCountryId(user.CountryId);

            if (country == null)
            {
                throw new ForeignKeyConstraintViolationException("Foreign key constraint violated");
            }
            user.RoleId  = userWithId.RoleId;
            user.Email   = userWithId.Email;
            user.Role    = _roleRepository.GetRoleByRoleId(userWithId.RoleId);
            user.Country = country;
            user.UserId  = userWithId.UserId;
            _mapper.Map(user, userWithId);
            _corporationUserRepository.SaveChanges();

            //Updajteovanje identity tabele
            AccountInfo corpUser = _userManager.FindByIdAsync(userWithId.UserId.ToString()).Result;
            string      username = string.Join("", user.Username.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));

            corpUser.UserName = username;
            _userManager.UpdateAsync(corpUser).Wait();
        }
Beispiel #2
0
        public CorporationUserCreatingConfirmation CreateUser(CorporationUser user, string password)
        {
            if (!CheckUniqueUsername(user.Username, false, null))
            {
                throw new UniqueValueViolationException("Username should be unique");
            }
            if (!CkeckUniqueEmail(user.Email))
            {
                throw new UniqueValueViolationException("Email should be unique");
            }
            if (!CheckCountry(user.CountryId))
            {
                throw new ForeignKeyConstraintViolationException("Foreign key constraint violated");
            }
            CorporationUserCreatingConfirmation userCreated = _corporationUserRepository.CreateUser(user);

            _corporationUserRepository.SaveChanges();


            //Dodavanje u IdentityUserDbContext
            string         username = string.Join("", user.Username.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));
            var            acc      = new AccountInfo(username, user.Email, userCreated.UserId);
            IdentityResult result   = _userManager.CreateAsync(acc, password).Result;

            if (result.Succeeded)
            {
                _userManager.AddToRoleAsync(acc, "Regular user").Wait();
            }
            else
            {
                _corporationUserRepository.DeleteUser(userCreated.UserId);
            }
            return(userCreated);
        }
        public CorporationUserCreatingConfirmation CreateUser(CorporationUser user)
        {
            var userRole = roleRepository.GetRoles("Regular user")[0];

            user.Role = userRole;
            context.Role.Attach(userRole);
            var createdUser = context.Add(user);

            return(mapper.Map <CorporationUserCreatingConfirmation>(createdUser.Entity));
        }
Beispiel #4
0
        public ActionResult <CorporationUserDto> UpdateUser([FromBody] CorporationUserUpdateDto corporationUser, Guid userId)
        {
            try
            {
                var userWithId = _corporationUsersService.GetUserByUserId(userId);
                if (userWithId == null)
                {
                    return(NotFound());
                }
                CorporationUser CorporationUser = _mapper.Map <CorporationUser>(corporationUser);
                _corporationUsersService.UpdateUser(CorporationUser, userWithId);

                return(Ok(_mapper.Map <CorporationUserDto>(userWithId)));
            }
            catch (Exception ex)
            {
                if (ex.GetType().IsAssignableFrom(typeof(ForeignKeyConstraintViolationException)))
                {
                    return(StatusCode(StatusCodes.Status409Conflict, ex.Message));
                }
                if (ex.GetType().IsAssignableFrom(typeof(UniqueValueViolationException)))
                {
                    return(StatusCode(StatusCodes.Status422UnprocessableEntity, ex.Message));
                }
                if (ex.GetBaseException().GetType() == typeof(SqlException))
                {
                    Int32 ErrorCode = ((SqlException)ex.InnerException).Number;
                    switch (ErrorCode)
                    {
                    case 2627:
                        break;

                    case 547:
                        return(StatusCode(StatusCodes.Status422UnprocessableEntity));

                    case 2601:
                        return(StatusCode(StatusCodes.Status409Conflict));

                    default:
                        return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
                    }
                }
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }
Beispiel #5
0
        public ActionResult <CorporationUserCreatingConfirmationDto> CreateUser([FromBody] CorporationUserCreatingDto corporationUser)
        {
            try
            {
                CorporationUser userEntity = _mapper.Map <CorporationUser>(corporationUser);
                CorporationUserCreatingConfirmation userCreated = _corporationUsersService.CreateUser(userEntity, corporationUser.Password);


                string location = _linkGenerator.GetPathByAction("GetUserById", "CorporationUser", new { userId = userCreated.UserId });
                return(Created(location, _mapper.Map <CorporationUserCreatingConfirmationDto>(userCreated)));
            }
            catch (Exception ex)
            {
                if (ex.GetType().IsAssignableFrom(typeof(ForeignKeyConstraintViolationException)))
                {
                    return(StatusCode(StatusCodes.Status409Conflict, ex.Message));
                }
                if (ex.GetType().IsAssignableFrom(typeof(UniqueValueViolationException)))
                {
                    return(StatusCode(StatusCodes.Status422UnprocessableEntity, ex.Message));
                }
                if (ex.GetBaseException().GetType() == typeof(SqlException))
                {
                    Int32 ErrorCode = ((SqlException)ex.InnerException).Number;
                    switch (ErrorCode)
                    {
                    case 2627:
                        break;

                    case 547:
                        return(StatusCode(StatusCodes.Status422UnprocessableEntity, ex.Message));

                    case 2601:
                        return(StatusCode(StatusCodes.Status409Conflict, ex.Message));

                    default:
                        return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
                    }
                }
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }
 public void UpdateUser(CorporationUser user)
 {
     throw new NotImplementedException();
 }