示例#1
0
        public static ISearch CreateSearch(string regName, bool throwIfNoRegName)
        {
            if (!throwIfNoRegName && string.IsNullOrEmpty(regName))
            {
                return(null);
            }

            TkDebug.AssertArgumentNullOrEmpty(regName, "regName", null);

            try
            {
                TkDebug.ThrowIfNoGlobalVariable();
                return(PlugInFactoryManager.CreateInstance <ISearch>(REG_NAME, regName));
            }
            catch (Exception ex)
            {
                if (throwIfNoRegName)
                {
                    throw ex;
                }
                else
                {
                    return(null);
                }
            }
        }
        public RazorModuleTemplatePageMaker(string moduleTemplate, IPageData pageData)
            : base(pageData)
        {
            TkDebug.AssertArgumentNullOrEmpty(moduleTemplate, "moduleTemplate", null);

            fModuleTemplate = PlugInFactoryManager.CreateInstance <IModuleTemplate>(
                ModuleTemplatePlugInFactory.REG_NAME, moduleTemplate);
            if (fModuleTemplate.PageTemplates != null)
            {
                foreach (var item in fModuleTemplate.PageTemplates)
                {
                    RazorPageTemplatePageMaker pageMaker = new RazorPageTemplatePageMaker(item.PageTemplate, pageData)
                    {
                        ModelCreator = item.ModelCreator
                    };
                    Add(item.Function, pageMaker);
                    pageMaker.SetPageData += pageMaker_SetPageData;
                }
            }
            var pageMakers = fModuleTemplate.CreatePageMakers(pageData);

            if (pageMakers != null)
            {
                foreach (var item in pageMakers)
                {
                    if (item.PageMaker != null)
                    {
                        Add(item.Function, item.PageMaker);
                    }
                }
            }

            SetCallInfo(pageData);
        }
示例#3
0
        public object CreateObjectSource()
        {
            object source = PlugInFactoryManager.CreateInstance <object>(
                ObjectSourcePlugInFactory.REG_NAME, RegNameObjectSource);

            return(source);
        }
示例#4
0
        private static ICacheCreator CreateCache(string name)
        {
            ICacheCreator creator = PlugInFactoryManager.CreateInstance <ICacheCreator>(
                CacheCreatorPlugInFactory.REG_NAME, name);

            return(creator);
        }
示例#5
0
        public OutputData DoAction(IInputData input)
        {
            if (input.IsPost)
            {
                EasySearchInput esIn       = input.PostObject.Convert <EasySearchInput>();
                EasySearch      easySearch = PlugInFactoryManager.CreateInstance <EasySearch>(
                    EasySearchPlugInFactory.REG_NAME, esIn.RegName);
                using (easySearch as IDisposable)
                {
                    IEnumerable <IDecoderItem> result = easySearch.Search(esIn.Text, esIn.RefFields);

                    //EasySearchOutput output = new EasySearchOutput(result);
                    IDecoderItem[] resultArr;
                    if (result != null)
                    {
                        resultArr = result.ToArray();
                    }
                    else
                    {
                        resultArr = new CodeItem[0];
                    }
                    return(OutputData.CreateToolkitObject(resultArr));
                }
            }

            TkDebug.ThrowImpossibleCode(this);
            return(null);
        }
示例#6
0
        protected override FieldErrorInfo CheckError(IInputData inputData,
                                                     string value, int position, params object[] args)
        {
            DataRow row = GetPostRow(inputData, position);

            string hdFieldValue = row[HdFieldName].ToString();

            if (string.IsNullOrEmpty(value) && string.IsNullOrEmpty(hdFieldValue))
            {
                return(null);
            }

            EasySearch easySearch = PlugInFactoryManager.CreateInstance <EasySearch>(
                EasySearchPlugInFactory.REG_NAME, fRegName);
            string newValue           = value;
            EasySearchErrorType error = easySearch.CheckName(hdFieldValue, ref newValue, args);

            if (error == EasySearchErrorType.None)
            {
                if (newValue != value)
                {
                    if (string.IsNullOrEmpty(newValue))
                    {
                        row[Field.NickName] = DBNull.Value;
                    }
                    else
                    {
                        row[Field.NickName] = newValue;
                    }
                }
                return(null);
            }
            return(CreateErrorObject(error));
        }
