private MarketingList InsertMarketingList() { MarketingList marketingListInserted = new MarketingList(_connection); marketingListInserted.listname = $"testList_{DateTime.Now.ToString("yyyyMMdd_HH:mm:ss")}"; marketingListInserted.query = @" <fetch mapping='logical' distinct='true'> <entity name='contact'> <attribute name='firstname' /> <order attribute='firstname' descending='false' /> <link-entity name='new_group_contact' from='contactid' to='contactid' visible='false' intersect='true'> <link-entity name='new_group' from='new_groupid' to='new_groupid' visible='false' intersect='true'> <attribute name='new_name' /> <filter type='and'> <condition attribute='new_name' operator='eq' value='Støtten' /> </filter> </link-entity> </link-entity> <link-entity name='new_group_contact' from='contactid' to='contactid' visible='false' intersect='true'> <link-entity name='new_group' from='new_groupid' to='new_groupid' visible='false' intersect='true'> <attribute name='new_name' /> <filter type='and'> <condition attribute='new_name' operator='eq' value='Årsmærker' /> </filter> </link-entity> </link-entity> </entity> </fetch>" ; marketingListInserted.InsertWithoutRead(); return(marketingListInserted); }
public override void ExecuteOption(OptionReport report) { string urlLoginName = _databaseExportContactToMailrelay.urlLoginName; Guid?crmListId = _databaseExportContactToMailrelay.listId; DatabaseUrlLogin login = DatabaseUrlLogin.GetUrlLogin(Connection, urlLoginName); DynamicsCrmConnection dynamicsCrmConnection = DynamicsCrmConnection.GetConnection(login.Url, login.Username, login.Password); PagingInformation pagingInformation = new PagingInformation(); while (pagingInformation.FirstRun || pagingInformation.MoreRecords) { MarketingList marketingList = MarketingList.GetListForMailrelayUpdate(dynamicsCrmConnection, pagingInformation, crmListId); if (marketingList != null) { UpdateReport <Guid> result = ExportMailrelayContactFromList(dynamicsCrmConnection, marketingList); Log.Write(Connection, result.AsLogText($"ExportContactToMailrelay {marketingList.new_mailrelaygroupid.Value}"), typeof(ExportContactToMailrelay), DataLayer.MongoData.Config.LogLevelEnum.OptionReport); } } report.Success = true; return; }
private DatabaseExportContactToMailrelay CreateDatabaseUpdateMailrelayGroup(MarketingList list) { return(new DatabaseExportContactToMailrelay() { listId = list.Id, Name = "test", Schedule = CreateScheduleAlwaysOnDoOnce(), urlLoginName = "test", }); }
public void DeleteRemovesInserted() { MarketingList marketingListInserted = InsertMarketingList(); marketingListInserted.Delete(); TestDelegate readTest = () => MarketingList.Read(_connection, marketingListInserted.Id); Assert.Throws(Is.InstanceOf(typeof(Exception)), readTest); }
public ActionResult Create() { Guid logonUser = new Guid(System.Web.HttpContext.Current.Session["CurrentUserID"].ToString()); MarketingList ml = new MarketingList(); ml.CreatedBy = logonUser; return(View()); }
public ActionResult formSubmit(MarketingList model, string actionType) { Guid logonUser = new Guid(System.Web.HttpContext.Current.Session["CurrentUserID"].ToString()); List <string> errorMessage = new List <string>(); string successMessage = Resources.MarketingList.MarketingListSuccess; if (ModelState.IsValid) { KeyValuePair <int, string> results = new KeyValuePair <int, string>(1, ""); switch (actionType) { case "Create": //model.ID = Guid.NewGuid(); model.CreatedBy = logonUser; model.CreatedOn = DateTime.Now; results = db.MarketingList_Insert(model); break; case "Edit": model.ModifiedBy = logonUser; model.ModifiedOn = DateTime.Now; results = db.MarketingList_Update(model); break; } if (results.Key == 0 || results.Key == 16 || results.Key == 6) { UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext); string url = u.Action("Edit", "MarketingList", new { id = model.ID, success = successMessage }); string urlNew = u.Action("Create", "MarketingList"); var jsonData = new { flag = true, Message = url, urlNew = urlNew }; return(Json(jsonData)); } else { var jsonData = new { flag = false, Message = results.Value.ToString() }; return(Json(jsonData)); } } else { foreach (var key in ModelState.Keys) { var error = ModelState[key].Errors.FirstOrDefault(); if (error != null) { errorMessage.Add(error.ErrorMessage); } } var jsonData = new { flag = false, Message = errorMessage.First() }; return(Json(jsonData)); } }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { return; } // check if this is a profile edit, or a new signup if (Request.IsAuthenticated) { //bind timezone options BindTimeZoneDropDown(); // the user is already authenticated, so this is a profile edit. if (Portal != null) { if (Contact == null) { return; } PopulateAccountForm(Contact.contact_customer_accounts); PopulateContactForm(Contact); } SubmitButton.Text = "Update Account"; if (!AccountInformation.Visible && !SelfInformation.Visible) { SubmitButton.Text = "You do not have permissions to read your account information!"; SubmitButton.Enabled = false; } else if ((AccountName.ReadOnly && (!SelfInformation.Visible || FirstName.ReadOnly)) || (FirstName.ReadOnly && (!AccountInformation.Visible || AccountName.ReadOnly))) { SubmitButton.Visible = false; } } else { // the user is not signed in var loginPage = ServiceContext.GetPageBySiteMarkerName(Website, "Login"); Response.Redirect(ServiceContext.GetUrl(loginPage)); } if (Website == null) { return; } MarketingList.DataSource = Website.adx_website_list; MarketingList.DataBind(); }
new public void SetUp() { base.SetUp(); _contact = CreateContact(); _contact.new_mailrelaysubscriberid = _random.Next(0, int.MaxValue); _contact.InsertWithoutRead(); _groupId = _random.Next(0, int.MaxValue); _list = InsertMarketingListOnContact(_contact); }
public void InsertedAreSameAsRead() { MarketingList marketingListInserted = InsertMarketingList(); MarketingList marketingListRead = MarketingList.Read(_connection, marketingListInserted.Id); marketingListInserted.Delete(); Assert.AreEqual(marketingListInserted.createdfrom, marketingListRead.createdfrom); Assert.AreEqual(marketingListInserted.listname, marketingListRead.listname); Assert.AreEqual(marketingListInserted.Id, marketingListRead.Id); Assert.AreEqual(marketingListInserted.query, marketingListRead.query); }
public void GetListForMailrelayUpdateOnlyReturnsListThatShouldBeImported() { PagingInformation pagingInformation = new PagingInformation(); while (pagingInformation.FirstRun || pagingInformation.MoreRecords) { MarketingList marketingList = MarketingList.GetListForMailrelayUpdate(_connection, pagingInformation, null); if (marketingList != null) { Console.Out.WriteLine($" {marketingList.Id} {marketingList.new_controlmailrelaygroup} - {marketingList.new_mailrelaygroupid} - {marketingList.new_mailrelaycheck}"); } } }
public void CrmIdsAndSubscriberIdsForTestList() { MarketingList list = MarketingList.Read(_connection, Guid.Parse("b70001ba-1569-e611-80f7-001c4215c4a0")); foreach (KeyValueEntity <Guid, int?> crmAndSubscriber in list.CrmIdsAndSubscriberIds) { Contact contact = Contact.ReadFromFetchXml(_connection, new List <string>() { "emailaddress1", "new_mailrelaysubscriberid" }, new Dictionary <string, string>() { { "contactid", crmAndSubscriber.key.ToString() } }).Single(); Console.Out.WriteLine($"{contact.emailaddress1} - {contact.new_mailrelaysubscriberid}"); } }
public void ContentIdsForNonMailrelaySubscribersTestList() { MarketingList list = MarketingList.Read(_connection, Guid.Parse("b70001ba-1569-e611-80f7-001c4215c4a0")); foreach (Guid crmId in list.ContentIdsForNonMailrelaySubscribers) { Contact contact = Contact.ReadFromFetchXml(_connection, new List <string>() { "emailaddress1", "new_mailrelaysubscriberid" }, new Dictionary <string, string>() { { "contactid", crmId.ToString() } }).Single(); Console.Out.WriteLine($"{contact.emailaddress1} - {contact.new_mailrelaysubscriberid}"); } }
private MarketingList InsertMarketingListOnContact(Contact contact) { MarketingList list = new MarketingList(DynamicsCrmConnection) { listname = $"test {Guid.NewGuid()}", new_controlmailrelaygroup = true, createdfrom = MarketingList.createdfromcodeEnum.Contact, query = new XDocument( new XElement("fetch", new XElement("entity", new XAttribute("name", "contact"), new XElement("attribute", new XAttribute("name", "emailaddress1")), new XElement("filter", new XElement("condition", new XAttribute("attribute", "contactid"), new XAttribute("operator", "eq"), new XAttribute("value", contact.Id)))))).ToString(), }; list.InsertWithoutRead(); return(list); }
public void ContactWithoutSubscriberIdWillBeExported() { _contact.new_mailrelaysubscriberid = null; _contact.Update(); int newId = _random.Next(0, int.MaxValue); DatabaseExportContactToMailrelay databaseExportContactToMailrelay = CreateDatabaseUpdateMailrelayGroup(_list); ExportContactToMailrelay exportContactToMailrelay = new ExportContactToMailrelay(Connection, databaseExportContactToMailrelay); exportContactToMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester); _mailrelayConnectionTester.replies.Enqueue(new MailrelayIntReply() { status = 1, data = 1 }); _mailrelayConnectionTester.replies.Enqueue(new MailrelayIntReply() { status = 1, data = newId }); exportContactToMailrelay.ExecuteOption(new Administration.Option.Options.OptionReport(typeof(ExportContactToMailrelayTest))); MarketingList listRead = MarketingList.GetListForMailrelayUpdate(DynamicsCrmConnection, new PagingInformation(), _list.Id); Contact contactRead = Contact.ReadFromFetchXml(DynamicsCrmConnection, new List <string>() { "contactid", "new_mailrelaysubscriberid" }, new Dictionary <string, string>() { { "contactid", _contact.Id.ToString() } }).Single(); Assert.AreEqual(1, _mailrelayConnectionTester.sendFunctions.Count(function => function.GetType() == typeof(addSubscriber))); Assert.IsNotNull(listRead.new_mailrelaygroupid); Assert.AreEqual(newId, contactRead.new_mailrelaysubscriberid); }
public KeyValuePair <int, String> MarketingList_Update(MarketingList model) { var param = new SqlParameter[] { new SqlParameter("@ID", SqlDbType.UniqueIdentifier) { Value = model.ID }, new SqlParameter("@Name", SqlDbType.NVarChar, 100) { Value = CheckForDbNull(model.Name) }, new SqlParameter("@Purpose", SqlDbType.NVarChar, 100) { Value = CheckForDbNull(model.Purpose) }, new SqlParameter("@Description", SqlDbType.NVarChar, 200) { Value = CheckForDbNull(model.Description) }, new SqlParameter("@CreatedBy", SqlDbType.UniqueIdentifier) { Value = CheckForDbNull(model.CreatedBy) }, new SqlParameter("@CreatedOn", SqlDbType.DateTime) { Value = CheckForDbNull(model.CreatedOn) }, new SqlParameter("@ModifiedBy", SqlDbType.UniqueIdentifier) { Value = CheckForDbNull(model.ModifiedBy) }, new SqlParameter("@ModifiedOn", SqlDbType.DateTime) { Value = CheckForDbNull(model.ModifiedOn) }, new SqlParameter("@DeletionStateCode", SqlDbType.Int) { Value = CheckForDbNull(model.DeletionStateCode) }, new SqlParameter("@StateCode", SqlDbType.Int) { Value = CheckForDbNull(model.StateCode) }, new SqlParameter("@StatusCode", SqlDbType.Int) { Value = CheckForDbNull(model.StatusCode) }, new SqlParameter("@RetVal", SqlDbType.Int) { Direction = ParameterDirection.Output }, new SqlParameter("@Message", SqlDbType.NVarChar, 100) { Direction = ParameterDirection.Output } }; int rc = ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreCommand("exec [CRM].[MarketingList_Update] @ID, @Name, @Purpose, @Description, @CreatedBy, @CreatedOn, @ModifiedBy, @ModifiedOn, @DeletionStateCode, @StateCode, @StatusCode, @RetVal out, @Message out", param); int retVal = (int)param[11].Value; string valueRes = param[12].Value.ToString(); return(new KeyValuePair <int, string>(retVal, valueRes)); }
private UpdateReport <Guid> ExportMailrelayContactFromList(DynamicsCrmConnection dynamicsCrmConnection, MarketingList marketingList) { if (marketingList.new_mailrelaygroupid.HasValue == false) { marketingList.new_mailrelaygroupid = Subscriber.CreateGroup(_mailrelayConnection, $"crm_{marketingList.listname}", "crm kontrolleret gruppe"); marketingList.UpdateMailrelaygroupid(dynamicsCrmConnection); } IEnumerable <Guid> contactIdsToUpdate = marketingList.ContentIdsForNonMailrelaySubscribers; UpdateReport <Guid> updateReport = new UpdateReport <Guid>(); foreach (Guid contactId in contactIdsToUpdate) { MailrelayInformation mailrelayInformation = MailrelayInformation.GetInformationNotInMailrelayFromContact(dynamicsCrmConnection, Config.GetResourcePath, contactId); UpdateResultEnum result = AddToMailrelay(dynamicsCrmConnection, mailrelayInformation, marketingList.new_mailrelaygroupid.Value); updateReport.CollectUpdate(result, contactId); } return(null); }
public ActionResult Edit(MarketingList model) { return(formSubmit(model, "Edit")); }
public ActionResult MCustomer(Guid id) { MarketingList model = db.marketingList.Find(id); return(View(model)); }
private UpdateReport <int> AddOrRemoveMembersFromMailrelayGroup(DynamicsCrmConnection dynamicsCrmConnection, MarketingList marketingList, int groupId) { List <KeyValueEntity <Guid, int?> > crmIdsAndSubscriberIds = marketingList.CrmIdsAndSubscriberIds; List <getSubscribersReply> subscribersToRemoveFromMailrelay = new List <getSubscribersReply>(); Subscriber subscriber = new Subscriber(_mailrelayConnection); getSubscribers getSubscribersFunction = new getSubscribers() { groups = new List <int>() { groupId }, }; IEnumerable <getSubscribersReply> subscribersInMailrelay = subscriber.GetMailrelaySubscribers(getSubscribersFunction, 100); foreach (getSubscribersReply currentInMailrelay in subscribersInMailrelay) { int removed = crmIdsAndSubscriberIds.RemoveAll(idInCrm => currentInMailrelay.id == idInCrm.value.ToString()); if (removed == 0) { subscribersToRemoveFromMailrelay.Add(currentInMailrelay); } } UpdateReport <int> report = new UpdateReport <int>(); RemoveFromMailrelayGroup(report, subscribersToRemoveFromMailrelay, subscriber, groupId); AddToMailrelayGroup(dynamicsCrmConnection, report, subscriber, crmIdsAndSubscriberIds, groupId); return(report); }
private UpdateReport <int> UpdateMailrelayGroupFromList(DynamicsCrmConnection dynamicsCrmConnection, MarketingList marketingList) { int?id = marketingList.new_mailrelaygroupid; if (id.HasValue == false) { id = Subscriber.CreateGroup(_mailrelayConnection, $"crm_{marketingList.listname}", "crm kontrolleret gruppe"); marketingList.new_mailrelaygroupid = id; marketingList.UpdateMailrelaygroupid(dynamicsCrmConnection); } bool needsUpdate = marketingList.RecalculateMarketingListCheck(); if (needsUpdate == false) { return(new UpdateReport <int>()); } UpdateReport <int> report = AddOrRemoveMembersFromMailrelayGroup(dynamicsCrmConnection, marketingList, id.Value); marketingList.UpdateMailrelaycheck(dynamicsCrmConnection); return(report); }
public ActionResult Create(MarketingList model) { return(formSubmit(model, "Create")); }