public IEnumerable <InstitutionReceiverModel> GetTranscriptReceiverList()
        {
            // Get the transcript Receivers from Redis Cache or via API and Cache it
            var cacheKey = _cache.CreateKey("TranscriptReceiverList");
            IEnumerable <InstitutionReceiverModel> transcriptReceiverList = new List <InstitutionReceiverModel>();

            try
            {
                transcriptReceiverList = _cache.Get <IEnumerable <InstitutionReceiverModel> >(cacheKey);
            }
            catch (Exception ex)
            {
                throw new CredentialsReceiverListFetchException(ex.Message);
            }

            if (transcriptReceiverList.IsNotNullOrEmpty())
            {
                return(transcriptReceiverList);
            }

            transcriptReceiverList = _transcriptProviderAPIService.GetTranscriptReceiverList();

            if (!transcriptReceiverList.IsNotNullOrEmpty())
            {
                throw new CredentialsReceiverListFetchException("Receiver empty list from Credentials using restSharp");
            }

            _cache.Set(cacheKey, transcriptReceiverList);
            return(transcriptReceiverList);
        }
        public void IsNotNullOrEmpty()
        {
            var @this = new List <string>();

            var value1 = @this.IsNotNullOrEmpty();

            @this.Add("Fizz");
            var value2 = @this.IsNotNullOrEmpty();

            @this = null;
            var value3 = @this.IsNotNullOrEmpty();

            Assert.IsFalse(value1);
            Assert.IsTrue(value2);
            Assert.IsFalse(value3);
        }
Exemple #3
0
        public void IsNotNullOrEmpty_ListEmpty()
        {
            List <int> obj        = new List <int>();
            var        validacion = obj.IsNotNullOrEmpty();

            Assert.IsFalse(validacion);
        }
Exemple #4
0
        public static List <Dictionary <string, string> > ExtractMetaTags(HtmlDocument document)
        {
            var metaTags = document.DocumentNode.SelectNodes("//meta");

            if (metaTags != null)
            {
                var tags = new List <Dictionary <string, string> >();
                foreach (var t in metaTags)
                {
                    var tagComponents = new Dictionary <string, string>();
                    foreach (var item in t.Attributes)
                    {
                        tagComponents.Add(item.Name, item.Value);
                    }
                    if (tagComponents.IsNotNullOrEmpty())
                    {
                        tags.Add(tagComponents);
                    }
                }

                if (tags.IsNotNullOrEmpty())
                {
                    return(tags);
                }
            }
            return(null);
        }
Exemple #5
0
        public List <DDCI_INFO> GetCIRefernceByPartNumber(ManufacReportModel manuModelnull)
        {
            List <PRD_CIREF> lstEntity   = null;
            List <DDCI_INFO> lstCiEntity = null;

            try
            {
                if (!DB.IsNotNullOrEmpty())
                {
                    return(null);
                }
                if (manuModelnull.IsNotNullOrEmpty() && manuModelnull.PartNo.IsNotNullOrEmpty())
                {
                    lstEntity = (from row in DB.PRD_CIREF
                                 where row.PART_NO == manuModelnull.PartNo
                                 select row).ToList <PRD_CIREF>();
                    if (lstEntity.IsNotNullOrEmpty() && lstEntity.Count > 0)
                    {
                        lstCiEntity = (from row in DB.DDCI_INFO
                                       where row.CI_REFERENCE == lstEntity[0].CI_REF
                                       select row).ToList <DDCI_INFO>();
                    }
                }
            }
            catch (Exception ex)
            {
                ex.LogException();
            }

            return(lstCiEntity);
        }
Exemple #6
0
        public List <PRD_MAST> GetPartNumber(PRD_MAST paramEntity = null)
        {
            List <PRD_MAST> lstEntity = null;

            try
            {
                if (!DB.IsNotNullOrEmpty())
                {
                    return(lstEntity);
                }
                if (paramEntity.IsNotNullOrEmpty() && paramEntity.IDPK.IsNotNullOrEmpty())
                {
                    lstEntity = (from row in DB.PRD_MAST
                                 where (Convert.ToBoolean(Convert.ToInt16(row.DELETE_FLAG)) == false || row.DELETE_FLAG == null) && row.IDPK == paramEntity.IDPK
                                 select row).ToList <PRD_MAST>();
                }
                else
                {
                    lstEntity = (from row in DB.PRD_MAST
                                 where (Convert.ToBoolean(Convert.ToInt16(row.DELETE_FLAG)) == false || row.DELETE_FLAG == null)
                                 select row).ToList <PRD_MAST>();
                }
                if (lstEntity.IsNotNullOrEmpty())
                {
                    lstEntity = lstEntity.GroupBy(row => row.PART_NO).Select(row => row.First()).Distinct <PRD_MAST>().OrderBy(row => row.PART_NO).ToList <PRD_MAST>();
                }
            }
            catch (Exception ex)
            {
                throw ex.LogException();
            }

            return(lstEntity);
        }