示例#7
0
        protected override OutputData DoGet(IInputData input)
        {
            using (TableResolver resolver = PlugInFactoryManager.CreateInstance <TableResolver>(
                       ResolverPlugInFactory.REG_NAME, "TaxDocument", this))
            {
                MetaDataTableResolver metaResolver = resolver as MetaDataTableResolver;
                string conditionStr = string.Empty;
                if (metaResolver != null)
                {
                    Dictionary <string, string> query = new Dictionary <string, string>
                    {
                        { "Title", input.QueryString["Title"] }
                    };

                    IParamBuilder builder = metaResolver.GetQueryCondition(new QueryConditionObject(false, query));
                    if (builder != null)
                    {
                        QueryCondition condition = new QueryCondition(query, builder);
                        conditionStr = "&Condition=" + HttpUtility.UrlEncode(condition.ToEncodeString());
                    }
                }
                string url = WebUtil.ResolveUrl("~/Library/WebListXmlPage.tkx?Source=Cxcs/FaGui");
                return(OutputData.Create(url + conditionStr));
            }
        }
示例#8
0
        public object GetCacheItem(string cacheName, string key,
                                   params object[] args)
        {
            TkDebug.AssertArgumentNullOrEmpty(cacheName, "cacheName", this);
            TkDebug.AssertArgumentNullOrEmpty(key, "key", this);

            ICache cache = GetCache(cacheName);
            BaseCacheItemCreator creator = PlugInFactoryManager.CreateInstance <BaseCacheItemCreator>(
                CacheItemCreatorPlugInFactory.REG_NAME, cacheName);

            TkDebug.AssertNotNull(creator, $"{cacheName}不存在", this);

            if (cache == null)
            {
                ICacheCreator cacheCreator = creator.CacheCreator;
                if (cacheCreator == null)
                {
                    cacheCreator = creator.SupportDistributed ? DefaultDistributedCreator : DefaultCreator;
                }
                cache = cacheCreator.CreateCache(cacheName);
                CacheLock.WriteLockAction(() =>
                {
                    if (!fCaches.ContainsKey(cacheName))
                    {
                        fCaches.Add(cacheName, cache);
                        return(true);
                    }
                    return(false);
                });
            }
            return(cache.GetItem(creator.TransformCacheKey(key), creator, args));
        }
示例#9
0
        private Expression(string expressionString)
        {
            TkDebug.AssertArgumentNullOrEmpty(expressionString, "expressionString", null);

            fParser = ExpressionParser.ParseExpression(expressionString);
            TkDebug.ThrowIfNoGlobalVariable();
            PlugInFactoryManager factories    = BaseGlobalVariable.Current.FactoryManager;
            BasePlugInFactory    paramFactory = factories.GetCodeFactory(
                ParamExpressionPlugInFactory.REG_NAME);
            BasePlugInFactory exprFactory = factories.GetCodeFactory(
                ExpressionPlugInFactory.REG_NAME);

            fExpressions = new List <BaseExpressionItem>();

            foreach (string item in fParser.ParamArray)
            {
                string             firstChar = item[0].ToString();
                BaseExpressionItem expressionItem;
                if (paramFactory.Contains(firstChar))
                {
                    IParamExpression expression = paramFactory.CreateInstance <IParamExpression>(firstChar);
                    string           parameter  = item.Substring(1);
                    expressionItem = new ParamExpressionItem(expression, parameter);
                }
                else
                {
                    IExpression expression = exprFactory.CreateInstance <IExpression>(item);
                    expressionItem = new ExpressionItem(expression, item);
                }
                fExpressions.Add(expressionItem);
            }
        }
