Exemple #1
0
        private void SetDDL(ActivityPayload payload, string name, string key)
        {
            var crates = payload.CrateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().First();
            var ddl    = (DropDownList)crates.FindByName(name);

            ddl.SelectByKey(key);
        }
        private void SetDDL(ActivityPayload payload, string name, string key)
        {
            var crates = payload.CrateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().First();
            var ddl    = (DropDownList)crates.FindByName(name);

            ddl.SelectByKey(ddl.ListItems.Where(l => l.Key.Contains(key)).FirstOrDefault()?.Key);
        }
        protected async Task <ActivityPayload> AddAndConfigureChildActivity(ActivityPayload parentActivity, ActivityTemplateDTO activityTemplate, string name = null, string label = null, int?order = null)
        {
            var child = await AddAndConfigureChildActivity(parentActivity.Id, activityTemplate, name, label, order);

            parentActivity.ChildrenActivities.Add(child);
            return(child);
        }
Exemple #4
0
        private void SetSelectedTemplate(ActivityPayload docuSignActivity, DropDownList selectedTemplateDd)
        {
            var actionDdlb = ActivityConfigurator.GetControl <DropDownList>(docuSignActivity, "Available_Templates", ControlTypes.DropDownList);

            actionDdlb.selectedKey = selectedTemplateDd.selectedKey;
            actionDdlb.Value       = selectedTemplateDd.Value;
        }
        public static ActivityContext GetFileListActivityDO()
        {
            var terminalDTO = Fixture.Build <TerminalDTO>()
                              .With(x => x.Name)
                              .With(x => x.Version)
                              .OmitAutoProperties()
                              .Create();

            ActivityTemplateSummaryDTO activityTemplateDTO = Fixture.Build <ActivityTemplateSummaryDTO>()
                                                             .With(x => x.Name)
                                                             .With(x => x.Version)
                                                             .With(x => x.TerminalName, terminalDTO.Name)
                                                             .With(x => x.TerminalVersion, terminalDTO.Version)
                                                             .OmitAutoProperties()
                                                             .Create();
            ActivityPayload activityPayload = Fixture.Build <ActivityPayload>()
                                              .With(x => x.Id)
                                              .With(x => x.ActivityTemplate, activityTemplateDTO)
                                              .With(x => x.CrateStorage, new CrateStorage())
                                              .OmitAutoProperties()
                                              .Create();
            ActivityContext activityContext = Fixture.Build <ActivityContext>()
                                              .With(x => x.ActivityPayload, activityPayload)
                                              .With(x => x.AuthorizationToken, DropboxAuthorizationToken())
                                              .OmitAutoProperties()
                                              .Create();

            return(activityContext);
        }
Exemple #6
0
        private void SetFromConversion(ActivityPayload convertCratesActivity)
        {
            var fromDropdown = ActivityConfigurator.GetControl <DropDownList>(convertCratesActivity, "Available_From_Manifests", ControlTypes.DropDownList);

            fromDropdown.Value       = ((int)MT.DocuSignTemplate).ToString(CultureInfo.InvariantCulture);
            fromDropdown.selectedKey = MT.DocuSignTemplate.GetEnumDisplayName();
        }
