예제 #1
0
        public async Task <IntegrationCreateResponse> CreateIntegration(IntegrationCreateRequest request)
        {
            var response = new IntegrationCreateResponse();

            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);
            }

            if (await _integrationRepository.Any(x => x.Name == request.Name && x.OrganizationId == currentUser.OrganizationId))
            {
                response.SetFailedBecauseNameMustBeUnique("integration");
                return(response);
            }

            var entity = _integrationFactory.CreateEntityFromRequest(request, currentUser.Organization);
            await _integrationRepository.Insert(request.CurrentUserId, entity);

            response.Item   = _integrationFactory.CreateDtoFromEntity(entity);
            response.Status = ResponseStatus.Success;
            return(response);
        }
예제 #2
0
        public static IntegrationCreateRequest GetIntegrationCreateRequest()
        {
            var request = new IntegrationCreateRequest(CurrentUserId, OrganizationOneUid, StringOne,
                                                       StringOne);

            return(request);
        }
예제 #3
0
        public Integration CreateEntityFromRequest(IntegrationCreateRequest request, Organization organizationEntity)
        {
            var entity = new Integration();

            entity.OrganizationId   = organizationEntity.Id;
            entity.OrganizationUid  = organizationEntity.Uid;
            entity.OrganizationName = organizationEntity.Name;
            entity.Name             = request.Name;
            entity.Description      = request.Description;
            entity.IsActive         = true;

            return(entity);
        }
예제 #4
0
        public async Task <IActionResult> Create(IntegrationCreateModel model)
        {
            if (model.IsNotValid())
            {
                model.SetInputModelValues();
                return(View(model));
            }

            var request  = new IntegrationCreateRequest(CurrentUser.Id, model.OrganizationUid, model.Name, model.Description);
            var response = await _integrationService.CreateIntegration(request);

            if (response.Status.IsNotSuccess)
            {
                model.MapMessages(response);
                model.SetInputModelValues();
                return(View(model));
            }

            CurrentUser.IsActionSucceed = true;
            return(Redirect($"/Integration/Detail/{response.Item.Uid}"));
        }