Exemple #7
0
        public List <PCCS> GetFeature(PCCS paramEntity = null)
        {
            List <PCCS> lstEntity = null;

            try
            {
                if (!DB.IsNotNullOrEmpty())
                {
                    return(lstEntity);
                }
                if (paramEntity.IsNotNullOrEmpty() && paramEntity.PART_NO.IsNotNullOrEmpty())
                {
                    lstEntity = (from row in DB.PCCS
                                 where (Convert.ToBoolean(Convert.ToInt16(row.DELETE_FLAG)) == false || row.DELETE_FLAG == null) && row.PART_NO == paramEntity.PART_NO
                                 select row).ToList <PCCS>();
                }
                else
                {
                    lstEntity = (from row in DB.PCCS
                                 where (Convert.ToBoolean(Convert.ToInt16(row.DELETE_FLAG)) == false || row.DELETE_FLAG == null)
                                 select row).Distinct <PCCS>().ToList <PCCS>();
                }
                if (lstEntity.IsNotNullOrEmpty())
                {
                    lstEntity = lstEntity.GroupBy(row => row.FEATURE).Select(row => row.First()).OrderBy(row => row.FEATURE).Distinct <PCCS>().ToList <PCCS>();
                }
            }
            catch (Exception ex)
            {
                throw ex.LogException();
            }

            return(lstEntity);
        }
Exemple #8
0
 public async Task DeleteCategories(List <Guid> categoriesToBeDeleted)
 {
     if (categoriesToBeDeleted.IsNotNullOrEmpty())
     {
         _categoryRepository.RemoveAll(DomainObjectSpecifications.IdIn <Category>(categoriesToBeDeleted));
     }
 }
Exemple #9
0
        private void CustomerChanged()
        {
            if (_customerSelectedRow.IsNotNullOrEmpty())
            {
                DataTable dt = bll.GetCustomerDetails(new DDCUST_MAST()
                {
                    CUST_CODE = -99999.00m
                }).ToDataTable <DDCUST_MAST>().Clone();
                dt.ImportRow(_customerSelectedRow.Row);

                List <DDCUST_MAST> lstEntity = (from row in dt.AsEnumerable()
                                                select new DDCUST_MAST()
                {
                    CUST_CODE = row.Field <string>("CUST_CODE").ToIntValue(),
                    CUST_NAME = row.Field <string>("CUST_NAME"),
                    ROWID = row.Field <string>("ROWID").ToGuidValue(),
                    DELETE_FLAG = row.Field <string>("DELETE_FLAG").ToBooleanAsString(),
                }).ToList <DDCUST_MAST>();
                if (lstEntity.IsNotNullOrEmpty() && lstEntity.Count > 0)
                {
                    MandatoryFields.CUST_NAME = lstEntity[0].CUST_NAME;
                    DDCUST_MAST = lstEntity[0];
                }
            }
        }
        /// <summary>
        /// 判断功能名,在同一级别中是否存在
        /// </summary>
        public APIResponseEntity <bool> IsExistFunctionNameInSameLevel(APIRequestEntity <XCLCMS.Data.WebAPIEntity.RequestEntity.SysFunction.IsExistFunctionNameInSameLevelEntity> request)
        {
            var response = new APIResponseEntity <bool>();

            response.IsSuccess = true;
            response.Message   = "该功能名可以使用!";

            XCLCMS.Data.Model.SysFunction model = null;

            if (request.Body.SysFunctionID > 0)
            {
                model = sysFunctionBLL.GetModel(request.Body.SysFunctionID);
                if (null != model)
                {
                    if (string.Equals(request.Body.FunctionName, model.FunctionName, StringComparison.OrdinalIgnoreCase))
                    {
                        return(response);
                    }
                }
            }

            List <XCLCMS.Data.Model.SysFunction> lst = sysFunctionBLL.GetChildListByID(request.Body.ParentID);

            if (lst.IsNotNullOrEmpty())
            {
                if (lst.Exists(k => string.Equals(k.FunctionName, request.Body.FunctionName, StringComparison.OrdinalIgnoreCase)))
                {
                    response.IsSuccess = false;
                    response.Message   = "该功能名在当前层级中已存在!";
                }
            }

            return(response);
        }
