public void AddAndSetUserAccountStatus(string emailAddress, string displayName, int organisationId, string jobRole, string reason)
        {
            var userCreateAccount = new DTO.Request.Application.UserCreateAccount
            {
                EmailAddress   = emailAddress,
                DisplayName    = displayName,
                OrganisationId = organisationId,
                JobRole        = jobRole,
                Reason         = reason
            };

            _applicationService.AddOrUpdateUser(userCreateAccount);
            var user = _applicationService.GetUser(emailAddress);

            _applicationService.SetUserStatus(user.UserId, (int)UserAccountStatus.RequestDenied);
            user = _applicationService.GetUser(emailAddress);
            Assert.True(user.UserAccountStatusId == (int)UserAccountStatus.RequestDenied);

            _applicationService.SetUserStatus(user.UserId, (int)UserAccountStatus.Deauthorised);
            user = _applicationService.GetUser(emailAddress);
            Assert.True(user.UserAccountStatusId == (int)UserAccountStatus.Deauthorised);

            _applicationService.SetUserStatus(user.UserId, (int)UserAccountStatus.Authorised);
            user = _applicationService.GetUser(emailAddress);
            Assert.True(user.UserAccountStatusId == (int)UserAccountStatus.Authorised);
        }
        public User AddOrUpdateUser(DTO.Request.Application.UserCreateAccount userCreateAccount)
        {
            var functionName = "application.add_or_update_user";
            var parameters   = new DynamicParameters();

            parameters.Add("_email_address", userCreateAccount.EmailAddress);
            parameters.Add("_display_name", userCreateAccount.DisplayName);
            parameters.Add("_organisation_id", userCreateAccount.OrganisationId);
            parameters.Add("_user_account_status_id", (int)userCreateAccount.UserAccountStatus);
            var user = _dataService.ExecuteFunction <User>(functionName, parameters).FirstOrDefault();

            return(user);
        }
        public bool SendUserCreateAccountEmail(User createdUser, DTO.Request.Application.UserCreateAccount userCreateAccount)
        {
            var template = _emailTemplates.Value.FirstOrDefault(x => x.MailTemplate == MailTemplate.UserCreateAccountEmail);

            if (template != null)
            {
                template.Body = template.Body.Replace("<email_address>", userCreateAccount.EmailAddress);
                template.Body = template.Body.Replace("<job_role>", userCreateAccount.JobRole);
                template.Body = template.Body.Replace("<organisation_name>", userCreateAccount.OrganisationName);
                template.Body = template.Body.Replace("<access_reason>", userCreateAccount.Reason);
                return(SendEmail(createdUser.UserId, userCreateAccount.EmailAddress, template, true, false));
            }
            return(false);
        }
        public void AddAndSetUserMultiSearch(string emailAddress, string displayName, int organisationId, string jobRole, string reason)
        {
            var userCreateAccount = new DTO.Request.Application.UserCreateAccount
            {
                EmailAddress   = emailAddress,
                DisplayName    = displayName,
                OrganisationId = organisationId,
                JobRole        = jobRole,
                Reason         = reason
            };

            _applicationService.AddOrUpdateUser(userCreateAccount);
            var user = _applicationService.GetUser(emailAddress);

            _applicationService.SetMultiSearch(user.UserId, true);
            user = _applicationService.GetUser(emailAddress);
            Assert.True(user.MultiSearchEnabled);

            _applicationService.SetMultiSearch(user.UserId, false);
            user = _applicationService.GetUser(emailAddress);
            Assert.False(user.MultiSearchEnabled);
        }