public OperationResult Register(RegisterUser command) { var result = new OperationResult("Users", "Register"); try { if (_userManagementRepository.IsDuplicated(x => x.Username == command.Username)) { return(result.Failed(ApplicationMessages.UserAlreadyRegistered)); } if (_userManagementRepository.IsDuplicated(x => x.NationalCode == command.NationalCode)) { return(result.Failed(ApplicationMessages.NationalCodeAlreadyRegistered)); } var hashedPassword = _passwordHasher.Hash(command.Password); var user = new User(Guid.NewGuid(), command.OrganizationId, command.NationalCode, command.Fullname, command.Username, hashedPassword, command.PhoneNumber, command.MobileNumber, command.RoleId); _userManagementRepository.BeginTran(); _userManagementRepository.Create(user); _userManagementRepository.CommitTran(); return(result.Succeeded(ApplicationMessages.Success)); } catch (Exception exception) { Console.WriteLine(exception); _userManagementRepository.RoleBack(); return(result.Failed(ApplicationMessages.SystemFailure)); } }