示例#1
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            if (value is string)
            {
                ObjectInstance     objectBeingEditted;
                ObjectInstanceList collectionFromString = new ObjectInstanceList();

                try
                {
                    string   collectionAsString = (string)value;
                    string[] objectNames        = collectionAsString.Split(new char[] { ',' });
                    string   instanceName;

                    objectBeingEditted = (ObjectInstance)context.Instance;

                    for (int x = 0; x <= objectNames.GetUpperBound(0); x++)
                    {
                        instanceName = objectNames[x].Trim();
                        if (instanceName.Length > 0)
                        {
                            collectionFromString.Add(objectBeingEditted.TestExecution().ObjectRegistry.GetObject(instanceName));
                        }
                    }
                }
                catch
                {
                    throw new ArgumentException("Can not convert '" + (string)value + "' to an object collection");
                }
                return(collectionFromString);
            }
            return(base.ConvertFrom(context, culture, value));
        }
示例#2
0
 public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, System.Type destinationType)
 {
     if (destinationType == typeof(System.String) &&
         value is ObjectInstanceList)
     {
         ObjectInstanceList idd    = (ObjectInstanceList)value;
         string             result = "";
         foreach (ObjectInstance def in idd)
         {
             if (result.Length > 0)
             {
                 result += ", ";
             }
             result += def.Name;
         }
         return(result);
     }
     return(base.ConvertTo(context, culture, value, destinationType));
 }
示例#3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //1. Login to Ektron Connector through DxH
            ContextBusClient       cbClient  = new ContextBusClient();
            List <ConnectionParam> paramList = cbClient.LoadConnection("Ektron", "Ektron").ToList();

            cbClient.Login(paramList.ToArray(), "Ektron");

            //2. get "HtmlContent" ObjectDefinition
            FlyweightObjectDefinition flyweight = new FlyweightObjectDefinition()
            {
                Id = "HTMLContent"
            };

            FlyweightObjectDefinition[] flyweights       = new FlyweightObjectDefinition[] { flyweight };
            ObjectDefinition            contentObjectDef = cbClient.GetObjectDefinitionList(flyweights, "Ektron").FirstOrDefault();

            //3. Define criteria to retrieve content object instances from Ektron Connector
            ObjectInstanceCriteriaFilter criteria = new ObjectInstanceCriteriaFilter();
            List <CriteriaFilter>        filters  = new List <CriteriaFilter>();

            filters.Add(new CriteriaFilter()
            {
                FieldID  = "FolderId",
                Operator = ObjectInstanceCriteriaFilterOperator.EqualTo,
                Value    = 1
            });

            criteria.Filters = filters.ToArray();

            //4. Retrieve Object Instances and databind
            ObjectInstanceList objectInstanceReturn = cbClient.GetObjectInstanceList(contentObjectDef, criteria, "Ektron");

            lvObjects.DataSource = objectInstanceReturn.Results;
            lvObjects.DataBind();
        }
示例#4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ContextBusClient cbClient = new ContextBusClient();

            //Get Employee definition from adventure works:
            ConnectionParam[] parameters = cbClient.LoadConnection("advworks", AdvWorksConnectorId);
            cbClient.Login(parameters, AdvWorksConnectorId);
            FlyweightObjectDefinition flyweight = new FlyweightObjectDefinition()
            {
                Id = "HumanResources.Employee"
            };
            ObjectDefinition employeeObjDef = cbClient.GetObjectDefinitionList(new FlyweightObjectDefinition[] { flyweight }, AdvWorksConnectorId).First();

            //Get Team definition from Sharepoint
            parameters = cbClient.LoadConnection("Sharepoint-Team", "SharePoint");
            cbClient.Login(parameters, "SharePoint");
            flyweight = new FlyweightObjectDefinition()
            {
                Id = "SP|List|/sites/SiteCollection1|Team"
            };
            ObjectDefinition sharepointObjDef = cbClient.GetObjectDefinitionList(new FlyweightObjectDefinition[] { flyweight }, "SharePoint").First();


            //build the workflow.
            TaskManagerClient taskClient = new TaskManagerClient();

            //1. Create login task
            LoginTask login = taskClient.CreateLoginTask(AdvWorksConnectorId, "advworks");

            //2. Create Mapping Task
            MappingTask map = taskClient.CreateMappingTask(sharepointObjDef, employeeObjDef);

            MappableField field = map.TargetFields.SingleOrDefault(f => f.Id == "p.BusinessEntityID");

            field.Mapping.MappingType = MappingType.ConstMapping;
            field.Mapping.Value       = 1;

            field = map.TargetFields.SingleOrDefault(f => f.Id == "p.EmailPromotion");
            field.Mapping.MappingType = MappingType.ConstMapping;
            field.Mapping.Value       = 0;

            field = map.TargetFields.SingleOrDefault(f => f.Id == "p.Demographics");
            field.Mapping.MappingType = MappingType.ConstMapping;
            field.Mapping.Value       = "";

            field = map.TargetFields.SingleOrDefault(f => f.Id == "p.NameStyle");
            field.Mapping.MappingType = MappingType.ConstMapping;
            field.Mapping.Value       = false;

            field = map.TargetFields.SingleOrDefault(f => f.Id == "p.PersonType");
            field.Mapping.MappingType = MappingType.ConstMapping;
            field.Mapping.Value       = "EM";

            field = map.TargetFields.SingleOrDefault(f => f.Id == "p.FirstName");
            field.Mapping.MappingType = MappingType.FieldMapping;
            field.Mapping.Value       = "First_x0020_Name";

            field = map.TargetFields.SingleOrDefault(f => f.Id == "p.LastName");
            field.Mapping.MappingType = MappingType.FieldMapping;
            field.Mapping.Value       = "Last_x0020_Name";

            field = map.TargetFields.SingleOrDefault(f => f.Id == "e.JobTitle");
            field.Mapping.MappingType = MappingType.FieldMapping;
            field.Mapping.Value       = "Title";

            //3. Save Task
            SaveObjectInstanceTask saveSharepointToEktron = taskClient.CreateSaveObjectTask(AdvWorksConnectorId);

            //4. Logout Task
            LogoutTask logout = taskClient.CreateLogoutTask(AdvWorksConnectorId);

            //5. Assemble and save workflow
            string   workflowName       = string.Concat("My Test Workflow");
            Workflow workflow           = taskClient.CreateWorkflow(workflowName);
            List <ContextBusTask> tasks = new List <ContextBusTask>();

            tasks.Add(login);
            tasks.Add(map);
            tasks.Add(saveSharepointToEktron);
            tasks.Add(logout);
            workflow.Tasks = tasks.ToArray();
            taskClient.SaveWorkflow(workflow);

            //3. Create associated Event Definitions for workflow.
            EventManagerClient eventClient = new EventManagerClient();
            EventDefinition    eventDef    = new EventDefinition()
            {
                Id      = workflowName,
                Payload = map.SourceObject
            };

            eventClient.AssociateWorkflowsToEvent(new string[] { workflow.WorkflowName }, eventDef);



            //
            //Now raise the event to perform the workflow!
            //

            //first get sharpeoint item
            ObjectInstanceCriteriaFilter criteria = new ObjectInstanceCriteriaFilter();

            criteria.Filters = new CriteriaFilter[0];
            ObjectInstanceList sharepointObjInstance = cbClient.GetObjectInstanceList(sharepointObjDef, criteria, "SharePoint");

            //create event instance with sharepoint item
            EventInstance itemEvent = new EventInstance()
            {
                Id      = workflowName,
                Payload = sharepointObjInstance.Results.First()
            };

            //raise the event.
            eventClient.RaiseEvent(itemEvent);
        }
