public FieldDigest[] GetFieldDigests(string formId) { lock (StaticCache.Gate) { FieldDigest[] fieldDigests = null; if (!StaticCache.FieldDigests.TryGetValue(formId, out fieldDigests)) { StaticCache.FieldDigests[formId] = fieldDigests = ProjectMetadataProvider.GetFieldDigestsAsync(formId).Result; } return(fieldDigests); } }
public Page GetPageMetadataByPageId(string formId, int pageId) { lock (StaticCache.Gate) { Dictionary <int, Page> pageMetadatas = null; if (!StaticCache.PageMetadata.TryGetValue(formId, out pageMetadatas)) { StaticCache.PageMetadata[formId] = pageMetadatas = new Dictionary <int, Page>(); } Page pageMetadata = null; if (!pageMetadatas.TryGetValue(pageId, out pageMetadata)) { pageMetadatas[pageId] = pageMetadata = ProjectMetadataProvider.GetPageMetadataAsync(formId, pageId).Result; } return(pageMetadata); } }
public bool UpdateMetadataIfNecessary(string formId, bool isDraftMode, bool isShareable, int dataAccessRuleId) { var formDigest = GetFormDigest(formId); var mustUpdate = formDigest.IsShareable != isShareable || formDigest.IsDraftMode != isDraftMode || formDigest.DataAccessRuleId != dataAccessRuleId; if (mustUpdate) { lock (StaticCache.Gate) { var formIds = GetFormIdHierarchyByRootFormId(formId); if (formIds.Length > 0) { var isSuccessful = ProjectMetadataProvider.UpdateFormModeSettings(formIds, isShareable, isDraftMode, dataAccessRuleId).Result; // if (isSuccessful) // { StaticCache.FormDigests = null; // } } } } return(mustUpdate); }