Exemple #11
0
        public DataTable GetAllPartCodeAndDescription()
        {
            DataTable     dataTable   = new DataTable();
            List <string> columnNames = null;

            try
            {
                string tableName = "prd_mast";
                columnNames = new List <string>();
                columnNames.Add("part_no");
                columnNames.Add("part_desc");
                dataTable = GetTableData(tableName, null, null, columnNames);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (columnNames.IsNotNullOrEmpty())
                {
                    columnNames.Clear();
                }
                columnNames = null;
            }
            return(dataTable);
        }
        /// <summary>
        /// Userd to get Raw Materials
        /// </summary>
        /// <param name="rawMaterialDescription">Code of the Raw Material</param>
        /// <returns>List of Raw Material</returns>
        public DDRM_MAST GetRawMaterialByCode(string rawMaterialCode = "")
        {
            List <DDRM_MAST> lstRawMaterial = null;
            DDRM_MAST        ddrm_mast      = null;

            try
            {
                if (!DB.IsNotNullOrEmpty())
                {
                    return(ddrm_mast);
                }
                if (rawMaterialCode.IsNotNullOrEmpty())
                {
                    lstRawMaterial = (from row in DB.DDRM_MAST
                                      where (Convert.ToBoolean(Convert.ToInt16(row.DELETE_FLAG)) == false || row.DELETE_FLAG == false) && row.RM_CODE == rawMaterialCode
                                      select row).ToList <DDRM_MAST>();
                }
                else
                {
                    lstRawMaterial = (from row in DB.DDRM_MAST
                                      where (Convert.ToBoolean(Convert.ToInt16(row.DELETE_FLAG)) == false || row.DELETE_FLAG == false)
                                      select row).ToList <DDRM_MAST>();
                }
                if (lstRawMaterial.IsNotNullOrEmpty() && lstRawMaterial.Count > 0)
                {
                    ddrm_mast = lstRawMaterial[0];
                }
            }
            catch (Exception ex)
            {
                ex.LogException();
            }

            return(ddrm_mast);
        }
Exemple #13
0
        private static void TryExcuteCommands(Database db, List <Command> cmdList, Response result, DbConnection conn)
        {
            if (cmdList.IsNotNullOrEmpty())
            {
                var tran = conn.BeginTransaction();
                try
                {
                    ExcuteCommands(db, cmdList, result, conn, tran);
                    if (string.IsNullOrEmpty(result.Message))
                    {
                        tran.Commit();
                    }
                    else
                    {
                        tran.Rollback();
                    }
                }
                catch (Exception ex)
                {
                    tran.Rollback();

                    result.IsSuccess = false;
                    result.Message   = ex.Message;
                }
            }
        }
Exemple #14
0
        public void TestConstructorsForNullParameters <TItem>() where TItem : class
        {
            var itemType = typeof(TItem);

            var constructors = itemType.GetConstructors(BindingFlags.Instance | BindingFlags.Public)
                               .Where(c => c.GetParameters().IsNotNullOrEmpty());

            var failedParameters = new List <string>();

            foreach (var constructor in constructors)
            {
                var failedConstructorParameters = TestConstructorForNullParameter(itemType, constructor);

                if (failedConstructorParameters.IsNotNullOrEmpty())
                {
                    failedParameters.AddRange(failedConstructorParameters
                                              .Where(p => !failedParameters.Contains(p))
                                              .ToList());
                }
            }

            if (failedParameters.IsNotNullOrEmpty())
            {
                throw new AssertException("{0}\r\n{1}".FormatString("The following parameters failed the null check:",
                                                                    failedParameters.ToDelimitedString("\r\n")));
            }
        }
        public IList <Message> ParseDirectory(string directory)
        {
            IList <Message> messages = new List <Message>();

            List <string> subDirectories = Directory.GetDirectories(directory).ToList();

            if (subDirectories.IsNotNullOrEmpty())
            {
                foreach (var subDirectory in subDirectories)
                {
                    List <string> jsonFiles = Directory.GetFiles(subDirectory).ToList();
                    if (jsonFiles.IsNotNullOrEmpty())
                    {
                        foreach (var jsonFile in jsonFiles)
                        {
                            var tempMessages = ParseFile(jsonFile);
                            if (tempMessages.IsNotNullOrEmpty())
                            {
                                messages.AddRange(tempMessages);
                            }
                        }
                    }
                }
            }

            return(messages);
        }
