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); }
public static IntegrationCreateRequest GetIntegrationCreateRequest() { var request = new IntegrationCreateRequest(CurrentUserId, OrganizationOneUid, StringOne, StringOne); return(request); }
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); }
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}")); }