示例#10
0
        public bool Reply(ReceiveMessage message, out BaseSendMessage replyMessage)
        {
            IMessageReplyEngine subEngine = fEngineList[(int)message.MsgType];
            RuleAttribute       attr      = subEngine.Match(message);

            if (attr != null)
            {
                if (attr == RuleAttribute.Empty)
                {
                    replyMessage = null;
                }
                else
                {
                    IRule reply = PlugInFactoryManager.CreateInstance <IRule>(
                        RulePlugInFactory.REG_NAME, attr.RegName).Convert <IRule>();
                    replyMessage = reply.Reply(message);
                }
                return(true);
            }
            else
            {
                replyMessage = null;
                return(false);
            }
        }
示例#11
0
        public TableResolver CreateObject(params object[] args)
        {
            IDbDataSource source = ObjectUtil.ConfirmQueryObject <IDbDataSource>(this, args);

            return(PlugInFactoryManager.CreateInstance <TableResolver>(
                       ResolverPlugInFactory.REG_NAME, Content, source));
        }
示例#12
0
        public override OutputData DoAction(IInputData input)
        {
            CodeTable table = PlugInFactoryManager.CreateInstance <CodeTable>(
                CodeTablePlugInFactory.REG_NAME, RegName);

            table.Fill(DataSet, Context);
            return(OutputData.Create(DataSet));
        }
示例#13
0
        internal PlugInManagerData()
        {
            TkDebug.ThrowIfNoGlobalVariable();
            PlugInFactoryManager manager = BaseGlobalVariable.Current.FactoryManager;

            CodeFactories = CreateList(manager.CodeFactories);
            XmlConfigs    = CreateList(manager.XmlConfigs);
        }
示例#14
0
        public IModule Create(string source)
        {
            TkDebug.AssertArgumentNullOrEmpty(source, "source", this);

            ISource dataSource = PlugInFactoryManager.CreateInstance <ISource>(
                SourcePlugInFactory.REG_NAME, source);

            return(new SourceModuleXml(dataSource));
        }
示例#15
0
        public static BaseCacheItemCreator Create(string creatorName)
        {
            TkDebug.AssertArgumentNullOrEmpty(creatorName, "creatorName", null);

            BaseCacheItemCreator result = PlugInFactoryManager.CreateInstance <BaseCacheItemCreator>(
                CacheItemCreatorPlugInFactory.REG_NAME, creatorName);

            return(result);
        }
示例#16
0
        public IModule Create(string source)
        {
            TkDebug.AssertArgumentNullOrEmpty(source, "source", this);

            IModule module = PlugInFactoryManager.CreateInstance <IModule>(
                ModulePlugInFactory.REG_NAME, source);

            return(module);
        }
示例#17
0
        public bool ContainsKey(string key, string cacheName)
        {
            BaseCacheItemCreator creator = PlugInFactoryManager.CreateInstance <BaseCacheItemCreator>(
                CacheItemCreatorPlugInFactory.REG_NAME, cacheName);

            TkDebug.AssertNotNull(creator, $"{cacheName}不存在", this);
            ICacheDataConverter converter = GetDataConverter(creator);

            return(GetCacheInstance(key, converter, out _));
        }
示例#18
0
        public object Read(IInputData input, Stream stream)
        {
            object postObject = PlugInFactoryManager.CreateInstance <object>(
                RegClassPlugInFactory.REG_NAME, fRegClass);

            postObject.ReadFromStream("Json", ModelName, stream,
                                      fReadSettings, QName.ToolkitNoNS);

            return(postObject);
        }
示例#19
0
        private IModelCreator InternalCreateModelCreator(string pageTemplate)
        {
            string regName;

            if (fDefault.TryGetValue(pageTemplate, out regName))
            {
                return(PlugInFactoryManager.CreateInstance <IModelCreator>(
                           ModelCreatorPlugInFactory.REG_NAME, regName));
            }
            return(null);
        }
示例#20
0
        // checkbox下拉菜单选项值
        public static IEnumerable <IDecoderItem> GetDecoderItem(Tk5FieldInfoEx fieldInfo)
        {
            CodeTableContainer ctContainer = new CodeTableContainer();
            string             regName     = fieldInfo.Decoder.RegName;
            CodeTable          codeTable   = PlugInFactoryManager.CreateInstance <CodeTable>(
                CodeTablePlugInFactory.REG_NAME, regName);

            codeTable.Fill(ctContainer);
            IEnumerable <IDecoderItem> data = ctContainer[regName];

            return(data);
        }
