private async Task <ActivityDTO> ConfigureFollowUp(bool setFileName = false, string fileUri = null, ActivityDTO existingActivity = null)
        {
            if (string.IsNullOrEmpty(fileUri))
            {
                fileUri = HealthMonitor_FixtureData.GetFilePath();
            }

            var configureUrl = GetTerminalConfigureUrl();
            var dataDTO      = HealthMonitor_FixtureData.Load_Excel_File_v1_InitialConfiguration_Fr8DataDTO(Guid.NewGuid());

            if (existingActivity == null)
            {
                existingActivity = await HttpPostAsync <Fr8DataDTO, ActivityDTO>(configureUrl, dataDTO);
            }

            if (setFileName)
            {
                using (var storage = _crateManager.GetUpdatableStorage(existingActivity))
                {
                    var activityUi    = new Load_Excel_File_v1.ActivityUi();
                    var controlsCrate = _crateManager.GetStorage(existingActivity).FirstCrate <StandardConfigurationControlsCM>();
                    activityUi.SyncWith(controlsCrate.Content);
                    activityUi.FilePicker.Value = fileUri;
                    storage.ReplaceByLabel(Fr8.Infrastructure.Data.Crates.Crate.FromContent(controlsCrate.Label, new StandardConfigurationControlsCM(activityUi.Controls.ToArray())));
                }
            }
            dataDTO.ActivityDTO = existingActivity;
            return(await HttpPostAsync <Fr8DataDTO, ActivityDTO>(configureUrl, dataDTO));
        }
Exemplo n.º 2
0
 public void RemoveAuthenticationCrate(ActivityDTO activityDTO)
 {
     using (var crateStorage = _crate.GetUpdatableStorage(activityDTO))
     {
         crateStorage.RemoveByManifestId((int)Fr8.Infrastructure.Data.Constants.MT.StandardAuthentication);
     }
 }
        public void ActivateCrateStorage(ActivityDTO curActivityDTO, Crate curCrate)
        {
            var configurationControlsCrate = curCrate;
            var crateDesignTimeFields      = PackCrate_GoogleForms();

            using (var crateStorage = CrateManager.GetUpdatableStorage(curActivityDTO))
            {
                crateStorage.Add(configurationControlsCrate);
                crateStorage.Add(crateDesignTimeFields);
                crateStorage.Add("Standard Event Subscriptions", new EventSubscriptionCM("Google", "Google Form Response"));
            }
        }
        public ActivityDTO Send_Via_Twilio_v1_Preconfigured_Crate_With_No_SMS_Number()
        {
            var dataDTO = Send_Via_Twilio_v1_InitialConfiguration_Fr8DataDTO();

            using (var crateStorage = CrateManager.GetUpdatableStorage(dataDTO.ActivityDTO))
            {
                var curCrate = No_SMS_Number_Controls();
                crateStorage.Add(curCrate);
            }
            return(dataDTO.ActivityDTO);
        }
Exemplo n.º 5
0
        public async Task ActivityDoesntChangeStateOnValidationErrors()
        {
            var container = ObjectFactory.Container;

            var callCount = new Dictionary <string, int>();

            callCount["activate"] = 0;

            var activityDo = ActivationTestsSetup(container, callCount);
            var terminalTransmitterMock = new TerminalTransmitterMock();

            terminalTransmitterMock.CallActivityBody = (action, parameters, dto) =>
            {
                if (action == "activate")
                {
                    using (var updatableStorage = _crate.GetUpdatableStorage(dto.ActivityDTO))
                    {
                        updatableStorage.Add(Crate.FromContent("Validation Errors", new ValidationResultsCM
                        {
                            ValidationErrors =
                            {
                                new ValidationResultDTO
                                {
                                    ErrorMessage = "Generic error"
                                }
                            }
                        }));
                    }
                }

                return(dto.ActivityDTO);
            };

            container.Inject(typeof(ITerminalTransmitter), terminalTransmitterMock);

            await container.GetInstance <IActivity>().Activate(activityDo);

            using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
            {
                Assert.AreEqual(ActivationState.Deactivated, uow.PlanRepository.GetById <ActivityDO>(activityDo.Id).ActivationState, "Activity with validation errors should stay deactivated");
            }
        }
        public void UpdateStorageDtoRewrite_Works()
        {
            var activityDto = new ActivityDTO();

            activityDto.CrateStorage = GetKnownManifestsStorageDto();

            var newCrateStorageDto = GetKnownManifestsStorageDto("newValue");
            var newCrateStorage    = _crateManager.FromDto(newCrateStorageDto);

            using (var crateStorage = _crateManager.GetUpdatableStorage(activityDto))
            {
                crateStorage.Clear();

                foreach (var crates in newCrateStorage)
                {
                    crateStorage.Add(crates);
                }
            }

            CheckStorageDTOs(newCrateStorageDto, activityDto.CrateStorage);
        }