Exemple #7
0
        private void SetToConversion(ActivityPayload convertCratesActivity)
        {
            var toDropdown = ActivityConfigurator.GetControl <DropDownList>(convertCratesActivity, "Available_To_Manifests", ControlTypes.DropDownList);

            toDropdown.Value       = ((int)MT.StandardFileHandle).ToString(CultureInfo.InvariantCulture);
            toDropdown.selectedKey = MT.StandardFileHandle.GetEnumDisplayName();
        }
        private void SetNotifierActivityBody(ActivityPayload notifierActivity)
        {
            var activityConfigurator = new ActivityConfigurator(notifierActivity);

            if (notifierActivity.ActivityTemplate.Name == "Send_Email_Via_SendGrid")
            {
                var emailBodyField = activityConfigurator.GetControl <TextSource>("EmailBody", ControlTypes.TextSource);
                emailBodyField.ValueSource = "upstream";
                emailBodyField.Value       = "NotificationMessage";
                emailBodyField.selectedKey = "NotificationMessage";
                var emailSubjectField = activityConfigurator.GetControl <TextSource>("EmailSubject", ControlTypes.TextSource);
                emailSubjectField.ValueSource = "specific";
                emailSubjectField.TextValue   = "Fr8 Notification Message";
            }
            else if (notifierActivity.ActivityTemplate.Name == "Send_Via_Twilio")
            {
                var emailBodyField = activityConfigurator.GetControl <TextSource>("SMS_Body", ControlTypes.TextSource);
                emailBodyField.ValueSource = "upstream";
                emailBodyField.Value       = "NotificationMessage";
                emailBodyField.selectedKey = "NotificationMessage";
            }
            else if (notifierActivity.ActivityTemplate.Name == "Publish_To_Slack")
            {
                var messageField = activityConfigurator.GetControl <TextSource>("Select_Message_Field", ControlTypes.TextSource);
                if (messageField == null)
                {
                    //user is not authenticated yet - there is nothing we can do now
                    return;
                }
                messageField.ValueSource = "upstream";
                messageField.Value       = "NotificationMessage";
                messageField.selectedKey = "NotificationMessage";
            }
        }
        private void SetFilterUsingRunTimeActivityFields(ActivityPayload filterUsingRunTimeAction, string status)
        {
            var crateStorage    = filterUsingRunTimeAction.CrateStorage;
            var configControlCM = crateStorage
                                  .CrateContentsOfType <StandardConfigurationControlsCM>()
                                  .First();
            var filterPane = (FilterPane)configControlCM.Controls.First(c => c.Name == "Selected_Filter");

            var conditions = new List <FilterConditionDTO>
            {
                new FilterConditionDTO {
                    Field = "Status", Operator = "neq", Value = status
                }
            };

            filterPane.Value = JsonConvert.SerializeObject(new FilterDataDTO
            {
                ExecutionType = FilterExecutionType.WithFilter,
                Conditions    = conditions
            });

            var queryableCriteria = new FieldDescriptionsCM(
                new FieldDTO()
            {
                Name      = "Status",
                Label     = "Status",
                FieldType = FieldType.String
            });
            var queryFieldsCrate = Crate.FromContent("Queryable Criteria", queryableCriteria);

            crateStorage.RemoveByLabel("Queryable Criteria");
            crateStorage.Add(queryFieldsCrate);
        }
        private void SelectTemplate(ActivityPayload activity)
        {
            var configControls = activity.CrateStorage.FirstCrate <StandardConfigurationControlsCM>(c => true).Content;
            var templateList   = configControls.Controls.OfType <DropDownList>().FirstOrDefault();

            templateList.selectedKey = "First";
        }
Exemple #11
0
        /// <inheritdoc />
        public void HandleWebhookPayload(ActivityPayload payload, Guid deliveryId)
        {
            IEnumerable <HandlerMethod> handlerMethods = _handlerRegistry.GetHandlersFor(payload.GetType());

            if (handlerMethods.Any())
            {
                // Figure out the execution context for this event
                var tenantId = _tenantMapper.GetTenantFor(payload.Installation.Id);

                if (tenantId == TenantId.Unknown)
                {
                    _logger.Warning($"GitHub installation '{payload.Installation.Id}' is not mapped to a tenant. The webhook will be ignored.");
                    return;
                }

                _executionContextManager.CurrentFor(tenantId, deliveryId);

                // Schedule the event for processing
                var scheduler = _schedulerFactory();
                foreach (var handler in handlerMethods)
                {
                    scheduler.QueueWebhookEventForHandling(new Webhook(handler, payload));
                }
            }
        }
        protected async Task <ActivityPayload> ConfigureChildActivity(ActivityPayload parent, ActivityPayload child)
        {
            var result = await HubCommunicator.ConfigureActivity(child);

            parent.ChildrenActivities.Remove(child);
            parent.ChildrenActivities.Add(result);
            return(result);
        }