示例#21
0
        public object ReadObject(string name)
        {
            DateTime   current   = DateTime.Now;
            DataRow    row       = TrySelectRowWithKeys(name);
            IRetriever retriever = PlugInFactoryManager.CreateInstance <IRetriever>(
                WeDataObjectPlugInFactory.REG_NAME, name);
            WeixinResult result;

            if (row == null)
            {
                result = retriever.RetrieveData();
                if (!result.IsError)
                {
                    row = NewRow();
                    row.BeginEdit();
                    row["DataKey"]    = row["DataPlug"] = name;
                    row["Data"]       = result.WriteJson();
                    row["CreateDate"] = current;
                    row["ValidDate"]  = current.AddDays(3);
                    row.EndEdit();
                    SetCommands(AdapterCommand.Insert);
                    UpdateDatabase();
                }
            }
            else
            {
                if (row["ValidDate"].Value <DateTime>() >= current)
                {
                    result = retriever.ReadData(row["Data"].ToString());
                }
                else
                {
                    result = retriever.RetrieveData();
                    if (!result.IsError)
                    {
                        row.BeginEdit();
                        row["Data"]      = result.WriteJson();
                        row["ValidDate"] = current.AddDays(3);
                        row.EndEdit();
                        SetCommands(AdapterCommand.Update);
                        UpdateDatabase();
                    }
                }
            }

            return(result);
        }
示例#22
0
        public CodeTableColumnReader(Tk5FieldInfoEx fieldInfo, TkDbContext context, int cellIndex)
            : base(fieldInfo, cellIndex)
        {
            CodeTableContainer ctContainer = new CodeTableContainer();
            string             regName     = fieldInfo.Decoder.RegName;
            CodeTable          codeTable   = PlugInFactoryManager.CreateInstance <CodeTable>(
                CodeTablePlugInFactory.REG_NAME, regName);

            codeTable.Fill(ctContainer, context);
            IEnumerable <IDecoderItem> data = ctContainer[regName];

            fCodeTable = new Dictionary <string, IDecoderItem>();
            foreach (var item in data)
            {
                fCodeTable[item.Name] = item;
            }
        }
示例#23
0
        public RegNameList <ListTabSheet> CreateTabSheet(IDbDataSource dataSource,
                                                         IFieldInfoIndexer indexer)
        {
            if (TabSheets != null)
            {
                RegNameList <ListTabSheet> result = new RegNameList <ListTabSheet>();
                foreach (var item in TabSheets)
                {
                    string sql = item.Condition == null ? null :
                                 Expression.Execute(item.Condition, dataSource);
                    IParamBuilder builder = string.IsNullOrEmpty(sql) ? null :
                                            SqlParamBuilder.CreateSql(sql);
                    result.Add(new ListTabSheet(item.Id,
                                                item.Caption.ToString(ObjectUtil.SysCulture), builder));
                }
                return(result);
            }
            if (CodeTabSheet != null)
            {
                RegNameList <ListTabSheet> result = new RegNameList <ListTabSheet>();
                if (CodeTabSheet.NeedAllTab)
                {
                    result.Add(new ListTabSheet("_All", "全部", null));
                }
                CodeTable table = PlugInFactoryManager.CreateInstance <CodeTable>(
                    CodeTablePlugInFactory.REG_NAME, CodeTabSheet.CodeRegName);
                YJC.Toolkit.Decoder.CodeTableContainer data = new YJC.Toolkit.Decoder.CodeTableContainer();
                table.Fill(data, dataSource.Context);

                var        tableData = data[CodeTabSheet.CodeRegName];
                IFieldInfo info      = indexer[CodeTabSheet.NickName];
                TkDebug.AssertNotNull(info, "", this);
                foreach (var item in tableData)
                {
                    IParamBuilder builder  = SqlParamBuilder.CreateEqualSql(dataSource.Context, info, item.Value);
                    var           tabSheet = new ListTabSheet(item.Value, item.Name, builder);
                    result.Add(tabSheet);
                }
                return(result);
            }

            return(null);
        }
