private List<string> ProcessSend(DataForAPI[] array) { List<string> sendResults = new List<string>(); try { var activityArray = CreateTransferObjectsArray(array); var saveResults = _service.Proxy.create(activityArray); for (int i = 0; i < saveResults.Length; i++) { string sendResult; if (saveResults[i].success) { UnityResolver.UnityContainer.Resolve<ILogger>().LogEvent(() => Config.AppEvents.GainWinServicesExactTarget.ExactTargetInformation, "SalesForceApi - entity " + activityArray[i].Name + " successfully sended - KeyValue: " + array[i].SourceEntity.KeyValue + " Email: " + activityArray[i].Contact__r.Email); sendResult = string.Empty; } else { sendResult = saveResults[i].errors[0].statusCode + " " + saveResults[i].errors[0].message; UnityResolver.UnityContainer.Resolve<ILogger>().LogEvent(() => Config.AppEvents.GainWinServicesExactTarget.ExactTargetInformation, "SalesForceApi - entity " + activityArray[i].Name + " can't be sended - KeyValue: " + array[i].SourceEntity.KeyValue + " Email: " + activityArray[i].Contact__r.Email + " ErrorMessage: " + sendResult); } sendResults.Add(sendResult); } } catch (Exception e) { UnityResolver.UnityContainer.Resolve<ILogger>().LogEvent(() => Config.AppEvents.GainWinServicesExactTarget.ExactTargetError, "SalesForceApi.Send " + e); } return sendResults; }
private Subscriber CreateSubscriber(DataForAPI data) { var subscriber = new Subscriber(); subscriber.EmailAddress = data.Email; subscriber.SubscriberKey = data.Email; subscriber.EmailTypePreference = EmailType.HTML; subscriber.EmailTypePreferenceSpecified = true; if (data.extensions.Count > 0 || data.ExactTargetSpecificExtensions.Count > 0) { subscriber.Attributes = new ExactTargetS6.Attribute[data.extensions.Count + data.ExactTargetSpecificExtensions.Count]; int index = 0; foreach (var extension in data.extensions) { subscriber.Attributes[index] = new ExactTargetS6.Attribute { Name = extension.Key, Value = extension.Value }; index++; } foreach (var extension in data.ExactTargetSpecificExtensions) { subscriber.Attributes[index] = new ExactTargetS6.Attribute { Name = extension.Key, Value = extension.Value }; index++; } } return subscriber; }
private ELQA_Marketing_Activity__c[] CreateTransferObjectsArray(DataForAPI[] dataForApiArray) { var result = new List<ELQA_Marketing_Activity__c>(dataForApiArray.Length); foreach (var dataForAPI in dataForApiArray) { var elqaMarketingActivity = new ELQA_Marketing_Activity__c(); switch (dataForAPI.ProcessType) { case Enums.ProcessType.JPMarginCall: elqaMarketingActivity.Name = "JP Margin Call"; break; case Enums.ProcessType.JPInactivityDeletion: elqaMarketingActivity.Name = "JP Inactivity / Deletion"; break; case Enums.ProcessType.AUHKMarginUtilization: elqaMarketingActivity.Name = "AU / HK Margin Utilization"; break; } elqaMarketingActivity.Activity_Date__c = DateTime.Now; elqaMarketingActivity.Contact__r = new Contact { //TODO: improve code Email = dataForAPI.DataBaseAccess.GetEmailAddresses(dataForAPI.AccountNumber).FirstOrDefault() }; //TODO: improve code elqaMarketingActivity.Activity_Detail__c = dataForAPI.AdditionalDetails.AccountNumber + "," + dataForAPI.AdditionalDetails.FirstName + "," + dataForAPI.AdditionalDetails.AccountNumber; result.Add(elqaMarketingActivity); } return result.ToArray(); }
private ELQA_Marketing_Activity__c[] CreateTransferObjectsArray(DataForAPI[] dataForApiArray) { var result = new List<ELQA_Marketing_Activity__c>(dataForApiArray.Length); foreach (var dataForAPI in dataForApiArray) { var activity = new ELQA_Marketing_Activity__c(); activity.Name = dataForAPI.AdditionalDetails.SalesForceMarketingActivityName; activity.Activity_Date__cSpecified = true; activity.Activity_Date__c = dataForAPI.AdditionalDetails.ETProcessDate; activity.Contact__r = new Contact { Email = dataForAPI.Email }; dataForAPI.extensions.ToList().ForEach(pair => { activity.Activity_Detail__c += pair.Value + ","; }); activity.Activity_Detail__c = activity.Activity_Detail__c.TrimEnd(','); // remove last ',' result.Add(activity); } return result.ToArray(); }