public void BtnDeleteConfirm_Click_DeletedItemsExist_ExceptionOnLoadGrid() { //Arrange InitilizeTestObjects(); var errorMessage = ""; var btnDeleteConfirm = privateObject.GetFieldOrProperty("btnDeleteConfirm") as Button; btnDeleteConfirm.CommandArgument = "1"; ShimUser.IsChannelAdministratorUser = (p1) => { return(true); }; ShimCampaignItem.GetByCampaignIDInt32UserBoolean = (p1, p2, p3) => { var listCI = new List <CampaignItem>(); var item = new CampaignItem { CampaignID = p1, IsDeleted = true, CampaignItemID = p1 }; listCI.Add(item); return(listCI); }; ShimCampaignItemBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) => { return(new List <CampaignItemBlast>()); }; ShimCampaignItemTestBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) => { return(new List <CampaignItemTestBlast>());; }; ShimCampaign.DeleteInt32User = (p1, p2) => { }; ShimManageCampaigns.AllInstances.LoadGrid = (p1) => { throw new ECNException(new List <ECNError> { new ECNError(Enums.Entity.Customer, Enums.Method.Save, "Test Exception") }); }; ShimManageCampaigns.AllInstances.setECNErrorECNException = (p1, p2) => { errorMessage = p2.ErrorList[0].ErrorMessage; }; // Act privateObject.Invoke("btnDeleteConfirm_Click", new object[] { null, EventArgs.Empty }); //Assert errorMessage.ShouldBe("Test Exception"); }
/// <summary> /// Load all campaign items from the database. /// </summary> /// <returns></returns> private CampaignItemSet LoadCampaignItemSet() { var campaignItemSet = new CampaignItemSet(); // Get the collection from the ORM data layer var metaData = new LinqMetaData(); IQueryable <CampaignItemEntity> campaignItems = from c in metaData.CampaignItem select c; var campaignItemCollection = ((ILLBLGenProQuery)campaignItems).Execute <CampaignItemCollection>(); // Fill the entity set from the data collection if (campaignItemCollection.Count > 0) { foreach (var campaignItemEntity in campaignItemCollection) { var campaignItem = new CampaignItem(campaignItemEntity); campaignItemSet.Add(campaignItem); } } // Return the entity set return(campaignItemSet); }
public void SaveCampaignItem_smartsegment_WhenValidCampaignItem_SavesRelatedEntities() { // Arrange CampaignItem campaignItem = GetCampaignItem(); var parentCI = GetCampaignItem(); parentCI.SendTime = parentCI.SendTime.Value.AddDays(-1); var campaignId = 1; SetPageControls(); SetGvSelectedGroupsGrid(); SetGvSuppressedGroupsGrid(); SetFakesForSaveCampaignItem(); // Act var isSaved = _testEntity.saveCampaignItem_smartsegment(campaignItem, parentCI, campaignId); // Assert isSaved.ShouldSatisfyAllConditions( () => isSaved.ShouldBeTrue(), () => _isBlastCreated.ShouldBeTrue(), () => _isBlastLitRefDeleted.ShouldBeTrue(), () => _isCampaignItemBlastSaved.ShouldBeTrue(), () => _isCampaignItemSaved.ShouldBeTrue(), () => _isCampaignSuppressionDeleted.ShouldBeTrue(), () => _isCampaignSuppressionSaved.ShouldBeTrue(), () => _savedCampaignItemBlast.ShouldNotBeNull(), () => _savedCampaignItem.ShouldNotBeNull(), () => _savedCampaignSuppresseion.ShouldNotBeNull(), () => _deletedBlastRefId.Count.ShouldBe(1), () => _deletedBlastRefId.ShouldContain(-1), () => _deletedSuppressionCamapaignId.ShouldBe(-1)); }
/// <summary> /// Get the campaign item. The cache is not bypassed by default. /// </summary> /// <param name="campaignItemId">The campaign item identifier</param> /// <param name="noCache">Bypass the cache</param> /// <param name="refreshCache">Force refresh the cache</param> /// <returns>A campaign item</returns> public CampaignItem GetCampaignItem(int campaignItemId, bool noCache, bool refreshCache) { // If no cache the load and return a entity from the database if (noCache && !refreshCache) { return(LoadCampaign(campaignItemId)); } CampaignItem campaignItem; string cacheKey = CampaignItem.GetCacheKeyById(campaignItemId); if (!CacheManagerProvider.GetCacheManagerInstance().Contains <CampaignItem>(cacheKey) || refreshCache) { // Load the entity from the database campaignItem = LoadCampaign(campaignItemId); if (campaignItem != null) { // Add the entity to the cache by reading caching parameters from the configuration CacheManagerProvider.GetCacheManagerInstance().Insert(cacheKey, campaignItem, ConfigurationManager.GetCacheExpirationByType( campaignItem.GetType())); } } else { campaignItem = CacheManagerProvider.GetCacheManagerInstance().Get <CampaignItem>(cacheKey); } return(campaignItem); }
public Campaign AddCampaignItems(Campaign campaign, Definition campaignItemDefinition, params string[] names) { if (campaign.CampaignItems == null) { campaign.CampaignItems = new List <CampaignItem>(); } foreach (var name in names) { CampaignItem campaignItem = _campaignItems.Value.SingleOrDefault(x => x.Name == name && x.Campaign == campaign) ?? new CampaignItem { AllowNextCampaignItems = true, // Allow additional discounts Campaign = campaign, CampaignItemProperties = null, Definition = campaignItemDefinition, Enabled = true, Name = name, }; campaignItem.Deleted = false; campaign.CampaignItems.Add(campaignItem); } Save(campaign); return(campaign); }
/// <summary> /// Gets the number of pending connection request based on existing request that don't have a connector plus the ones in the CampaignConnectionItem's EntitySet /// </summary> /// <param name="campaignConnectionItem">The campaign connection item.</param> /// <param name="connectorPerson">The connector person.</param> /// <returns></returns> public static int GetPendingConnectionCount(CampaignItem campaignConnectionItem, Person connectorPerson) { var rockContext = new RockContext(); var entitySetService = new EntitySetService(rockContext); var entitySetId = GetEntitySet(campaignConnectionItem); var pendingPersonPrimaryCampusIdList = entitySetService.GetEntityQuery <Person>(entitySetId) .Select(a => new { a.PrimaryCampusId }) .ToList(); int pendingCount = 0; var connectorCampusIds = GetConnectorCampusIds(campaignConnectionItem, connectorPerson); foreach (var pendingPerson in pendingPersonPrimaryCampusIdList) { int?entitySetPersonPrimaryCampusId = pendingPerson.PrimaryCampusId; if (IsValidCampus(connectorCampusIds, entitySetPersonPrimaryCampusId)) { pendingCount++; } } pendingCount += CampaignConnectionHelper.GetConnectionRequestsWithoutConnectorQuery(rockContext, campaignConnectionItem, connectorPerson).Count(); return(pendingCount); }
/// <summary> /// Gets the connector campus ids, if the connectorPerson is not a member of the connecter groups for the opportunity, this wil return an empty lkist /// </summary> /// <param name="selectedCampaignItem">The selected campaign item.</param> /// <param name="connectorPerson">The connector person.</param> /// <returns></returns> public static List <int?> GetConnectorCampusIds(CampaignItem selectedCampaignItem, Person connectorPerson) { if (connectorPerson == null) { // if no connector person is specified, we can return list that just an "All" (null) campus var result = new List <int?>(); result.Add(( int? )null); return(result); } var rockContext = new RockContext(); List <int?> connectorCampusIds; var opportunityService = new ConnectionOpportunityService(rockContext); IQueryable <ConnectionOpportunityConnectorGroup> opportunityConnecterGroupQuery = opportunityService.Queryable() .Where(a => a.IsActive && a.Guid == selectedCampaignItem.OpportunityGuid) .SelectMany(a => a.ConnectionOpportunityConnectorGroups); int connectorPersonId = connectorPerson.Id; // get the campusid of the connector's connector group) of this opportunity // If the person is a member in more than one of opportunity groups, get all the campus ids that the connector can work with connectorCampusIds = opportunityConnecterGroupQuery.Where(a => a.ConnectorGroup.Members.Any(m => m.GroupMemberStatus == GroupMemberStatus.Active && m.PersonId == connectorPersonId)).Select(a => a.CampusId).Distinct().ToList(); // NOTE: if connectorPerson isn't in a ConnectionOpportunityConnectorGroup, there will be no campus ids. The AddCampaignRequests block shouldn't of let them request connections for this campaign return(connectorCampusIds); }
private void CreateCampaignItemShim() { ShimCampaignItem.GetByCampaignItemID_NoAccessCheckInt32Boolean = (x, y) => { var campaignItemBlastFilterObject = CreateInstance(typeof(CampaignItemBlastFilter)); var campaignItemBlastFilterList = new List <CampaignItemBlastFilter> { campaignItemBlastFilterObject }; var campaignItemBlastObject = CreateInstanceWithValues(typeof(CampaignItemBlast), new { Filters = campaignItemBlastFilterList }); var CampaignItemSuppressionObject = CreateInstance(typeof(CampaignItemSuppression)); _campaignItemObject = CreateInstanceWithValues(typeof(CampaignItem), new { BlastList = new List <CampaignItemBlast>() { campaignItemBlastObject, campaignItemBlastObject }, SuppressionList = new List <CampaignItemSuppression> { CampaignItemSuppressionObject }, }); _campaignItemObject.IgnoreSuppression = (bool?)false; return(_campaignItemObject); }; }
public void Page_Load_WhenUserHasNotAccess_BtnActiveOpensShouldNotBeVisible() { // Arrange CreateShims(); InitializeSession(); Mock <HttpResponseBase> response; Mock <IReportViewer> reportViewer; var open = CreateOpens(out response, out reportViewer); Initialize(open); Shimopens.AllInstances.getBlastID = (x) => Zero; KM.Platform.Fakes.ShimUser.HasAccessUserEnumsServicesEnumsServiceFeaturesEnumsAccess = (a, b, c, d) => false; Shimopens.AllInstances.getCampaignItemID = (x) => One; var campaignItem = new CampaignItem(); campaignItem.CampaignItemType = DummyLayout; ShimCampaignItem.GetByCampaignItemID_NoAccessCheckInt32Boolean = (x, y) => campaignItem; var methodArgs = new object[] { null, EventArgs.Empty }; // Act typeof(opens).CallMethod(MethodPageLoad, methodArgs, open); // Assert var btnActiveOpens = ReflectionHelper.GetField(open, "btnActiveOpens") as LinkButton; open.ShouldSatisfyAllConditions( () => btnActiveOpens.ShouldNotBeNull(), () => btnActiveOpens.Visible.ShouldBeFalse()); }
public void Save_WhenCheckLosingCampaignChecked_SavesRelatedEntities(CampaignItem campaignItem) { // Arrange const string deliveredOrOpened = "TestString"; InitializePageAndControls(); SetupFakesIfEmptyWinnerType(deliveredOrOpened); SetFakesForSaveMethod(); SetPageViewState(); Get <CheckBox>(_privateControlObj, ChkAorB).Checked = true; Get <CheckBox>(_privateControlObj, ChkLosingCampaign).Checked = true; ShimCampaignItem.GetByCampaignItemID_NoAccessCheckInt32Boolean = (id, child) => campaignItem; // Act var isSaved = _control.Save(); // Assert isSaved.ShouldSatisfyAllConditions( () => isSaved.ShouldBeTrue(), () => _isBlastCreated.ShouldBeTrue(), () => _isCampaignItemSaved.ShouldBeTrue(), () => _isSampleSaved.ShouldBeTrue(), () => _deletedCampaignItemBlastID.ShouldBe(campaignItem.BlastList.Any() ? campaignItem.BlastList[0].CampaignItemBlastID : 0), () => _deletedCampaignItemId.ShouldBe(0), () => _savedCampaignItemBlast.ShouldNotBeNull(), () => _savedCampaignItems.ShouldNotBeEmpty(), () => _savedCampaignItems.Count.ShouldBe(2), () => _savedCampaignItemSuppression.ShouldNotBeNull(), () => _savedCampaignItemSuppression.ShouldNotBeEmpty(), () => _savedCampaignItemSuppression.Count.ShouldBe(1), () => _savedSample.ShouldNotBeNull()); }
public void SaveCampaignItem_smartsegment_WhenCampaignItemNullAndGridRowCountGreaterThanOne_LogsECNException() { // Arrange CampaignItem campaignItem = null; var parentCI = new CampaignItem(); var campaignId = 1; SetPageControls(); var gvSelectedGroups = (GridView)_privateTestObject.GetFieldOrProperty(GvSelectedGroupsPropertyName); gvSelectedGroups.DataSource = new List <Group> { new Group { GroupID = 1, GroupName = SampleGroup }, new Group { GroupID = 2, GroupName = SampleGroup } }; gvSelectedGroups.DataBind(); // Act var isSaved = _testEntity.saveCampaignItem_smartsegment(campaignItem, parentCI, campaignId); // Assert isSaved.ShouldSatisfyAllConditions( () => isSaved.ShouldBeFalse(), () => Get <PlaceHolder>(_privateGroupExplorerObj, PhErrorControl).Visible.ShouldBeTrue(), () => Get <Label>(_privateGroupExplorerObj, LblErrorMessageControl).Text. ShouldContain($"The parent CampaignItem is a multi-group blast. Please select only one group.")); }
public override void Update(CampaignItem item) { if (item == null) { throw new ArgumentNullException("item"); } var dbItem = new Product(); dbItem.ProductId = item.Product.Id; this.context.AttachTo("Products", dbItem); dbItem.IsFeatured = item.IsFeatured; if (item.DiscountPrice == null) { dbItem.DiscountedUnitPrice = null; } else { dbItem.DiscountedUnitPrice = item.DiscountPrice.Amount; } this.context.SaveChanges(); }
public void BtnDeleteConfirm_Click_CannotDeleteException() { //Arrange InitilizeTestObjects(); var errorMessage = ""; var btnDeleteConfirm = privateObject.GetFieldOrProperty("btnDeleteConfirm") as Button; btnDeleteConfirm.CommandArgument = "1"; ShimUser.IsChannelAdministratorUser = (p1) => { return(true); }; ShimCampaignItem.GetByCampaignIDInt32UserBoolean = (p1, p2, p3) => { var listCI = new List <CampaignItem>(); var item = new CampaignItem { CampaignID = p1, IsDeleted = false, CampaignItemID = p1 }; listCI.Add(item); return(listCI); }; ShimCampaignItemBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) => { var listCIB = new List <CampaignItemBlast>(); var blastItem = new CampaignItemBlast { CampaignItemID = p1, BlastID = p1 }; var blast = new BlastAB(); blastItem.Blast = blast; listCIB.Add(blastItem); return(listCIB); }; ShimManageCampaigns.AllInstances.throwECNExceptionString = (p1, p2) => { errorMessage = p2; }; // Act privateObject.Invoke("btnDeleteConfirm_Click", new object[] { null, EventArgs.Empty }); //Assert errorMessage.ShouldBe("Cannot delete Campaign because it contains Campaign Items"); }
private void SetFakesForSaveCampaignItem() { _isBlastLitRefDeleted = false; _deletedBlastRefId = new List <int>(); _savedCampaignItem = null; _isCampaignItemSaved = false; _savedCampaignItemBlast = null; _isCampaignItemBlastSaved = false; _isCampaignSuppressionDeleted = false; _isCampaignSuppressionSaved = false; _savedCampaignSuppresseion = new List <CampaignItemSuppression>(); _isBlastCreated = false; var viewState = Get <StateBag>(_privateTestObject, ViewStateProperty); viewState.Add(KeyMyNodeID, "1"); ShimBlastScheduler.AllInstances.SetupScheduleString = (_, __) => new BlastSetupInfo { BlastScheduleID = 1, SendNowIsAmount = true, SendNowAmount = 1, SendTime = DateTime.UtcNow, }; ShimCustomer.HasProductFeatureInt32EnumsServicesEnumsServiceFeatures = (_, __, ___) => true; ShimCampaignItem.SaveCampaignItemUser = (ci, user) => { _savedCampaignItem = ci; _isCampaignItemSaved = true; return(_savedCampaignItem.CampaignItemID); }; ShimCampaignItemBlastRefBlast.DeleteInt32UserBoolean = (crefId, user, b) => { _deletedBlastRefId.Add(crefId); _isBlastLitRefDeleted = true; }; ShimCampaignItemBlast.SaveInt32ListOfCampaignItemBlastUser = (cid, cbList, user) => { _savedCampaignItemBlast = cbList[0]; _isCampaignItemBlastSaved = true; }; ShimCampaignItemSuppression.DeleteInt32UserBoolean = (csid, user, b) => { _deletedSuppressionCamapaignId = csid; _isCampaignSuppressionDeleted = true; }; ShimCampaignItemSuppression.SaveCampaignItemSuppressionUser = (csuppression, user) => { _savedCampaignSuppresseion.Add(csuppression); _isCampaignSuppressionSaved = true; return(csuppression.CampaignItemID.Value); }; ShimBlast.CreateBlastsFromCampaignItemInt32UserBoolean = (cid, user, b) => { _isBlastCreated = true; }; }
private void InitilizeTestObject() { var wizardPreview = new WizardPreview_AB(); wizardPreview.Page = new Page(); _testObject = new PrivateObject(wizardPreview); _campaignItemObject = new CampaignItem(); _dummySocialMedia = new CampaignItemSocialMedia(); }
/// <summary> /// Create a new campaign item object and persist it into the database. /// </summary> /// <param name="campaignItem">The campaign item object</param> public CampaignItem AddCampaignItem(CampaignItem campaignItem) { // Persist the object into the database campaignItem.Save(); // Return the new object with the new identifier (AUTO) return(campaignItem); }
private static void CreateAward(CampaignItem campaignItem) { var percentOffOrderTotalAward = new PercentOffOrderTotalAward(); percentOffOrderTotalAward.PercentOff = 10m; percentOffOrderTotalAward.CampaignItem = campaignItem; percentOffOrderTotalAward.Name = "10% off"; percentOffOrderTotalAward.Save(); }
public void GvCampaigns_RowCommand_Delete_PreviouslyDeleted_ECNException() { //Arrange InitilizeTestObjects(); var eventArgs = new GridViewCommandEventArgs(null, new CommandEventArgs("deletecampaign", "1")); var errorMessage = ""; ShimManageCampaigns.AllInstances.LoadGrid = (p1) => { throw new ECNException(new List <ECNError> { new ECNError(Enums.Entity.Customer, Enums.Method.Save, "Test Exception") }); }; ShimManageCampaigns.AllInstances.setECNErrorECNException = (p1, p2) => { errorMessage = p2.ErrorList[0].ErrorMessage; }; ShimCampaign.DeleteInt32User = (p1, p2) => { }; ShimUser.IsChannelAdministratorUser = (p1) => { return(true); }; ShimCampaignItem.GetByCampaignIDInt32UserBoolean = (p1, p2, p3) => { var listCI = new List <CampaignItem>(); var item = new CampaignItem { CampaignID = p1, IsDeleted = true, CampaignItemID = p1 }; listCI.Add(item); return(listCI); }; ShimCampaignItemBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) => { var listCIB = new List <CampaignItemBlast>(); return(listCIB); }; // Act privateObject.Invoke("gvCampaigns_RowCommand", new object[] { null, eventArgs }); //Assert errorMessage.ShouldBe("Test Exception"); }
public void GvCampaigns_RowCommand_Delete_CannotDeleteException() { //Arrange InitilizeTestObjects(); var eventArgs = new GridViewCommandEventArgs(null, new CommandEventArgs("deletecampaign", "1")); var errorMessage = ""; ShimUser.IsChannelAdministratorUser = (p1) => { return(true); }; ShimCampaignItem.GetByCampaignIDInt32UserBoolean = (p1, p2, p3) => { var listCI = new List <CampaignItem>(); var item = new CampaignItem { CampaignID = p1, IsDeleted = false, CampaignItemID = p1 }; listCI.Add(item); return(listCI); }; ShimCampaignItemBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) => { var listCIB = new List <CampaignItemBlast>(); var blastItem = new CampaignItemBlast { CampaignItemID = p1, BlastID = p1 }; var blast = new BlastAB(); blastItem.Blast = blast; listCIB.Add(blastItem); return(listCIB); }; ShimManageCampaigns.AllInstances.throwECNExceptionString = (p1, p2) => { errorMessage = p2; }; // Act privateObject.Invoke("gvCampaigns_RowCommand", new object[] { null, eventArgs }); //Assert errorMessage.ShouldBe("Cannot delete Campaign because it contains Campaign Items"); }
/// <summary> /// Get the connector based on entity Item and campaign configuration. /// </summary> /// <param name="campaignItem">The campaign item.</param> /// <param name="connectionOpportunity">The connection opportunity.</param> /// <param name="eligibleConnectors">The eligible connectors.</param> /// <param name="entityItemPersonAlias">The entity set item person alias.</param> /// <param name="rockContext">The rock context.</param> /// <returns></returns> private int?GetConnector(CampaignItem campaignItem, ConnectionOpportunity connectionOpportunity, List <ConnectionConnector> eligibleConnectors, PersonAlias entityItemPersonAlias, RockContext rockContext) { int?connectorPersonId = null; var dayofWeek = RockDateTime.Now.DayOfWeek; var connectionRequestService = new ConnectionRequestService(rockContext); var defaultCampus = entityItemPersonAlias.Person.GetCampus(); if (campaignItem.PreferPreviousConnector) { var personIds = eligibleConnectors .Where(a => a.Limit - a.Current > 0 && (!a.DaysOfWeek.Any() || a.DaysOfWeek.Contains(dayofWeek)) && (!a.CampusId.HasValue || (a.CampusId.HasValue && defaultCampus != null && defaultCampus.Id == a.CampusId.Value))) .Select(a => a.PersonId) .ToList(); if (personIds.Any()) { var person = connectionRequestService .Queryable() .Where(a => a.ConnectionOpportunityId == connectionOpportunity.Id && a.PersonAlias.PersonId == entityItemPersonAlias.PersonId && a.ConnectionState == ConnectionState.Connected && a.ConnectorPersonAliasId.HasValue && personIds.Contains(a.ConnectorPersonAlias.PersonId) && a.ModifiedDateTime.HasValue) .OrderByDescending(a => a.ModifiedDateTime) .Select(a => a.ConnectorPersonAlias.Person) .FirstOrDefault(); if (person != null) { connectorPersonId = person.Id; } } } if (!connectorPersonId.HasValue) { var eligibleConnector = eligibleConnectors .Where(a => a.Limit - a.Current > 0 && (!a.DaysOfWeek.Any() || a.DaysOfWeek.Contains(dayofWeek)) && (!a.CampusId.HasValue || (a.CampusId.HasValue && defaultCampus != null && defaultCampus.Id == a.CampusId.Value))) .OrderBy(a => a.Current) // order from least assigned to most assigned .ThenBy(x => Guid.NewGuid()) // and then randomize .FirstOrDefault(); if (eligibleConnector != null) { connectorPersonId = eligibleConnector.PersonId; } } return(connectorPersonId); }
public void ProductIsCorrect([Frozen] Product expectedProduct, CampaignItem sut) { // Fixture setup // Exercise system Product result = sut.Product; // Verify outcome Assert.Equal(expectedProduct, result); // Teardown }
public void IsFeaturedIsCorrect([Frozen] bool expectedResult, CampaignItem sut) { // Fixture setup // Exercise system bool result = sut.IsFeatured; // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void DiscountPriceIsCorrect([Frozen] Money expectedPrice, CampaignItem sut) { // Fixture setup // Exercise system Money result = sut.DiscountPrice; // Verify outcome Assert.Equal(expectedPrice, result); // Teardown }
public async Task <BaseResult> CreateOrUpdate(CampaignItem campaignItem) { var campaign = campaignItem.ToCampaign(); var rs = new BaseResult() { Result = Result.Success }; return(campaign.Id <= 0 ? await Create(campaign) : await Update(campaign)); }
private void CreateAssociationToNewCampaign(IOrganizationService service, List <List> listAssociate, Campaign campaign) { foreach (List list in listAssociate) { CampaignItem campaignItem = new CampaignItem(); campaignItem.EntityType = list.LogicalName; campaignItem.EntityId = list.Id; campaignItem.CampaignId = campaign.ToEntityReference(); service.Create(campaignItem); } }
/// <summary> /// Handles the Click event of the btnSave control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void btnSave_Click(object sender, EventArgs e) { var campaignConnectionGuid = hfCampaignConnectionGuid.Value.AsGuid(); CampaignItem campaignConnection = null; if (campaignConnectionGuid == Guid.Empty) { campaignConnection = new CampaignItem() { Guid = Guid.NewGuid() }; } else { campaignConnection = CampaignConnectionHelper.GetCampaignConfiguration(campaignConnectionGuid); } campaignConnection.Name = tbName.Text; campaignConnection.IsActive = cbIsActive.Checked; campaignConnection.ConnectionTypeGuid = ddlConnectionType.SelectedValue.AsGuid(); campaignConnection.RequestCommentsLavaTemplate = ceCommentLavaTemplate.Text; campaignConnection.OpportunityGuid = ddlConnectionOpportunity.SelectedValue.AsGuid(); var dataViewGuid = new DataViewService(new RockContext()).GetGuid(dvRequestor.SelectedValue.AsInteger()); if (dataViewGuid.HasValue) { campaignConnection.DataViewGuid = dataViewGuid.Value; } campaignConnection.FamilyLimits = rblFamilyLimits.SelectedValueAsEnum <FamilyLimits>(FamilyLimits.Everyone); campaignConnection.CreateConnectionRequestOption = rblCreateConnectionRequests.SelectedValueAsEnum <CreateConnectionRequestOptions>(CreateConnectionRequestOptions.AsNeeded); if (gpOptOutGroup.GroupId.HasValue) { campaignConnection.OptOutGroupGuid = new GroupService(new RockContext()).GetGuid(gpOptOutGroup.GroupId.Value); } campaignConnection.DailyLimitAssigned = nbDailyLimit.Text.AsIntegerOrNull(); campaignConnection.DaysBetweenConnection = nbNumberOfDays.Text.AsInteger(); campaignConnection.PreferPreviousConnector = cbPreferPreviousConnector.Checked; // Save what we have so far, and it will be saved again once the EntitySetId is updated when the thread completes. CampaignConnectionHelper.AddOrUpdateCampaignConfiguration(campaignConnection.Guid, campaignConnection); // Only update the EntitySet if the campaign is active if (campaignConnection.IsActive) { // Run this thread in the background since it takes several seconds to calculate. Task.Run(() => { campaignConnection.EntitySetId = CampaignConnectionHelper.GetEntitySet(campaignConnection); CampaignConnectionHelper.AddOrUpdateCampaignConfiguration(campaignConnection.Guid, campaignConnection); }); } NavigateToParentPage(); }
public void BtnDeleteConfirm_Click_DeletedItemsExist_DeleteSuccess() { //Arrange InitilizeTestObjects(); var loadGrid = false; var btnDeleteConfirm = privateObject.GetFieldOrProperty("btnDeleteConfirm") as Button; btnDeleteConfirm.CommandArgument = "1"; ShimUser.IsChannelAdministratorUser = (p1) => { return(true); }; ShimCampaignItem.GetByCampaignIDInt32UserBoolean = (p1, p2, p3) => { var listCI = new List <CampaignItem>(); var item = new CampaignItem { CampaignID = p1, IsDeleted = true, CampaignItemID = p1 }; listCI.Add(item); return(listCI); }; ShimCampaignItemBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) => { return(new List <CampaignItemBlast>()); }; ShimCampaignItemTestBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) => { return(new List <CampaignItemTestBlast>());; }; ShimCampaign.DeleteInt32User = (p1, p2) => { }; ShimManageCampaigns.AllInstances.LoadGrid = (p1) => { loadGrid = true; }; // Act privateObject.Invoke("btnDeleteConfirm_Click", new object[] { null, EventArgs.Empty }); //Assert loadGrid.ShouldBeTrue(); }
protected virtual void Page_Load(object sender, EventArgs e) { if (Tracker.CurrentVisit.IsCampaignIdNull()) { this.Visible = false; return; } var campaignId = Tracker.CurrentVisit.CampaignId; Model = (CampaignItem)Tracker.DefinitionItems.Campaigns[campaignId].InnerItem; }
public void BtnMoveCampaign_Click_SystemException() { //Arrange InitilizeTestObjects(); var errorMessage = ""; var btnMoveCampaign = privateObject.GetFieldOrProperty("btnMoveCampaign") as Button; btnMoveCampaign.CommandArgument = "1"; var ddlCampaigns = privateObject.GetFieldOrProperty("ddlCampaigns") as DropDownList; ddlCampaigns.Items.Add("1"); ddlCampaigns.SelectedValue = "1"; ShimCampaignItem.GetByCampaignIDInt32UserBoolean = (p1, p2, p3) => { var listCI = new List <CampaignItem>(); var item = new CampaignItem { CampaignID = p1, IsDeleted = true, CampaignItemID = p1 }; listCI.Add(item); return(listCI); }; ShimCampaignItem.MoveCampaignItemUser = (p1, p2) => { throw new Exception("Test Exception"); }; ShimManageCampaigns.AllInstances.throwECNExceptionString = (p1, p2) => { errorMessage = p2; }; EntityFake.ShimApplicationLog.LogCriticalErrorExceptionStringInt32StringInt32Int32 = (ex, w, e, desc, t, y) => { return(1); }; // Act privateObject.Invoke("btnMoveCampaign_Click", new object[] { null, EventArgs.Empty }); //Assert errorMessage.ShouldBe("An error has occurred"); }
private void AddListMembersAsync(IPluginExecutionContext context, IOrganizationService service, ITracingService tracingService) { CampaignItem campaignItem = (context.InputParameters["Target"] as Entity).ToEntity <CampaignItem>(); CrmEarlyBound.Campaign campaign = service.Retrieve(campaignItem.CampaignId.LogicalName, campaignItem.CampaignId.Id, new ColumnSet("name", "find_mailchimp_integration_count", "find_createcampaign")).ToEntity <CrmEarlyBound.Campaign>(); if (campaignItem.EntityType.Equals("list") && campaign.find_createcampaign == 0) { campaign.find_mailchimp_integration_count++; campaign.find_createcampaign++; service.Update(campaign); } }
protected void Page_Load(object sender, EventArgs e) { //THIS IS WHERE WE HIDE/SHOW COOKIE MESSAGE -N.B. User Session initialised and set in Header //Interorgate the request 'Do Not Track' settings. HttpContext objContext = HttpContext.Current; bool headerDoNotTrack = false; if (!string.IsNullOrEmpty(objContext.Request.Headers["DNT"])) { headerDoNotTrack = objContext.Request.Headers["DNT"] == "1" ? true : false; } User objUser = new User(); //READ/SET COOKIE OPTIONS if (Session["sess_User"] == null) { newSession = true; } else { objUser = (User)Session["sess_User"]; } //If this has not been set -we need to show the cookie message if (!headerDoNotTrack) { //Check if User Session object has been set -i.e. not first page load if (!newSession) { //Have the cookie preferences been set? if (objUser.Preferences == null) { //Show Cookie Preferences ribbon CookieRibbon cookieDeclaration = Page.LoadControl("~/layouts/virginactive/CookieRibbon.ascx") as CookieRibbon; RibbonPh.Controls.Add(cookieDeclaration); string classNames = BodyTag.Attributes["class"] != null ? BodyTag.Attributes["class"] : ""; BodyTag.Attributes.Add("class", classNames.Length > 0 ? classNames + " cookie-show" : "cookie-show"); } } else { //Seesion info not set (as it's a new session) -Check the 'Cookie Preferences Cookie' exists if (string.IsNullOrEmpty(CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies))) { //User has NOT stored settings //Show Cookie Preferences ribbon CookieRibbon cookieDeclaration = Page.LoadControl("~/layouts/virginactive/CookieRibbon.ascx") as CookieRibbon; RibbonPh.Controls.Add(cookieDeclaration); string classNames = BodyTag.Attributes["class"] != null ? BodyTag.Attributes["class"] : ""; BodyTag.Attributes.Add("class", classNames.Length > 0 ? classNames + " cookie-show" : "cookie-show"); } } } //READ/SET COOKIE OPTIONS if (newSession) { //New Session //Check if cookie preferences session cookie exists if (!string.IsNullOrEmpty(CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies))) { Preferences preferences = new Preferences(); preferences.MarketingCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies) == "Y" ? true : false; preferences.MetricsCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.MetricsCookies) == "Y" ? true : false; preferences.PersonalisedCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.PersonalisedCookies) == "Y" ? true : false; preferences.SocialCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.SocialCookies) == "Y" ? true : false; //Store to session objUser.Preferences = preferences; } else { if (headerDoNotTrack) { //Set Preferences in User Session -default to N Preferences preferences = new Preferences(); preferences.MarketingCookies = false; preferences.MetricsCookies = false; preferences.PersonalisedCookies = false; preferences.SocialCookies = false; objUser.Preferences = preferences; //Set Cookie Preferences Cookie CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MarketingCookies, "N"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MetricsCookies, "N"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.PersonalisedCookies, "N"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.SocialCookies, "N"); //Delete Existing Personalisation Cookie CookieHelper.DeleteCookie(); } } } //DEFAULT PREFERENCES IF NOT SET if (objUser.Preferences == null) { //Set preferences in User Session -default to Y Preferences preferences = new Preferences(); preferences.MarketingCookies = true; preferences.MetricsCookies = true; preferences.PersonalisedCookies = true; preferences.SocialCookies = true; //Store to session objUser.Preferences = preferences; //Set Cookie Preferences Cookie -default to permission allowed CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MarketingCookies, "Y"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MetricsCookies, "Y"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.PersonalisedCookies, "Y"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.SocialCookies, "Y"); } //Save session Session["sess_User"] = objUser; CampaignItem cmp = new CampaignItem(Sitecore.Context.Item); if (!String.IsNullOrEmpty(cmp.CampaignBase.Termsandconditionslink.Raw)) { privacy = new PageSummaryItem(cmp.CampaignBase.Termsandconditionslink.Item); } Item currentItem = Sitecore.Context.Item; PageSummaryItem item = new PageSummaryItem(currentItem); string canonicalTag = item.GetCanonicalTag(); string metaDescription = item.GetMetaDescription(); //Add page title //todo: add club name string title = Translate.Text("Virgin Active"); string browserPageTitle = item.GetPageTitle(); string section = Sitecore.Web.WebUtil.GetQueryString("section"); if (!String.IsNullOrEmpty(section)) { PageSummaryItem listing = null; if (currentItem.TemplateID.ToString() == ClassesListingItem.TemplateId) { //Get classes listing browser page title listing = Sitecore.Context.Database.GetItem(ItemPaths.SharedClasses + "/" + section); } else if (currentItem.TemplateID.ToString() == FacilitiesListingItem.TemplateId) { //Get facility listing browser page title listing = Sitecore.Context.Database.GetItem(ItemPaths.SharedFacilities + "/" + section); } if (listing != null) { browserPageTitle = listing.GetPageTitle(); canonicalTag = String.IsNullOrEmpty(Request.QueryString["section"]) ? listing.GetCanonicalTag() : listing.GetCanonicalTag(Request.QueryString["section"]); metaDescription = listing.GetMetaDescription(); } } if (!String.IsNullOrEmpty(browserPageTitle)) { title = String.Format("{0} | {1}", browserPageTitle, title); } Page.Title = title; //Add canonical Page.Header.Controls.Add(new Literal() { Text = canonicalTag }); //Add meta description Page.Header.Controls.Add(new Literal() { Text = metaDescription }); //Load OpenTag container -depending on cookie preferences if (!newSession) { //Add dynamic content to header HtmlHead head = (HtmlHead)Page.Header; if (objUser.Preferences != null) { if (objUser.Preferences.MarketingCookies && objUser.Preferences.MetricsCookies) { //Have permission to load in OpenTag head.Controls.Add(new LiteralControl(OpenTagHelper.OpenTagVirginActiveUK)); } } //LOAD IN SOCIAL OPEN GRAPH -if cookie preference allows } //Get club details if (!Page.IsPostBack) { Item landingItem = Sitecore.Context.Item.Axes.SelectSingleItem(String.Format("ancestor-or-self::*[@@tid='{0}']", ClubMicrositeLandingItem.TemplateId)); if (landingItem == null) { return; } ClubMicrositeLandingItem club = new ClubMicrositeLandingItem(landingItem); ClubItem linkClub = new ClubItem(club.Club.Item); } }