Exemple #16
0
        public async Task <APIResponseEntity <bool> > IsExistSysDicNameInSameLevel([FromUri] APIRequestEntity <XCLCMS.Data.WebAPIEntity.RequestEntity.SysDic.IsExistSysDicNameInSameLevelEntity> request)
        {
            return(await Task.Run(() =>
            {
                var response = new APIResponseEntity <bool>();
                response.IsSuccess = true;
                response.Message = "该字典名可以使用!";

                XCLCMS.Data.Model.SysDic model = null;

                if (request.Body.SysDicID > 0)
                {
                    model = this.sysDicBLL.GetModel(request.Body.SysDicID);
                    if (null != model)
                    {
                        if (string.Equals(request.Body.SysDicName, model.DicName, StringComparison.OrdinalIgnoreCase))
                        {
                            return response;
                        }
                    }
                }

                List <XCLCMS.Data.Model.SysDic> lst = this.sysDicBLL.GetChildListByID(request.Body.ParentID);
                if (lst.IsNotNullOrEmpty())
                {
                    if (lst.Exists(k => string.Equals(k.DicName, request.Body.SysDicName, StringComparison.OrdinalIgnoreCase)))
                    {
                        response.IsSuccess = false;
                        response.Message = "该字典名在当前层级中已存在!";
                        return response;
                    }
                }
                return response;
            }));
        }
Exemple #17
0
        public APIResponseEntity <bool> IsExistSysDicNameInSameLevel([FromUri] string json)
        {
            var request  = Newtonsoft.Json.JsonConvert.DeserializeObject <APIRequestEntity <XCLCMS.Data.WebAPIEntity.RequestEntity.SysDic.IsExistSysDicNameInSameLevelEntity> >(System.Web.HttpUtility.UrlDecode(json));
            var response = new APIResponseEntity <bool>();

            response.IsSuccess = true;
            response.Message   = "该字典名可以使用!";

            XCLCMS.Data.Model.SysDic model = null;

            if (request.Body.SysDicID > 0)
            {
                model = this.sysDicBLL.GetModel(request.Body.SysDicID);
                if (null != model)
                {
                    if (string.Equals(request.Body.SysDicName, model.DicName, StringComparison.OrdinalIgnoreCase))
                    {
                        return(response);
                    }
                }
            }

            List <XCLCMS.Data.Model.SysDic> lst = this.sysDicBLL.GetChildListByID(request.Body.ParentID);

            if (lst.IsNotNullOrEmpty())
            {
                if (lst.Exists(k => string.Equals(k.DicName, request.Body.SysDicName, StringComparison.OrdinalIgnoreCase)))
                {
                    response.IsSuccess = false;
                    response.Message   = "该字典名在当前层级中已存在!";
                    return(response);
                }
            }
            return(response);
        }
Exemple #18
0
        public List <PageSection> GetListOfSectionsToRender(List <IPublishedContent> allSections)
        {
            var listOfSectionsToRender = new List <PageSection>();

            if (allSections.IsNotNullOrEmpty())
            {
                foreach (var section in allSections)
                {
                    try
                    {
                        var docAlias       = section.DocumentTypeAlias;
                        var sectionBuilder = _buildersFactory.GetFirstBuilderThatApply(docAlias);
                        listOfSectionsToRender.Add(new PageSection
                        {
                            PartialPath = sectionBuilder.ViewName,
                            ViewModel   = sectionBuilder.CreateViewModel(section)
                        });
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Error <PageSection>(" Error during rendering section", ex);
                        listOfSectionsToRender.Add(new PageSection
                        {
                            PartialPath = Consts.SectionErrorViewName,
                            ViewModel   = new SectionErrorViewModel {
                                SectionName = section.Name, ErrorMsg = ex.Message
                            }
                        });
                    }
                }
            }
            return(listOfSectionsToRender);
        }
