Beispiel #1
0
		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;
		}
Beispiel #2
0
		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();
		}
Beispiel #4
0
		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();
		}