public void functionWithEmptyDictionaryCanBeUrlEncoded() { string expectedUrlEncoded = $"&function=addSubscriber"; addSubscriber function = new addSubscriber() { }; AssertToGet(function, expectedUrlEncoded); }
public int AddNewSubscriber(string name, string email, List <int> groups, Dictionary <string, string> customFields) { addSubscriber addSubscriberFunction = new addSubscriber() { name = name, email = email, groups = groups, customFields = customFields, }; MailrelayIntReply reply = (MailrelayIntReply)_mailrelayConnection.Send(addSubscriberFunction); return(reply.data); }
public void functionWithSingleElementDictionaryCanBeUrlEncoded() { string expectedUrlEncoded = $"&function=addSubscriber&customFields%5bf_1%5d=test+1"; addSubscriber function = new addSubscriber() { customFields = new Dictionary <string, string>() { { "f_1", "test 1" }, }, }; AssertToGet(function, expectedUrlEncoded); }
private addSubscriber GetSubscriberFromFetchXml(MailrelayInformation information, string email) { Dictionary <string, string> customFields = information.GetCustomFields(); List <int> groups = new List <int>() { information.campaign_new_mailrelaygroupid.Value }; addSubscriber add = new addSubscriber() { customFields = customFields, email = email, name = information.fullname, groups = groups, }; return(add); }
public void addSubscriber() { addSubscriber function = new addSubscriber() { email = "*****@*****.**", groups = new List <int>() { 1 }, name = "test_name", customFields = new Dictionary <string, string>() { { "f_1", "f1" }, { "f_3", "f3" }, { "f_4", "f4" }, { "f_5", "f5" }, }, }; AbstractMailrelayReply reply = TestCall(function); Assert.AreEqual(1, reply.status); }
public override void ExecuteOption(OptionReport report) { string urlLoginName = _databaseAddMailrelaySubscriberFromLead.urlLoginName; string email = _databaseAddMailrelaySubscriberFromLead.email; Guid leadId = _databaseAddMailrelaySubscriberFromLead.leadId; DatabaseUrlLogin login = DatabaseUrlLogin.GetUrlLogin(Connection, urlLoginName); DynamicsCrmConnection dynamicsCrmConnection = DynamicsCrmConnection.GetConnection(login.Url, login.Username, login.Password); DatabaseWebCampaign webCampaign = DatabaseWebCampaign.ReadByIdBytesSingleOrDefault(Connection, _databaseAddMailrelaySubscriberFromLead.WebCampaignIdValue()); if (webCampaign == null) { Log.Write(Connection, $"Could not find campaign for {_databaseAddMailrelaySubscriberFromLead.Name}", typeof(AddMailrelaySubscriberFromLead), DataLayer.MongoData.Config.LogLevelEnum.OptionError); report.Success = false; return; } MailrelayInformation information = GetInformationFromFetchXml(dynamicsCrmConnection, webCampaign, email); if (information == null) { Log.Write(Connection, $"Information for lead {leadId} on {email} could not be found", typeof(AddMailrelaySubscriberFromLead), DataLayer.MongoData.Config.LogLevelEnum.OptionMessage); report.Success = true; return; } if (information.campaign_new_mailrelaygroupid.HasValue == false) { Log.Write(Connection, $"Subscriber not added, campaign {webCampaign.FormId} has no group", typeof(AddMailrelaySubscriberFromLead), DataLayer.MongoData.Config.LogLevelEnum.OptionMessage); report.Success = true; return; } getSubscribersReply ExistingSubscriber = GetExistingSubscribers(email); int subscriberId; if (ExistingSubscriber == null) { addSubscriber add = GetSubscriberFromFetchXml(information, email); subscriberId = SendSubscriberToMailrelay(add); } else { subscriberId = int.Parse(ExistingSubscriber.id); UdpateExistingSubscriberIfNeeded(information, ExistingSubscriber, email, subscriberId); } try { Lead.UpdateSubscriberId(dynamicsCrmConnection, leadId, subscriberId); } catch (Exception exception) { Log.Write(Connection, exception.Message, typeof(AddMailrelaySubscriberFromLead), exception.StackTrace, DataLayer.MongoData.Config.LogLevelEnum.OptionError); } report.Success = true; }
private int SendSubscriberToMailrelay(addSubscriber add) { MailrelayIntReply intReply = (MailrelayIntReply)_mailrelayConnection.Send(add); return(intReply.data); }