Exemple #19
0
        /// <summary>
        /// 计算排名
        /// </summary>
        /// <param name="players">某个小组成员列表</param>
        /// <param name="scores">已完成场次比分列表</param>
        public string Rank(string groupId)
        {
            //验证是否存在未结束的比赛,排除轮空场次
            if (!ValidateFinish(groupId))
            {
                return("小组存在未结束的比赛场次,不能计算排名。");
            }

            //比赛全部结束,则计算排名,排除轮空场次
            GetGroupMembers(groupId);
            GetGroupLoops(groupId);

            if (players.IsNotNullOrEmpty() && scores.IsNotNullOrEmpty())
            {
                this.isTeam = players.First().IsTeam;

                //初始化数据
                Init(players);

                //计算
                Calculate(players.Select(p => p.TeamId).ToList(), new CalScore());

                //设置排名
                SetRank(players);

                //保存排名数据
                players.ForEach(p => p.SetRowModified());
                DbContext.GetInstance().Execute(CommandHelper.CreateSave(players));
            }
            return(null);
        }
Exemple #20
0
        public static void InitAdminBreadcrumb(this BaseController controller, string controllerTitle, string title, bool isUpsert = false, List <Breadcrumb> additionalBreadcrumbs = null)
        {
            var breadcrumbs = new List <Breadcrumb>
            {
                new Breadcrumb
                {
                    Title = Resource.Admin
                }
            };

            if (isUpsert)
            {
                breadcrumbs.Add(
                    new Breadcrumb
                {
                    Url   = controller.GetUrl(controller.GetType(), "Index"),
                    Title = controllerTitle
                });
            }

            if (additionalBreadcrumbs.IsNotNullOrEmpty())
            {
                breadcrumbs.AddRange(additionalBreadcrumbs);
            }

            InitViewTitleAndBreadcrumbs(controller, title, breadcrumbs);
        }
        private void CIReferenceZoneChanged()
        {
            if (_ciReferenceZoneSelectedRow.IsNotNullOrEmpty())
            {
                DataTable dt = bll.GetZoneDetails(new CI_REFERENCE_ZONE()
                {
                    IDPK = -99999
                }).ToDataTable <CI_REFERENCE_ZONE>().Clone();
                dt.ImportRow(_ciReferenceZoneSelectedRow.Row);

                List <CI_REFERENCE_ZONE> lstEntity = (from row in dt.AsEnumerable()
                                                      select new CI_REFERENCE_ZONE()
                {
                    IDPK = row.Field <string>("IDPK").ToIntValue(),
                    CODE = row.Field <string>("CODE"),
                    DESCRIPTION = row.Field <string>("DESCRIPTION"),
                }).ToList <CI_REFERENCE_ZONE>();
                if (lstEntity.IsNotNullOrEmpty() && lstEntity.Count > 0)
                {
                    NewActiveEntity.ZONE_CODE = lstEntity[0].CODE;
                    switch (ActionMode)
                    {
                    case OperationMode.AddNew:
                        NewActiveEntity.CI_REFERENCE = bll.CreateCIReferenceNumber(NewActiveEntity);
                        break;
                    }
                }
            }
        }
 /// <summary>
 /// Calls RemoveElement on each CopyLayerInstance
 /// </summary>
 public void RemoveInstances()
 {
     if (!Instances.IsNotNullOrEmpty())
     {
         return;
     }
     Instances.ForEach(cli => cli.RemoveFromParent());
 }
Exemple #23
0
 public async Task DeleteComments(List <Guid> ids)
 {
     if (ids.IsNotNullOrEmpty())
     {
         this.Uow.CommentsRepository.DeleteComments(ids);
         this.Uow.Save();
     }
 }
Exemple #24
0
        public void IsNotNullOrEmpty_on_populated_list_should_return_true()
        {
            var list = new List <string> {
                "item"
            };

            list.IsNotNullOrEmpty().Should().Be(true);
        }
Exemple #25
0
        /// <summary>
        /// 注入类型
        /// </summary>
        /// <param name="groups"></param>
        /// <param name="eventArgs"></param>
        public void Call(AutoInjectingGroupInfo[] groups, IContainerStartupEventArgs eventArgs)
        {
            var lifeStyle = new List <AutoInjectingGroupInfo>(groups.Where(o => this.Match(o, eventArgs.Collector, eventArgs.TypeFinder, eventArgs.Assemblies)));

            if (lifeStyle.IsNotNullOrEmpty())
            {
                this.collector.Register(lifeStyle.ToArray(), eventArgs.Collector, eventArgs.TypeFinder, eventArgs.Assemblies);
            }
        }
        public void ShouldReturnTrueIfListContainsSomething()
        {
            var list = new List <int>()
            {
                1, 2
            };

            Assert.IsTrue(list.IsNotNullOrEmpty());
        }