示例#5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ContextBusClient cbClient = new ContextBusClient();

            ConnectionParam[] parameters = cbClient.LoadConnection("Advworks", AdvWorksConnectorId);

            cbClient.Login(parameters, AdvWorksConnectorId);

            FlyweightObjectDefinition[] flyweights = cbClient.GetObjectDefinitionNameList(AdvWorksConnectorId);
            lvObjects.DataSource = flyweights;
            lvObjects.DataBind();

            List <ObjectDefinition> objDefList = cbClient.GetObjectDefinitionList(flyweights, AdvWorksConnectorId).ToList();

            ObjectInstanceCriteriaFilter criteria             = new ObjectInstanceCriteriaFilter();
            ObjectInstanceList           objectInstanceReturn = cbClient.GetObjectInstanceList(objDefList.First(), criteria, AdvWorksConnectorId);

            lvObjectInstances.DataSource = objectInstanceReturn.Results;
            lvObjectInstances.DataBind();

            //Lets map a sharepoint object to AdventureWorks

            //Get Sharepoint ObjectDefinition
            FlyweightObjectDefinition flyweight = new FlyweightObjectDefinition()
            {
                Id = "SP|List|/sites/SiteCollection1|Team"
            };
            ObjectDefinition sharepointObjDef = cbClient.GetObjectDefinitionList(new FlyweightObjectDefinition[] { flyweight }, "SharePoint").First();

            //Get Employee definition from adventure works:
            ObjectDefinition employeeObjDef = objDefList.Find(d => d.DisplayName == "Employee");

            //build the workflow.
            TaskManagerClient taskClient = new TaskManagerClient();

            //1. Create login task
            LoginTask login = taskClient.CreateLoginTask(AdvWorksConnectorId, "");

            //2. Create Mapping Task
            MappingTask map = taskClient.CreateMappingTask(sharepointObjDef, employeeObjDef);

            MappableField field = map.TargetFields.SingleOrDefault(f => f.Id == "BusinessEntityID");

            field.Mapping.MappingType = MappingType.ConstMapping;
            field.Mapping.Value       = 1;

            field = map.TargetFields.SingleOrDefault(f => f.Id == "PersonType");
            field.Mapping.MappingType = MappingType.ConstMapping;
            field.Mapping.Value       = "EM";

            field = map.TargetFields.SingleOrDefault(f => f.Id == "FirstName");
            field.Mapping.MappingType = MappingType.FieldMapping;
            field.Mapping.Value       = map.SourceObject.Fields.SingleOrDefault(f => f.Id == "First_x0020_Name");

            field = map.TargetFields.SingleOrDefault(f => f.Id == "LastName");
            field.Mapping.MappingType = MappingType.FieldMapping;
            field.Mapping.Value       = map.SourceObject.Fields.SingleOrDefault(f => f.Id == "last_x0020_name");

            field = map.TargetFields.SingleOrDefault(f => f.Id == "JobTitle");
            field.Mapping.MappingType = MappingType.FieldMapping;
            field.Mapping.Value       = map.SourceObject.Fields.SingleOrDefault(f => f.Id == "Title");

            //3. Save Task
            SaveObjectInstanceTask saveSharepointToEktron = taskClient.CreateSaveObjectTask(AdvWorksConnectorId);

            //4. Logout Task
            LogoutTask logout = taskClient.CreateLogoutTask(AdvWorksConnectorId);
        }