Exemple #13
0
        public async Task <ActivityPayload> ConfigureActivity(ActivityPayload activityPayload, bool force)
        {
            var url               = $"{GetHubUrlWithApiVersion()}/activities/configure?force=" + force;
            var uri               = new Uri(url);
            var activityDTO       = Mapper.Map <ActivityDTO>(activityPayload);
            var resultActivityDTO = await _restfulServiceClient.PostAsync <ActivityDTO, ActivityDTO>(uri, activityDTO);

            return(Mapper.Map <ActivityPayload>(resultActivityDTO));
        }
Exemple #14
0
        private void DeleteSprint(ActivityPayload payload)
        {
            var crates  = payload.CrateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().First();
            var sprints = (DropDownList)crates.FindByName("Sprint");

            sprints.Value       = null;
            sprints.selectedKey = null;
            crates.Controls.Remove(crates.Controls.Last());
        }
        private void SetMessage(ActivityPayload payload, string name, string body)
        {
            var crates      = payload.CrateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().First();
            var nameTextBox = (TextBox)crates.FindByName("Name");
            var bodyTextBox = (BuildMessageAppender)crates.FindByName("Body");

            nameTextBox.Value = name;
            bodyTextBox.Value = body;
        }
Exemple #16
0
        private void SetFileDetails(ActivityPayload storeFileActivity, string fileName)
        {
            var fileNameTextbox     = ActivityConfigurator.GetControl <TextBox>(storeFileActivity, "File_Name", ControlTypes.TextBox);
            var fileCrateTextSource = ActivityConfigurator.GetControl <TextSource>(storeFileActivity, "File Crate label", ControlTypes.TextSource);

            fileNameTextbox.Value           = fileName;
            fileCrateTextSource.ValueSource = "specific";
            fileCrateTextSource.TextValue   = "From DocuSignTemplate To StandardFileDescription";
        }
