public override async Task <RequestResult <TenantSettingsDto> > Handle(
            UpdateTenantSettingsCommand request, CancellationToken cancellationToken)
        {
            var tenant = await _tenantsRepository.GetTenantAsync(request.TenantCode);

            if (tenant == null)
            {
                return(RequestResult <TenantSettingsDto> .Failure(ErrorCode.TenantNotFound,
                                                                  new { request.TenantCode }));
            }

            var saveData = _mapper.Map <SaveTenantSettingsData>(request);

            saveData.TenantId = tenant.Id;
            var tenantSettings = await _tenantSettingsRepository.SaveTenantSettings(saveData);

            if (tenantSettings == null)
            {
                return(RequestResult <TenantSettingsDto> .Failure(ErrorCode.UpdateTenantSettingsFailed));
            }

            if (!await _allowedOriginsRepository.SaveAllowedOriginsAsync(tenant.Id, request.AllowedOrigins))
            {
                return(RequestResult <TenantSettingsDto> .Failure(ErrorCode.UpdateTenantSettingsFailed));
            }

            return(RequestResult <TenantSettingsDto>
                   .Success(_mapper.Map <TenantSettingsDto>(tenantSettings)));
        }
Exemple #2
0
        public override async Task <RequestResult <TenantDto> > Handle(CreateTenantCommand request,
                                                                       CancellationToken cancellationToken)
        {
            if (await _tenantsRepository.TenantCodeExists(request.TenantCode))
            {
                return(RequestResult <TenantDto>
                       .Failure(ErrorCode.TenantAlreadyExistsForCode, new { request.TenantCode }));
            }

            var tenant = await _tenantsRepository
                         .CreateTenant(_mapper.Map <CreateTenantData>(request));

            if (tenant == null)
            {
                return(RequestResult <TenantDto> .Failure(ErrorCode.CreateTenantFailed));
            }

            var saveTenantSettingsData = _mapper.Map <SaveTenantSettingsData>(request);

            saveTenantSettingsData.TenantId = tenant.Id;

            var tenantSettings = await _tenantSettingsRepository
                                 .SaveTenantSettings(saveTenantSettingsData);

            if (tenantSettings == null)
            {
                return(RequestResult <TenantDto> .Failure(ErrorCode.CreateTenantFailed));
            }

            if (!await _tenantAllowedOriginsRepository
                .SaveAllowedOriginsAsync(tenant.Id, new List <string>
            {
                request.AllowedOrigin
            }))
            {
                return(RequestResult <TenantDto> .Failure(ErrorCode.CreateTenantFailed));
            }

            return(RequestResult <TenantDto>
                   .Success(_mapper.Map <TenantDto>(tenant)));
        }