Exemplo n.º 1
0
 public static IList <PageInfo> GetPageInfos(string langCode, EntitiesAlias entity, bool forceUpdate = false)
 {
     if (!PageInfos.ContainsKey(langCode))
     {
         PageInfos.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <PageInfo> >());
     }
     if (!PageInfos[langCode].ContainsKey(entity))
     {
         PageInfos[langCode].GetOrAdd(entity, _commands.GetPageInfos(langCode, entity));
     }
     else if (!PageInfos[langCode][entity].Any() || forceUpdate)
     {
         PageInfos[langCode].AddOrUpdate(entity, _commands.GetPageInfos(langCode, entity));
     }
     return(PageInfos[langCode][entity]);
 }
Exemplo n.º 2
0
 /// <summary>
 ///     To start English version of it on Application start
 /// </summary>
 /// <param name="langCode">1 for EN</param>
 public static void Initialize(string langCode)
 {
     Tables = new Dictionary <EntitiesAlias, TableReference>();
     RibbonMenus.GetOrAdd(langCode, new List <RibbonMenu>());
     IdRefLangNames.GetOrAdd(langCode, new ConcurrentDictionary <int, IList <IdRefLangName> >());
     PageInfos.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <PageInfo> >());
     Operations.GetOrAdd(langCode, new ConcurrentDictionary <LookupEnums, IList <Operation> >());
     DisplayMessages.GetOrAdd(langCode, new ConcurrentDictionary <string, DisplayMessage>());
     ColumnSettings.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <ViewModels.ColumnSetting> >());
     GridColumnSettings.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <ViewModels.ColumnSetting> >());
     ValidationRegExpressions.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <ValidationRegEx> >());
     MasterTables.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, object>());
     ConditionalOperators.GetOrAdd(langCode, new List <ConditionalOperator>());
     SysSettings.GetOrAdd(langCode, new SysSetting());
     BusinessConfiguration.GetOrAdd(langCode, new BusinessConfiguration());
 }
Exemplo n.º 3
0
        /// <summary>
        ///     To start English version of it on Application start
        /// </summary>
        /// <param name="langCode">1 for EN</param>
        public static void Initialize(string langCode)
        {
            RibbonMenus.GetOrAdd(langCode, new List <RibbonMenu>());
            IdRefLangNames.GetOrAdd(langCode, new ConcurrentDictionary <int, IList <IdRefLangName> >());
            PageInfos.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <PageInfo> >());
            Operations.GetOrAdd(langCode, new ConcurrentDictionary <LookupEnums, IList <Operation> >());
            DisplayMessages.GetOrAdd(langCode, new ConcurrentDictionary <string, DisplayMessage>());
            ColumnSettings.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <ColumnSetting> >());
            GridColumnSettings.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <ColumnSetting> >());
            ValidationRegExpressions.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, IList <ValidationRegEx> >());
            MasterTables.GetOrAdd(langCode, new ConcurrentDictionary <EntitiesAlias, object>());
            ConditionalOperators.GetOrAdd(langCode, new List <ConditionalOperator>());
            BusinessConfiguration.GetOrAdd(langCode, new BusinessConfiguration());
            List <Task> tasks = new List <Task>();

            tasks.Add(Task.Factory.StartNew(() =>
            {
                GetRibbonMenus(langCode);
                GetTables();
                InitializerOperations(langCode);
                GetSystemSettings(langCode);
            }));

            if (tasks.Count > 0)
            {
                Task.WaitAll(tasks.ToArray());
            }

            #region Nav Cache Commented Code

            ////string username = M4PBusinessContext.ComponentSettings.NavAPIUserName;
            ////string password = M4PBusinessContext.ComponentSettings.NavAPIPassword;
            ////string serviceURL = M4PBusinessContext.ComponentSettings.NavAPIUrl;
            ////NAVOrderItemResponse.GetOrAdd(langCode, new NAVOrderItemResponse());
            ////DimensionValues.GetOrAdd(langCode, new NavSalesOrderDimensionResponse());
            ////GetNavSalesOrderDimensionValues(langCode, username, password, serviceURL);
            ////CachedNavSalesOrder.GetOrAdd(langCode, new NavSalesOrderPostedInvoiceResponse());
            ////GetCachedNavSalesOrderValues(langCode, username, password, serviceURL);
            ////CachedNavPurchaseOrder.GetOrAdd(langCode, new NavPurchaseOrderPostedInvoiceResponse());
            ////GetCachedNavPurchaseOrderValues(langCode, username, password, serviceURL);
            ////CachedNavSalesLine.GetOrAdd(langCode, new NavSalesOrderItemResponse());
            ////GetCachedNavSalesOrderItemValues(langCode, username, password, serviceURL);
            ////CachedNavPurchaseLine.GetOrAdd(langCode, new NavPurchaseOrderItemResponse());
            ////GetCachedNavPurchaseOrderItemValues(langCode, username, password, serviceURL);

            #endregion Nav Cache Commented Code
        }
        public List <T> Pageing <T>(IQueryable <T> infoList, PageInfos pageInfo)
        {
            if (pageInfo == null)
            {
                pageInfo = new PageInfos {
                    Index = 1, Size = 10, TotalRow = 0, CountTotal = true
                };
            }

            if (infoList != null && pageInfo != null)
            {
                if (pageInfo.CountTotal)
                {
                    pageInfo.TotalRow = infoList.Count();
                }

                long infoCount = pageInfo.TotalRow;

                //特殊不需要分页的情况

                if (pageInfo.Size == int.MaxValue || pageInfo.Size == -1)
                {
                    return(infoList.ToList());
                }

                int index = pageInfo.Index < 1 ? 1 : pageInfo.Index;
                if (((pageInfo.Index - 1) * pageInfo.Size) > infoCount)
                {
                    index = (int)infoCount / pageInfo.Size;
                }
                else if (((pageInfo.Index - 1) * pageInfo.Size) == infoCount)
                {
                    index = pageInfo.Index - 1;
                }
                index    = index < 1 ? 1 : index;
                infoList = infoList.Skip((index - 1) * pageInfo.Size).Take(pageInfo.Size);
                return(infoList.ToList());
            }
            else
            {
                return(new List <T>());
            }
        }