Exemple #27
0
        public void TestIsNotNullOrEmptyWithNonEmpty()
        {
            var enumerable = new List <string>()
            {
                "value"
            };

            Assert.True(enumerable.IsNotNullOrEmpty());
        }
Exemple #28
0
        private async Task <IEnumerable <BlogViewModel> > LoadAll()
        {
            var result = new List <BlogViewModel>();

            var filterRules = new FilterCondition();

            if (SelectedCategories.IsNotNullOrEmpty())
            {
                var filterCategories = new FilterGroup();
                foreach (var category in SelectedCategories)
                {
                    filterCategories.Add(new FilterRule
                    {
                        Field          = "CategoryId",
                        FilterOperator = FilterOperator.Equal,
                        PropertyValues = new List <object> {
                            Guid.Parse(category)
                        },
                        LogicalOperator = LogicalOperator.Or
                    });
                }

                filterRules.Add(filterCategories);
            }

            if (SearchText.IsNotNullOrEmpty())
            {
                var filterGroup = new FilterGroup()
                {
                    LogicalOperator = LogicalOperator.And
                };
                filterGroup.Add(new FilterRule("Title", FilterOperator.Contains, LogicalOperator.Or, SearchText));
                filterGroup.Add(new FilterRule("Summary", FilterOperator.Contains, LogicalOperator.Or, SearchText));
                filterGroup.Add(new FilterRule("MarkdownContent", FilterOperator.Contains, LogicalOperator.Or, SearchText));
                filterRules.Add(filterGroup);
            }

            var pageQuery = new PagingQuery
            {
                Pagination = new Pagination
                {
                    PageNumber = PageNumber,
                    PageSize   = PageSize,
                },
                FilterCondition = filterRules
            };
            var entities = await _dataAdminService.GetPagedArticles(pageQuery);

            Total = entities.TotalRecords;
            if (entities.Count > 0)
            {
                var viewModels = AppRuntimeContext.Current.Adapt <List <BlogViewModel> >(entities);
                result.AddRange(viewModels);
            }
            //  await Task.Delay(1000 * 3);
            return(result);
        }
Exemple #29
0
        public void IsNotNullOrEmpty_Should_Return_False_When_Passed_An_Empty_List()
        {
            // Arrange
            var Products = new List <string>();

            // Act

            // Assert
            Products.IsNotNullOrEmpty().Should().BeFalse();
        }
Exemple #30
0
        public void IsNotNullOrEmpty_Should_Return_False_When_Passed_A_Null_List()
        {
            // Arrange
            List <string> Products = null;

            // Act

            // Assert
            Products.IsNotNullOrEmpty().Should().BeFalse();
        }
 public static void AddModelErrors(this ModelStateDictionary modelState, List<Models.BrokenRule> brokenRules)
 {
     if (brokenRules.IsNotNullOrEmpty())
     {
         foreach (var item in brokenRules)
         {
             foreach (var error in item.ErrorList)
             {
                 modelState.AddModelError(item.PropertyName, error);
             }
         }
     }
 }
        /// <summary>
        /// Shows the product list view.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="viewName">Name of the view.</param>
        /// <param name="productCount">The product count.</param>
        /// <param name="sort">The sort.</param>
        /// <returns></returns>
        // [ActionFilters.PartialRenderActionFilter(Order = 1)]
        // [ActionFilters.CacheActionFilter(CacheKey = "ProductList", Duration = 3600, Order = 2, VaryByParam="*")]
        public ActionResult ShowProductListView(Models.ProductListType type, string viewName, int? productCount, List<Models.SortProductList> sort)
        {
            var key = string.Format("ShowProductListView|{0}|{1}", type, productCount.GetValueOrDefault(int.MaxValue));
            var list = CacheService[key] as IList<Models.Product>;

            if (list == null)
            {
                var filter = CatalogService.CreateProductListFilter(HttpContext);
                filter.ListType = type;

                int count = 0;
                if (sort.IsNotNullOrEmpty())
                {
                    foreach (var item in sort)
                    {
                        filter.SortList.Add(item);
                    }
                }
                list = CatalogService.GetProductListBySearch(filter, 0, productCount.GetValueOrDefault(int.MaxValue), out count);
                CacheService.Add(key, list, DateTime.Now.AddHours(1));
            }

            var user = User.GetUserPrincipal();
            CatalogService.ApplyBestPrice(list, user.CurrentUser);
            // var result = new Models.ProductList(list);

            return PartialView(viewName, list);
        }