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."); }
public override Task Initialize() { ActivitiesHelper.GetAvailableFields(ActivityUI.SalesforceObjectList); return(Task.FromResult(0)); }