Exemple #17
0
        public async Task <ActivityPayload> SaveActivity(ActivityPayload activityPayload)
        {
            var url               = $"{GetHubUrlWithApiVersion()}/activities/save";
            var uri               = new Uri(url);
            var activityDTO       = Mapper.Map <ActivityDTO>(activityPayload);
            var resultActivityDTO = await _restfulServiceClient.PostAsync <ActivityDTO, ActivityDTO>(uri, activityDTO, null, await GetHMACHeader(uri, activityDTO));

            return(Mapper.Map <ActivityPayload>(resultActivityDTO));
        }
        private async Task SetQueryFr8WarehouseActivityFields(ActivityPayload queryFr8Warehouse, string recipientEmail)
        {
            //update action's duration value
            var crateStorage     = queryFr8Warehouse.CrateStorage;
            var configControlCM  = ActivityConfigurator.GetConfigurationControls(queryFr8Warehouse);
            var radioButtonGroup = (configControlCM.Controls.First() as RadioButtonGroup);

            radioButtonGroup.Radios[0].Selected = false;
            radioButtonGroup.Radios[1].Selected = true;
            var             objectList = (DropDownList)(radioButtonGroup.Radios[1].Controls.FirstOrDefault(c => c.Name == "AvailableObjects"));
            MtTypeReference selectedObject;

            if (string.IsNullOrEmpty(recipientEmail))
            {
                selectedObject = GetMtType(typeof(DocuSignEnvelopeCM_v2));
            }
            else
            {
                selectedObject = GetMtType(typeof(DocuSignRecipientStatus));
            }

            if (selectedObject == null)
            {
                return;
            }

            objectList.Value       = selectedObject.Id.ToString("N");
            objectList.selectedKey = selectedObject.Alias;

            var filterPane = (FilterPane)radioButtonGroup.Radios[1].Controls.First(c => c.Name == "Filter");

            var conditions = new List <FilterConditionDTO>
            {
                new FilterConditionDTO {
                    Field = "EnvelopeId", Operator = "eq", Value = "FromPayload"
                }
            };

            if (recipientEmail != null)
            {
                conditions.Add(new FilterConditionDTO {
                    Field = "Email", Operator = "eq", Value = recipientEmail
                });
            }

            filterPane.Value = JsonConvert.SerializeObject(new FilterDataDTO
            {
                ExecutionType = FilterExecutionType.WithFilter,
                Conditions    = conditions
            });

            using (var uow = _container.GetInstance <IUnitOfWork>())
            {
                var queryCriteria = Crate.FromContent("Queryable Criteria", new FieldDescriptionsCM(MTTypesHelper.GetFieldsByTypeId(uow, selectedObject.Id)));
                crateStorage.Add(queryCriteria);
            }
        }
        private void SetNotificationSelected(ActivityPayload activity)
        {
            var configControls = activity.CrateStorage.FirstCrate <StandardConfigurationControlsCM>(c => true).Content;

            configControls.Controls
            .Where(c => c.Type == ControlTypes.CheckBox)
            .First(x => x.Name == "RecipientSigned")
            .Selected = true;
        }
        private void GetAllDescendants(ActivityPayload root, List <ActivityPayload> activties)
        {
            activties.AddRange(root.ChildrenActivities);

            foreach (var childrenActivity in root.ChildrenActivities)
            {
                GetAllDescendants(childrenActivity, activties);
            }
        }
        private void SetUpstream(ActivityPayload payload, string crateLabel, string fieldKey, IncomingCratesDTO data)
        {
            var crate       = payload.CrateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().First();
            var nameTextBox = (TextSource)crate.FindByName(crateLabel);
            var field       = data.AvailableCrates.Where(c => c.Fields.Where(f => f.Name == fieldKey).FirstOrDefault() != null).FirstOrDefault().Fields.Where(f => f.Name == fieldKey).FirstOrDefault();

            nameTextBox.ValueSource  = "upstream";
            nameTextBox.SelectedItem = field;
            nameTextBox.selectedKey  = field.Name;
        }
 public override void SetUp()
 {
     base.SetUp();
     ObjectFactory.Configure(x => x.AddRegistry <TerminalSendGridStructureMapBootstrapper.LiveMode>());
     ObjectFactory.Configure(cfg => cfg.For <ITransport>().Use(c => TransportFactory.CreateWeb(c.GetInstance <IConfigRepository>())));
     ObjectFactory.Configure(cfg => cfg.For <IEmailPackager>().Use(c => new SendGridPackager(c.GetInstance <IConfigRepository>())));
     TerminalBootstrapper.ConfigureTest();
     _crate          = ObjectFactory.GetInstance <ICrateManager>();
     activityPayload = GetActivityResult().Result;
 }
        private void SetTemplateConditionSelected(ActivityPayload activity)
        {
            var configControls = activity.CrateStorage.FirstCrate <StandardConfigurationControlsCM>(c => true).Content;

            configControls.Controls
            .OfType <RadioButtonGroup>()
            .First()
            .Radios
            .First(x => x.Name == "template")
            .Selected = true;
        }
        private void SetSprint(ActivityPayload payload)
        {
            var crates  = payload.CrateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().First();
            var sprints = (DropDownList)crates.FindByName("Sprint");
            var sprint  = sprints.ListItems.FirstOrDefault();

            if (sprint != null)
            {
                sprints.SelectByKey(sprint.Key);
            }
        }
        private void CopySolutionUiValuesToSalesforceActivity(ActivityPayload solutionActivity, ActivityPayload salesforceActivity)
        {
            var storage            = salesforceActivity.CrateStorage;
            var controlsCrate      = storage.FirstCrate <StandardConfigurationControlsCM>();
            var activityUi         = new Get_Data_v1.ActivityUi().ClonePropertiesFrom(controlsCrate.Content) as Get_Data_v1.ActivityUi;
            var solutionActivityUi = new ActivityUi().ClonePropertiesFrom(solutionActivity.CrateStorage.FirstCrate <StandardConfigurationControlsCM>().Content) as ActivityUi;

            activityUi.SalesforceObjectSelector.selectedKey = solutionActivityUi.SalesforceObjectSelector.selectedKey;
            activityUi.SalesforceObjectSelector.Value       = solutionActivityUi.SalesforceObjectSelector.Value;
            activityUi.SalesforceObjectFilter.Value         = solutionActivityUi.SalesforceObjectFilter.Value;
            storage.ReplaceByLabel(Crate.FromContent(controlsCrate.Label, new StandardConfigurationControlsCM(activityUi.Controls.ToArray())));
        }
        private void SetRecipientText(ActivityPayload activity)
        {
            var configControls = activity.CrateStorage.FirstCrate <StandardConfigurationControlsCM>(c => true).Content;

            configControls.Controls
            .OfType <RadioButtonGroup>()
            .First()
            .Radios
            .First(x => x.Name == "recipient")
            .Controls
            .First()
            .Value = "*****@*****.**";
        }
        public static ActivityPayload ConfigureSendEmailViaSendGridActivity()
        {
            var actionTemplate = SendEmailViaSendGridActivityTemplateDTO();

            var activityPayload = new ActivityPayload()
            {
                Id = TestGuid_Id_333(),
                //ActivityTemplateId = actionTemplate.Id,
                ActivityTemplate = actionTemplate,
                CrateStorage     = new CrateStorage()
            };

            return(activityPayload);
        }
        private void SetTemplate(ActivityPayload activity)
        {
            var configControls = activity.CrateStorage.FirstCrate <StandardConfigurationControlsCM>(c => true).Content;

            configControls.Controls
            .OfType <RadioButtonGroup>()
            .First()
            .Radios
            .First(x => x.Name == "template")
            .Controls
            .OfType <DropDownList>()
            .First()
            .selectedKey = "First";
        }
        /// <summary>
        /// ReconfigurationList algorithm.
        /// </summary>
        public async Task ReconfigureActivities(ActivityPayload solution,
                                                AuthorizationToken authToken, IReadOnlyList <ConfigurationRequest> items)
        {
            var queue = new Queue <ConfigurationRequest>(items);

            if (solution.ChildrenActivities == null)
            {
                solution.ChildrenActivities = new List <ActivityPayload>();
            }

            while (queue.Count > 0)
            {
                var item = queue.Dequeue();

                var context = new ReconfigurationContext()
                {
                    SolutionActivity = solution,
                    AuthToken        = authToken,
                    Requests         = items
                };

                if (!await item.HasActivityMethod(context))
                {
                    var childActivityByIndex = solution.ChildrenActivities
                                               .SingleOrDefault(x => x.Ordering == item.ChildActivityIndex);

                    if (childActivityByIndex != null)
                    {
                        solution.ChildrenActivities.Remove(childActivityByIndex);
                    }
                    await item.CreateActivityMethod(context);
                }
                else
                {
                    await item.ConfigureActivityMethod(context);
                }

                if (context.AdditionalRequests.Count > 0)
                {
                    foreach (var additionalItem in context.AdditionalRequests)
                    {
                        if (queue.All(x => x.ChildActivityIndex != additionalItem.ChildActivityIndex))
                        {
                            queue.Enqueue(additionalItem);
                        }
                    }
                }
            }
        }
 public void QueueWebhookEventForHandling(Type handler, MethodInfo method, ActivityPayload payload)
 {
     lock (_locker)
     {
         Task previousTask;
         if (!_queues.TryGetValue(handler, out previousTask))
         {
             previousTask = Task.CompletedTask;
         }
         _queues[handler] = Task.Run(async() => {
             await previousTask;
             method.Invoke(_container.Get(handler), new object[] { payload });
         });
     }
 }