Exemplo n.º 7
0
        private async Task <ContainerExecutionContext> CreateContainerExecutionContext(Fr8DataDTO curDataDTO)
        {
            //this is just to keep integrations tests running
            //integration tests don't provide a containerid
            //we should modify integration tests
            //disabled for integration tests
            var containerId = curDataDTO.ContainerId ?? Guid.NewGuid();

            /*
             * if (curDataDTO.ContainerId == null)
             * {
             *  throw new ArgumentNullException(nameof(curDataDTO.ContainerId), "Container Id is missing");
             * }
             */

            var payload = await _hubCommunicator.GetPayload(containerId);

            return(new ContainerExecutionContext
            {
                PayloadStorage = CrateManager.GetUpdatableStorage(payload),
                ContainerId = containerId
            });
        }
        private async Task ConfigureSaveJiraActivity(IUnitOfWork uow, Fr8AccountDO systemUser, ActivityTemplateDO[] activityTemplates, Guid planId)
        {
            var saveJiraTemplate = activityTemplates.FirstOrDefault(x => x.Name == "Save_Jira_Issue" && x.Version == "1" && x.Terminal.Name == "terminalAtlassian");

            if (saveJiraTemplate == null)
            {
                throw new ApplicationException("Save Jira Issue v1 activity template was not found in Atlassian terminal");
            }
            var saveJiraActivity = await _activity.CreateAndConfigure(uow, systemUser.Id, saveJiraTemplate.Id, saveJiraTemplate.Label, saveJiraTemplate.Label, 3, planId).ConfigureAwait(false) as ActivityDO;

            using (var storage = _crateManager.GetUpdatableStorage(saveJiraActivity))
            {
                var controls = storage.CrateContentsOfType <StandardConfigurationControlsCM>().SingleOrDefault();
                if (controls == null)
                {
                    throw new ApplicationException("Save Jira Issue doesn't contain controls crate");
                }
                var projectSelector = controls.FindByName <DropDownList>("AvailableProjects");
                if (projectSelector == null)
                {
                    throw new ApplicationException("Save Jira Issue doesn't contain project selector");
                }
                projectSelector.SelectByKey("fr8test");
            }
            saveJiraActivity = Mapper.Map <ActivityDO>(await _activity.Configure(uow, systemUser.Id, saveJiraActivity).ConfigureAwait(false));
            using (var storage = _crateManager.GetUpdatableStorage(saveJiraActivity))
            {
                var controls          = storage.CrateContentsOfType <StandardConfigurationControlsCM>().SingleOrDefault();
                var issueTypeSelector = controls.FindByName <DropDownList>("AvailableIssueTypes");
                if (issueTypeSelector == null)
                {
                    throw new ApplicationException("Save Jira Issue doesn't contain issue type selector");
                }
                issueTypeSelector.SelectByKey("Task");
            }
            saveJiraActivity = Mapper.Map <ActivityDO>(await _activity.Configure(uow, systemUser.Id, saveJiraActivity).ConfigureAwait(false));
            using (var storage = _crateManager.GetUpdatableStorage(saveJiraActivity))
            {
                var controls         = storage.CrateContentsOfType <StandardConfigurationControlsCM>().SingleOrDefault();
                var prioritySelector = controls.FindByName <DropDownList>("AvailablePriorities");
                if (prioritySelector == null)
                {
                    throw new ApplicationException("Save Jira Issue doesn't contain priority selector");
                }
                prioritySelector.SelectByKey("Normal");
                var assigneeSelector = controls.FindByName <DropDownList>("Asignee");
                if (assigneeSelector == null)
                {
                    throw new ApplicationException("Save Jira Issue doesn't contain asignee selector");
                }
                assigneeSelector.SelectByValue("admin");
                var summary = controls.FindByName <TextSource>("SummaryTextSource");
                if (summary == null)
                {
                    throw new ApplicationException("Save Jira Issue doesn't contain summary field");
                }
                summary.ValueSource = TextSource.SpecificValueSource;
                summary.TextValue   = "New Manifest Submission";
                var description = controls.FindByName <TextSource>("DescriptionTextSource");
                if (description == null)
                {
                    throw new ApplicationException("Save Jira Issue doesn't contain description field");
                }
                description.ValueSource  = TextSource.UpstreamValueSrouce;
                description.SelectedItem = new FieldDTO(MessageName);
                description.selectedKey  = MessageName;
            }
            await _activity.Configure(uow, systemUser.Id, saveJiraActivity).ConfigureAwait(false);
        }