/// <summary>
 /// Updates connected records info (RecordId and SchemaUId fields) after campaign has been saved.
 /// </summary>
 public void OnAfterSave()
 {
     try {
         var modifiedElements = GetModifiedLandingElements();
         UpdateConnectedLandingInfo(modifiedElements);
     } catch (Exception ex) {
         CampaignLogger.ErrorFormat(ElementHandlerName, ex, CampaignSchema.EntityId);
         throw;
     }
 }
Exemplo n.º 2
0
 public void OnExecutionTerminate()
 {
     try {
         UpdateCampaignAudienceCounters();
     } catch (Exception ex) {
         string message = GetLczStringValue(ElementHandlerName, "OnExecutionTerminateException");
         CampaignLogger.ErrorFormat(message, ex, CampaignSchema.EntityId);
         throw;
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Contains logic for exclude audience elements on campaign stop.
 /// Actualizes campaign participants' statuses for audience on exclude from campaign items.
 /// If actualized participants are found updates campaign reached the goal counter.
 /// </summary>
 public void OnStop()
 {
     try {
         ActualizeParticipantStatuses();
     } catch (Exception ex) {
         string message = GetLczStringValue(elementHandlerName, "OnStopException");
         CampaignLogger.ErrorFormat(message, ex, CampaignSchema.EntityId);
         throw;
     }
 }
 public void OnCopy()
 {
     try {
         var allElements = GetLandingElements(CampaignSchema);
         UpdateConnectedLandingInfo(allElements);
     } catch (Exception ex) {
         CampaignLogger.ErrorFormat(ElementHandlerName, ex, CampaignSchema.EntityId);
         throw;
     }
 }
 public void OnCopy()
 {
     try {
         CreateAndBindContactFolders();
     } catch (Exception ex) {
         string message = GetLczStringValue(TransitionElementHandlerName, "OnCopyException");
         CampaignLogger.ErrorFormat(message, ex, CampaignSchema.EntityId);
         throw;
     }
 }
Exemplo n.º 6
0
 public void OnCopy()
 {
     try {
         RebindEmailHyperlinkIds();
     } catch (Exception ex) {
         string message = GetLczStringValue(ElementHandlerName, "OnCopyException");
         CampaignLogger.ErrorFormat(message, ex, CampaignSchema.EntityId);
         throw;
     }
 }
 public void OnBeforeSave()
 {
     try {
         ActualizeContactFolders();
         RemoveUnusedContactFolders();
     } catch (Exception ex) {
         string message = GetLczStringValue(TransitionElementHandlerName, "OnBeforeSaveException");
         CampaignLogger.ErrorFormat(message, ex, CampaignSchema.EntityId);
         throw;
     }
 }
 private bool UpdateEntity(Entity entity, Guid contactId, Guid participantId,
                           CmpgnUpdObjElEntity entitySettings)
 {
     try {
         FillEntityColumns(entity, contactId, entitySettings.Columns, entitySettings.RestrictedColumns);
         entity.UseAdminRights = false;
         return(entity.Save(false));
     } catch (Exception ex) {
         CampaignLogger.ErrorFormat(nameof(CampaignAddObjectFlowElement), ex, entity.SchemaName,
                                    $"Id = {entity.PrimaryColumnValue} ParticipantId = {participantId}");
         return(false);
     }
 }
        private bool CreateNewEntity(CmpgnAddObjElEntity entitySettings, Guid contactId, Guid participantId)
        {
            var newEntity = GetNewEntity();

            FillContactColumnValue(ref newEntity, entitySettings.ContactColumnPath, contactId);
            FillEntityColumns(newEntity, contactId, entitySettings.Columns, entitySettings.RestrictedColumns);
            try {
                return(newEntity.Save(false));
            } catch (Exception ex) {
                CampaignLogger.ErrorFormat(nameof(CampaignAddObjectFlowElement), ex, newEntity.SchemaName,
                                           $"ParticipantId = {participantId}");
            }
            return(false);
        }
Exemplo n.º 10
0
 /// <summary>
 /// Validates Exclude Audience elements on campaign validation. Searches folders with no conditions.
 /// </summary>
 public void OnValidate()
 {
     try {
         var elements           = GetAudienceElements(CampaignSchema);
         var elementsWithFolder = elements.Where(x => !x.FolderId.IsEmpty());
         if (!elementsWithFolder.Any())
         {
             return;
         }
         var folders = LoadFoldersInfo(elementsWithFolder);
         CheckFoldersExistense(elementsWithFolder, folders);
         var    foldersWithNoFilter = FindFoldersWithNoFilter(folders);
         string message             = GetLczStringValue(elementHandlerName, "FolderWithNoConditionError");
         WriteValidationInfo(elements, foldersWithNoFilter, message, CampaignValidationInfoLevel.Error);
     } catch (Exception ex) {
         string message = GetLczStringValue(elementHandlerName, "OnValidateException");
         CampaignLogger.ErrorFormat(message, ex, CampaignSchema.EntityId);
         throw;
     }
 }