示例#24
0
        protected override OutputData DoPost(IInputData input)
        {
            QueryConditionPostObject postObject = input.PostObject.Convert <QueryConditionPostObject>();
            TableResolver            resolver   = PlugInFactoryManager.CreateInstance <TableResolver>(
                ResolverPlugInFactory.REG_NAME, postObject.Resolver, this);

            using (resolver)
            {
                MetaDataTableResolver metaResolver = resolver as MetaDataTableResolver;
                if (metaResolver != null)
                {
                    IParamBuilder builder = metaResolver.GetQueryCondition(postObject.Query);
                    if (builder != null)
                    {
                        QueryCondition condition = new QueryCondition(postObject.Query.Condition, builder);
                        return(OutputData.Create(condition.ToEncodeString()));
                    }
                }
                return(OutputData.Create(string.Empty));
            }
        }
示例#25
0
        public override OutputData DoAction(IInputData input)
        {
            string     regName    = input.QueryString["RegName"];
            EasySearch easySearch = PlugInFactoryManager.CreateInstance <EasySearch>(
                EasySearchPlugInFactory.REG_NAME, regName);
            BaseDbEasySearch dbSearch = easySearch as BaseDbEasySearch;

            if (dbSearch != null)
            {
                if (!string.IsNullOrEmpty(dbSearch.ContextName))
                {
                    Context = DbContextUtil.CreateDbContext(dbSearch.ContextName);
                }
            }
            IConfigCreator <ITree> creator = easySearch as IConfigCreator <ITree>;

            TkDebug.AssertNotNull(creator, string.Format(ObjectUtil.SysCulture,
                                                         "类型为{0},注册名为{1}的EasySearch需要实现创建ITree的接口",
                                                         easySearch.GetType(), regName), easySearch);
            Tree = creator.CreateObject(this);

            return(base.DoAction(input));
        }
        public OutputData DoAction(IInputData input)
        {
            string     regName    = input.QueryString["RegName"];
            EasySearch easySearch = PlugInFactoryManager.CreateInstance <EasySearch>(
                EasySearchPlugInFactory.REG_NAME, regName);
            IConfigCreator <ITree> creator = easySearch as IConfigCreator <ITree>;
            string url;

            if (creator != null)
            {
                url = string.Format(ObjectUtil.SysCulture,
                                    "~/c/source/C/EasySearchTreeDialog?RegName={0}&InitValue={1}",
                                    regName, input.QueryString["InitValue"]);
            }
            else
            {
                url = string.Format(ObjectUtil.SysCulture,
                                    "~/c/source/C/EasySearchDialog?RegName={0}&RefValue={1}&Addition={2}",
                                    regName, input.QueryString["RefValue"], input.QueryString["Addition"]);
            }

            return(OutputData.Create(url));
        }
示例#27
0
 public EasySearchColumnReader(Tk5FieldInfoEx fieldInfo, int cellIndex)
     : base(fieldInfo, cellIndex)
 {
     fEasySearch = PlugInFactoryManager.CreateInstance <EasySearch>(
         EasySearchPlugInFactory.REG_NAME, fieldInfo.Decoder.RegName);
 }
示例#28
0
 public override ISource CreateSource(IPageData pageData)
 {
     return(PlugInFactoryManager.CreateInstance <ISource>(
                SourcePlugInFactory.REG_NAME, "ShowException"));
 }
        private static IPageTemplate CreatePageTemplate(string regName)
        {
            TkDebug.AssertArgumentNullOrEmpty(regName, "regName", null);

            return(PlugInFactoryManager.CreateInstance <IPageTemplate>(PageTemplatePlugInFactory.REG_NAME, regName));
        }
示例#30
0
 public T CreateObject(params object[] args)
 {
     return(PlugInFactoryManager.CreateInstance <T>(fFactoryName, Content));
 }