public async Task <FacebookAdto> ChangeAsync(ChangeFacebookAdto changeFacebookAdto)
        {
            using (ITransaction transaction = _transactionManager.Create())
            {
                try
                {
                    if (!(await _commandRepository.GetWithConcurrencyCheckAsync(changeFacebookAdto.Id, changeFacebookAdto.Version) is AuthenticationGrantTypeFacebook
                          authenticationGrantTypeFacebook))
                    {
                        throw new BusinessApplicationException(ExceptionType.NotFound, "Authentication service not found");
                    }

                    await _changeAuthenticationGrantTypeFacebookCommand.ExecuteAsync(authenticationGrantTypeFacebook,
                                                                                     _mapper.Map <ChangeFacebookAdto, ChangeAuthenticationGrantTypeFacebookDdto>(changeFacebookAdto));

                    await _commandRepository.UpdateAsync(authenticationGrantTypeFacebook);

                    transaction.Commit();

                    return(CreateFacebookAdto(authenticationGrantTypeFacebook));
                }
                catch (DomainValidationRuleException e)
                {
                    throw new BusinessValidationRuleApplicationException(e.ValidationResult);
                }
                catch (ConcurrencyDomainException e)
                {
                    throw new BusinessApplicationException(ExceptionType.Concurrency, e);
                }
                catch (NotFoundDomainException e)
                {
                    throw new BusinessApplicationException(ExceptionType.NotFound, e);
                }
            }
        }
        public async Task <IActionResult> Put(
            Guid id,
            FacebookAuthenticationServiceResource resource)
        {
            ChangeFacebookAdto changeFacebookAdto = new ChangeFacebookAdto
            {
                Id                        = id,
                Name                      = resource.Name,
                ClientId                  = resource.ClientId,
                ClientSecret              = resource.ClientSecret,
                GrantAccessTokenUrl       = resource.GrantAccessTokenUrl,
                ValidateAccessTokenUrl    = resource.ValidateAccessTokenUrl,
                ClientGrantAccessTokenUrl = resource.ClientGrantAccessTokenUrl,
                AppAccessToken            = resource.AppAccessToken,
                Version                   = resource.Version
            };

            FacebookAdto facebookAdto = await
                                        _facebookAuthenticationServiceApplicationService.ChangeAsync(changeFacebookAdto);

            return(Ok(_resourceBuilder.Build(_mapper.Map <FacebookAdto, FacebookAuthenticationServiceResource>(facebookAdto))));
        }
Пример #3
0
 public Task <FacebookAdto> ChangeAsync(ChangeFacebookAdto changeFacebookAdto)
 {
     return(_securityApplicationService.SecureAsync(() => _facebookAuthenticationServiceApplicationService.ChangeAsync(changeFacebookAdto),
                                                    DefaultAuthorisationContext.Create(AuthorisationResource.AuthenticationService, AuthorisationAction.Update)));
 }