public ActionResult PurposesList(Guid id, string st, IList <FilterVM> filterVMs)
        {
            var charValueDTOList = new List <CharValueDTO>();

            foreach (var i in filterVMs)
            {
                foreach (var j in i.ValuesList)
                {
                    if (j.isApplied)
                    {
                        var buff = new CharValueDTO();
                        buff.Id = j.Id;
                        buff.CharacteristicId = j.CharacteristicId;
                        buff.IntVal           = j.IntVal;
                        buff.FloatVal         = j.FloatVal;
                        buff.StrVal           = j.StrVal;
                        charValueDTOList.Add(buff);
                    }
                }
            }
            var purposes = _catalog.GetPurposesByCharValues((Guid)id, charValueDTOList);

            var purposeList = new List <CatalogPurposeVM>();

            foreach (var curr in purposes)
            {
                CatalogPurposeVM buff = new CatalogPurposeVM();
                buff.PurposeID  = curr.PurposeID;
                buff.CategoryID = id;
                buff.Brand      = curr.Brand;
                buff.Name       = curr.Name;
                buff.Price      = curr.Price;
                buff.Curency    = curr.Curency;
                buff.Category   = curr.CategoryName;

                purposeList.Add(buff);
                buff = null;
            }
            if (String.IsNullOrEmpty(st))
            {
                st = "ByPrice";
            }

            switch (st)
            {
            case "ByName":
                purposeList = purposeList.OrderBy(x => x.Name).Distinct().ToList();
                break;

            case "ByPrice":
                purposeList = purposeList.OrderBy(x => x.Price).ToList();
                break;

            case "ByBrand":
                purposeList = purposeList.OrderBy(x => x.Brand).ToList();
                break;
            }

            return(View(purposeList));
        }
        public ActionResult PurposesList(Guid id, string st)
        {
            var purposeDTOList            = _catalog.GetPurposesByCategoryID(id);
            var purposeVMList             = Enumerable.Empty <CatalogPurposeVM>();
            List <CatalogPurposeVM> pList = new List <CatalogPurposeVM>();

            foreach (var i in purposeDTOList)
            {
                CatalogPurposeVM buff = new CatalogPurposeVM();
                buff.PurposeID  = i.PurposeID;
                buff.CategoryID = id;
                buff.Brand      = i.Brand;
                buff.Name       = i.Name;
                buff.Price      = i.Price;
                buff.Curency    = i.Curency;
                buff.Category   = i.CategoryName;

                pList.Add(buff);
                buff = null;
            }
            purposeVMList = pList;

            if (String.IsNullOrEmpty(st))
            {
                st = "ByPrice";
            }

            switch (st)
            {
            case "ByName":
                purposeVMList = purposeVMList.OrderBy(x => x.Name).Distinct();
                break;

            case "ByPrice":
                purposeVMList = purposeVMList.OrderBy(x => x.Price);
                break;

            case "ByBrand":
                purposeVMList = purposeVMList.OrderBy(x => x.Brand);
                break;
            }

            return(View(purposeVMList));
        }