Esempio n. 1
0
        public async Task <IntegrationChangeActivationResponse> ChangeActivationForIntegration(IntegrationChangeActivationRequest request)
        {
            var response = new IntegrationChangeActivationResponse();

            var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId);

            if (!currentUser.IsAdmin)
            {
                response.SetInvalid();
                return(response);
            }

            if (await _organizationRepository.Any(x => x.Id == currentUser.OrganizationId && !x.IsActive))
            {
                response.SetInvalidBecauseNotActive("organization");
                return(response);
            }

            var integration = await _integrationRepository.Select(x => x.Uid == request.IntegrationUid);

            if (integration.IsNotExist())
            {
                response.SetInvalidBecauseNotFound("integration");
                return(response);
            }

            if (integration.OrganizationId != currentUser.OrganizationId)
            {
                response.SetInvalid();
                return(response);
            }

            _integrationFactory.UpdateEntityForChangeActivation(integration);
            var result = await _integrationRepository.Update(request.CurrentUserId, integration);

            if (result)
            {
                response.Item   = _integrationFactory.CreateDtoFromEntity(integration);
                response.Status = ResponseStatus.Success;
                return(response);
            }

            response.SetFailed();
            return(response);
        }
        public static IntegrationChangeActivationRequest GetIntegrationChangeActivationRequest()
        {
            var request = new IntegrationChangeActivationRequest(CurrentUserId, UidOne);

            return(request);
        }