Thanks for the response. I was actually able to fix it by creating a custom module that manually creates a staging task when any document update happens. I've noticed sometimes randomly that staging tasks aren't created when a document is updated so I decided to extend and do it manually. Plus, it's nice to be able to generate a staging task any time that the save button is hit.
[assembly: RegisterModule(typeof(DocumentCategoryUpdateHandler))]
public class DocumentCategoryUpdateHandler : Module
{
public DocumentCategoryUpdateHandler() : base("DocumentUpdateEvents")
{
}
/// <summary>
/// Assigns the custom staging task EventArg methods of this class to the event delegates of
/// the userinfo types for before and after the objects get changed.
/// </summary>
protected override void OnInit()
{
base.OnInit();
DocumentEvents.Update.After += DocumentUpdate_After;
}
/// <summary>
/// Fires after the document is updated and manually creates staging task
/// so that all fields get staged with the document
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DocumentUpdate_After(object sender, DocumentEventArgs e)
{
// there is a glitch where sometimes the content category does not
// create a staging task when the document is saved.
// this code manually creates a staging task when a document is saved
// to ensure that we always get the document update
try
{
var document = DocumentHelper.GetDocuments()
.WhereEquals("DocumentID", e.Node.DocumentID)
.TopN(1)
.First();
DocumentSynchronizationHelper.LogDocumentChange(document, TaskTypeEnum.UpdateDocument, e.TreeProvider);
}
catch (Exception ex)
{
}
}
}
This way I don't need to add that page.Update()
into every custom control. This will do it everywhere in the app at once.