public override async Task Initialize()
        {
            //In initial config, just create a DDLB
            //to let the user select which object they want to save.
            var whatKindOfData = new DropDownList
            {
                Name     = "sfObjectType",
                Required = true,
                Label    = "Which object do you want to save to Salesforce.com?",
                Source   = null,
                Events   = new List <ControlEvent> {
                    new ControlEvent("onChange", "requestConfig")
                }
            };

            AddControls(whatKindOfData);

            ActivitiesHelper.GetAvailableFields(ConfigurationControls, "sfObjectType");
        }
        public override async Task Run()
        {
            var chosenObject = ExtractChosenSFObject();

            //get all fields
            var fieldsList = Storage.CrateContentsOfType <FieldDescriptionsCM>(c => c.Label.Equals("Salesforce Object Fields - " + chosenObject))
                             .SelectMany(f => f.Fields);

            //get all text sources
            var fieldControlsList = ConfigurationControls.Controls.OfType <TextSource>();

            //get <Field> <Value> key value pair for the non empty field
            var jsonInputObject = ActivitiesHelper.GenerateSalesforceObjectDictionary(fieldsList, fieldControlsList);

            string result;

            try
            {
                result = await _salesforce.Create(chosenObject.ToEnum <SalesforceObjectType>(), jsonInputObject, AuthorizationToken);
            }
            catch (AuthorizationTokenExpiredOrInvalidException ex)
            {
                RaiseInvalidTokenError();
                return;
            }

            if (!string.IsNullOrEmpty(result))
            {
                var contactIdFields = new List <KeyValueDTO> {
                    new KeyValueDTO(chosenObject + "ID", result)
                };
                Payload.Add(Crate.FromContent(chosenObject + " is saved in Salesforce.com", new StandardPayloadDataCM(contactIdFields)));
                Success();
                return;
            }

            RaiseError("Saving " + chosenObject + " to Salesforce.com is failed.");
        }
Ejemplo n.º 3
0
 public override Task Initialize()
 {
     ActivitiesHelper.GetAvailableFields(ActivityUI.SalesforceObjectList);
     return(Task.FromResult(0));
 }