コード例 #1
0
        public async Task <Guid> CreateAsync(UserAccountForCreateModel userAccountForCreateModel)
        {
            _logger.Information($"Creating user account with login '{userAccountForCreateModel.Login}'...");

            if (userAccountForCreateModel.Login.Contains(':') ||
                userAccountForCreateModel.Password.Contains(':'))
            {
                throw new UserAccountException("User account login and password must not contain following characters: ':'");
            }

            var currentDateTime = DateTime.UtcNow;

            var userAccount = new UserAccountDataModel
            {
                Login               = userAccountForCreateModel.Login,
                PasswordHash        = userAccountForCreateModel.Password.GetSHA256().ToBase64(),
                Guid                = Guid.NewGuid(),
                Status              = UserAccountStatusEnum.Active,
                DateOfCreationUtc   = currentDateTime,
                DateOfLastChangeUtc = currentDateTime
            };

            var wasRecordSaved = await _repository.SaveAsync(userAccount);

            if (!wasRecordSaved)
            {
                throw new DataModelOperationException($"Error while creating user account");
            }

            _logger.Information($"User account was successfully created ({userAccount.ToJson()})");

            return(userAccount.Guid);
        }
コード例 #2
0
ファイル: UserAccount.cs プロジェクト: 7acc/MVC
 public UserAccount(UserAccountDataModel dataModel)
 {
     Albums   = new List <Album>();
     UserID   = dataModel.UserId;
     Name     = dataModel.Name;
     Email    = dataModel.Email;
     Password = dataModel.Password;
     Admin    = dataModel.Admin;
     //Albums = dataModel.Albums.Select(a => new Album(a)).ToList();
 }
コード例 #3
0
ファイル: UserAccount.cs プロジェクト: 7acc/MVC
        public UserAccountDataModel Transform()
        {
            var userDataModel = new UserAccountDataModel
            {
                UserId   = this.UserID,
                Name     = this.Name,
                Email    = this.Email,
                Password = this.Password,
                Albums   = this.Albums.Select(a => a.Transform()).ToList(),
                Admin    = this.Admin
            };

            return(userDataModel);
        }
コード例 #4
0
ファイル: AccountController.cs プロジェクト: 7acc/MVC
        public ActionResult Register(UserAccount account)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "You Did Something Wrong");
                return(View(account));
            }

            account.UserID = Guid.NewGuid();
            UserAccountDataModel accountData = account.Transform();

            userRepository.Add(accountData);

            return(RedirectToAction("Login"));
        }
コード例 #5
0
 public void Add(UserAccountDataModel user)
 {
     using (var ctx = new TheContext())
     {
         var existingUser = ctx.UsersAccounts.FirstOrDefault(x => x.UserId == user.UserId);
         if (existingUser == null)
         {
             ctx.UsersAccounts.Add(user);
             ctx.SaveChanges();
         }
         else
         {
             existingUser.Update(user);
             ctx.Entry(existingUser).State = EntityState.Modified;
             ctx.SaveChanges();
         }
     }
 }
コード例 #6
0
 private static void ConvertDateTimeValuesToUtc(UserAccountDataModel userAccount)
 {
     userAccount.DateOfCreationUtc   = DateTime.SpecifyKind(userAccount.DateOfCreationUtc, DateTimeKind.Utc);
     userAccount.DateOfLastChangeUtc = DateTime.SpecifyKind(userAccount.DateOfLastChangeUtc, DateTimeKind.Utc);
 }
コード例 #7
0
ファイル: GetUserTest.cs プロジェクト: wbz-hot/BitClub7
 async Task WhenHandlerHandlesTheCommand()
 {
     _result = await _sut.Handle(_request);
 }