Ejemplo n.º 1
0
        }       //	beforeSave

        /// <summary>
        ///After Save. Insert - create tree
        /// </summary>
        /// <param name="newRecord">insert</param>
        /// <param name="success">success</param>
        /// <returns>true if inserted</returns>
        protected override bool AfterSave(bool newRecord, bool success)
        {
            if (!success)
            {
                return(success);
            }
            if (newRecord)
            {
                StringBuilder sb = new StringBuilder(
                    "INSERT INTO AD_TreeNodeCMT "
                    + "(AD_Client_ID,AD_Org_ID, IsActive,Created,CreatedBy,Updated,UpdatedBy, "
                    + "AD_Tree_ID, Node_ID, Parent_ID, SeqNo) " + "VALUES (")
                                   .Append(GetAD_Client_ID()).Append(
                    ",0, 'Y', SysDate, 0, SysDate, 0,").Append(
                    GetAD_Tree_ID()).Append(",").Append(Get_ID()).Append(
                    ", 0, 999)");
                int no = DataBase.DB.ExecuteQuery(sb.ToString(), null, Get_TrxName());
                if (no > 0)
                {
                    log.Fine("#" + no + " - TreeType=CMT");
                }
                else
                {
                    log.Warning("#" + no + " - TreeType=CMT");
                }
                return(no > 0);
            }
            if (!newRecord)
            {
                VAdvantage.CM.CacheHandler thisHandler = new VAdvantage.CM.CacheHandler(
                    VAdvantage.CM.CacheHandler.ConvertJNPURLToCacheURL(GetCtx()
                                                                       .GetContext(System.Net.Dns.GetHostName())), log, GetCtx(),
                    Get_TrxName());
                if (!IsInclude())
                {
                    // Clean Main Templates on a single level.
                    thisHandler.CleanTemplate(this.Get_ID());
                    // Check the elements in the Stage Area
                    MCStage[] theseStages = MCStage.GetStagesByTemplate(GetWebProject(), Get_ID());
                    for (int i = 0; i < theseStages.Length; i++)
                    {
                        theseStages[i].CheckElements();
                    }
                }
                else
                {
                    // Since we not know which main templates we will clean up all!
                    thisHandler.EmptyTemplate();
                }
            }
            return(success);
        }       // afterSave
Ejemplo n.º 2
0
        } // setStage

        /// <summary>
        /// Update Elements in Container from Stage
        /// </summary>
        /// <param name="project">project</param>
        /// <param name="stage">stage</param>
        /// <param name="trxName">trx</param>
        protected void UpdateElements(MWebProject project, MCStage stage,
                                      Trx trxName)
        {
            vcon = new VConnection();
            VAdvantage.CM.CacheHandler thisHandler = new VAdvantage.CM.CacheHandler(
                VAdvantage.CM.CacheHandler.ConvertJNPURLToCacheURL(vcon.Apps_host), log, GetCtx(),
                Get_Trx());
            // First update the new ones...
            int[] tableKeys = X_CM_CStage_Element.GetAllIDs("CM_CStage_Element",
                                                            "CM_CStage_ID=" + stage.Get_ID(), trxName);
            if (tableKeys != null && tableKeys.Length > 0)
            {
                for (int i = 0; i < tableKeys.Length; i++)
                {
                    X_CM_CStage_Element thisStageElement = new X_CM_CStage_Element(
                        project.GetCtx(), tableKeys[i], trxName);
                    int[] thisContainerElementKeys = X_CM_Container_Element
                                                     .GetAllIDs("CM_Container_Element", "CM_Container_ID="
                                                                + stage.Get_ID() + " AND Name LIKE '"
                                                                + thisStageElement.GetName() + "'", trxName);
                    X_CM_Container_Element thisContainerElement;
                    if (thisContainerElementKeys != null &&
                        thisContainerElementKeys.Length > 0)
                    {
                        thisContainerElement = new X_CM_Container_Element(project
                                                                          .GetCtx(), thisContainerElementKeys[0], trxName);
                    }
                    else
                    {
                        thisContainerElement = new X_CM_Container_Element(project
                                                                          .GetCtx(), 0, trxName);
                    }
                    thisContainerElement.SetCM_Container_ID(stage.Get_ID());
                    X_CM_CStage_Element stageElement = new X_CM_CStage_Element(
                        project.GetCtx(), tableKeys[i], trxName);
                    thisContainerElement.SetName(stageElement.GetName());
                    thisContainerElement.SetDescription(stageElement.GetDescription());
                    thisContainerElement.SetHelp(stageElement.GetHelp());
                    thisContainerElement.SetIsActive(stageElement.IsActive());
                    thisContainerElement.SetIsValid(stageElement.IsValid());
                    String contentHTML = thisStageElement.GetContentHTML();
                    thisContainerElement.SetContentHTML(contentHTML);
                    // PO.copyValues(new
                    // X_CM_CStage_Element(project.getCtx(),tableKeys[i],trxName),
                    // thisContainerElement);
                    thisContainerElement.Save(trxName);
                    // Remove Container from cache
                    thisHandler.CleanContainerElement(thisContainerElement
                                                      .Get_ID());
                }
            }
            // Now we are checking the existing ones to delete the unneeded ones...
            tableKeys = X_CM_Container_Element.GetAllIDs("CM_Container_Element",
                                                         "CM_Container_ID=" + stage.Get_ID(), trxName);
            if (tableKeys != null && tableKeys.Length > 0)
            {
                for (int i = 0; i < tableKeys.Length; i++)
                {
                    X_CM_Container_Element thisContainerElement = new X_CM_Container_Element(
                        project.GetCtx(), tableKeys[i], trxName);
                    int[] thisCStageElementKeys = X_CM_CStage_Element
                                                  .GetAllIDs("CM_CStage_Element", "CM_CStage_ID="
                                                             + stage.Get_ID() + " AND Name LIKE '"
                                                             + thisContainerElement.GetName() + "'", trxName);
                    // If we cannot find a representative in the Stage we will delete from production
                    if (thisCStageElementKeys == null ||
                        thisCStageElementKeys.Length < 1)
                    {
                        // First delete it from cache, then delete the record itself
                        thisHandler.CleanContainerElement(thisContainerElement
                                                          .Get_ID());
                        thisContainerElement.Delete(true);
                    }
                }
            }
        }