예제 #1
0
 public static User FromDto(UserCreationDto dto)
 {
     var user = FromDto(dto as UserDto);
     user.Password = dto.Password;
     user.EnergyPassword = dto.EnergyPassword;
     return user;
 }
예제 #2
0
        public HttpResponseMessage PostUser(UserCreationDto userDto)
        {
            if (ModelState.IsValid)
            {
                // Check if user name is taken - return 409 CONFLICT if it is
                if (this.RepositoryContext.UserRepository.GetAll().Any(u => u.Email == userDto.Email))
                    return Request.CreateResponse(HttpStatusCode.Conflict);

                var user = Models.User.FromDto(userDto);

                user.CreationDate = DateTime.Now;

                user.Salt = Crypto.GenerateSalt(32);
                user.Password = Crypto.HashPassword(userDto.Password + user.Salt);

                this.RepositoryContext.UserRepository.Add(user);

                this.RepositoryContext.Save();

                return Request.CreateResponse(HttpStatusCode.Created, UserDto.Create(user));
            }

            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }