예제 #1
0
        private string GetSnippet(OnSaveUpdateInfo info)
        {
            return(string.Format(
                       @"{{ // {0}
                    {1}
                }}

                ",
                       info.RuleName, info.CsCodeSnippet.Trim()));
        }
        private string GetSnippet(OnSaveUpdateInfo info)
        {
            return(string.Format(
                       @"{{ // {2}
                    {3}
                }}

                ",
                       info.SaveMethod.Entity.Module.Name,
                       info.SaveMethod.Entity.Name,
                       info.RuleName,
                       info.CsCodeSnippet.Trim()));
        }
        private void InjectClearCacheOnSave(List <IConceptInfo> newConcepts, string entityName, string loadOldPropertyValue, string snippetClearCache)
        {
            var commonModule = new ModuleInfo {
                Name = "Common"
            };
            var entity = new EntityInfo {
                Module = commonModule, Name = entityName
            };
            var usesAuthorizationDataCache = new RepositoryUsesInfo
            {
                DataStructure = entity,
                PropertyType  = "Rhetos.Dom.DefaultConcepts.AuthorizationDataCache, Rhetos.Dom.DefaultConcepts",
                PropertyName  = "_authorizationDataCache"
            };
            var saveMethod = new SaveMethodInfo {
                Entity = entity
            };

            newConcepts.AddRange(new IConceptInfo[] { usesAuthorizationDataCache, saveMethod });

            if (loadOldPropertyValue != null)
            {
                var loadOldItems = new LoadOldItemsInfo {
                    SaveMethod = saveMethod
                };
                var loadOldItemsProperty = new LoadOldItemsTakeInfo {
                    LoadOldItems = loadOldItems, Path = loadOldPropertyValue
                };
                newConcepts.AddRange(new IConceptInfo[] { loadOldItems, loadOldItemsProperty });
            }

            var clearCache = new OnSaveUpdateInfo
            {
                SaveMethod    = saveMethod,
                RuleName      = "ClearAuthenticationCache",
                CsCodeSnippet = snippetClearCache
            };

            newConcepts.AddRange(new IConceptInfo[] { clearCache });
        }