Exemple #1
0
 private void FilteringBegingButton_Click(object sender, EventArgs e)
 {
     if (BaseFilterFilepathTextBox.Text != string.Empty && BaseFilepathAfterFilteringTextBox.Text != string.Empty)
     {
         FiltersStatus filtersStatus = GetFiltersStatus();
         if (filtersStatus.OneFilterEnabled())
         {
             FilteringParameters filteringParameters = new FilteringParameters()
             {
                 FollowersMinCount     = IntToUint(FollowersCount.MinValue),
                 FollowersMaxCount     = IntToUint(FollowersCount.MaxValue),
                 PostsMinCount         = IntToUint(PostsCount.MinValue),
                 PostsMaxCount         = IntToUint(PostsCount.MaxValue),
                 SubscriptionsMinCount = IntToUint(SubscriptionsCount.MinValue),
                 SubscriptionsMaxCount = IntToUint(SubscriptionsCount.MaxValue)
             };
             Thread filteringThread = new Thread(() => instagram.FilteringProccess(
                                                     ref filtersStatus,
                                                     BaseFilterFilepathTextBox.Text, BaseFilepathAfterFilteringTextBox.Text,
                                                     filteringParameters));
             filteringThread.Start();
             return;
         }
     }
     MessageBox.Show("Поля пути к базе до и после фильтрации должны быть заполнены, также должен быть выбран хотя бы 1 фильтр", "Внимание!");
 }
Exemple #2
0
        /// <summary>
        /// Get a list of <see cref="User"/>.
        /// </summary>
        /// <param name="lang">The language.</param>
        /// <param name="paging">The paging parameters.</param>
        /// <param name="sorting">The sorting parameters.</param>
        /// <param name="filtering">The filtering parameters.</param>
        /// <param name="fielding">The fielding parameters. (not used)</param>
        /// <returns>The pagined list of <see cref="User"/>.</returns>
        public PagedCollection <User> GetUsers(string lang,
                                               PagingParameters paging,
                                               SortingParameters sorting,
                                               FilteringParameters filtering,
                                               FieldingParameters fielding)
        {
            if (Session == null)
            {
                throw new Exception("Session is null");
            }

            var result = Session.Read("users",
                                      paging.ToMDBPagingParameters(),
                                      sorting.ToSortDefinition(),
                                      filtering.ToFilterDefinition());

            return(new PagedCollection <User>
            {
                Items = result.Items.ToUserList(),
                TotalNumberOfItems = result.TotalNumberOfItems,
                PageIndex = paging.Index,
                PageSize = paging.Size,
                TotalNumberOfPages = (long)Math.Ceiling(result.TotalNumberOfItems / (double)paging.Size)
            });
        }
Exemple #3
0
        /// <summary>
        /// Converts a <see cref="FilteringParameters"/> to MongoDB filters.
        /// </summary>
        /// <param name="filtering">The filtering parameters to convert.</param>
        /// <returns>The MongoDB filters.</returns>
        public static FilterDefinition <BsonDocument> ToFilterDefinition(this FilteringParameters filtering)
        {
            if (filtering == null)
            {
                return(null);
            }

            return(filtering.Filter.ToFilterDefinition());
        }
Exemple #4
0
        public IHttpActionResult GetUsersList(string lang                   = null,
                                              PagingParameters paging       = null,
                                              SortingParameters sorting     = null,
                                              FilteringParameters filtering = null,
                                              FieldingParameters fielding   = null)
        {
            try
            {
                if (paging == null)
                {
                    paging = new PagingParameters();
                }

                if (paging != null && !paging.IsValid)
                {
                    throw new ArgumentException(nameof(paging));
                }

                if (sorting != null && !sorting.IsValid)
                {
                    throw new ArgumentException(nameof(sorting));
                }

                if (filtering != null && !filtering.IsValid)
                {
                    throw new ArgumentException(nameof(filtering));
                }

                if (fielding != null && !fielding.IsValid)
                {
                    throw new ArgumentException(nameof(fielding));
                }

                return(Ok(Repository.GetUsers(lang, paging, sorting, filtering, fielding)));
            }
            catch (ArgumentException aex)
            {
                return(BadRequest(aex.Message));
            }
            catch (SecurityException)
            {
                throw new HttpResponseException(HttpStatusCode.Forbidden);
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
 private void Awake()
 {
     filteringParameters = new FilteringParameters(new UnityAppSettingsManager());
     if (CamerasDetected())
     {
         capture              = new Capture();
         newFrame             = true;
         cameraTimer          = new Timer(40);
         cameraTimer.Elapsed += new ElapsedEventHandler(OnCameraFrame);
         capture.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FPS, 25);
         ChangeEditedRange(0);
     }
     else
     {
         NoCameraWarning.SetActive(true);
     }
 }
Exemple #6
0
        public FilteringResultModel GetSearchOptions(FilteringParameters parameters)
        {
            List <Product>     items         = new List <Product>();
            List <Subcategory> subcategories = new List <Subcategory>();

            if (parameters.SearchString != null && parameters.SearchString != "")
            {
                items         = _database.ProductRepository.Find(item => item.Name.ToUpper().Contains(parameters.SearchString.ToUpper())).ToList();
                subcategories = _database.SubcategoryRepository.Find(item => item.Name.ToUpper().Contains(parameters.SearchString.ToUpper())).ToList();
            }

            FilteringResultModel result = new FilteringResultModel();

            result.Products      = _mapper.Map <IEnumerable <ProductModelItem> >(items);
            result.Subcategories = _mapper.Map <IEnumerable <SubcategoryModelItem> >(subcategories);
            result.Successed     = true;
            return(result);
        }
Exemple #7
0
        public FilteringResultModel GetProducts(FilteringParameters parameters)
        {
            List <Product>       items         = new List <Product>();
            List <Subcategory>   subcategories = new List <Subcategory>();
            List <Brand>         brands        = new List <Brand>();
            FilteringResultModel result        = new FilteringResultModel();

            if (parameters.SubcategoryId != 0)
            {
                items = _database.ProductRepository.GetProductsByCategory(parameters.SubcategoryId).ToList();
                if (!String.IsNullOrEmpty(parameters.SearchString))
                {
                    items = items.Where(item => item.Name.ToUpper()
                                        .Contains(parameters.SearchString.ToUpper())).ToList();
                }
            }
            else
            {
                if (!String.IsNullOrEmpty(parameters.SearchString))
                {
                    items = _database.ProductRepository.Find(item => item.Name.ToUpper()
                                                             .Contains(parameters.SearchString.ToUpper())).ToList();
                }
            }

            foreach (var item in items)
            {
                var sub = _database.ProductByCategoryRepository.Find(i => i.Product.Id == item.Id).First().Subcategory;
                if (!subcategories.Contains(sub) && sub != null)
                {
                    subcategories.Add(sub);
                }

                var brand = _database.ProductByBrandRepository.Find(b => b.Product == item).First().Brand;
                if (!brands.Contains(brand) && brand != null)
                {
                    brands.Add(brand);
                }
            }
            result.MaxPrice = items.Max(x => x.Price);
            result.MinPrice = items.Min(x => x.Price);

            //Filtering by selected brands
            if (!String.IsNullOrEmpty(parameters.Brands))
            {
                var selectedBrands = parameters.Brands.Split(';').Select(x => Int32.Parse(x));
                items = _database.ProductByBrandRepository
                        .Find(item => items.Contains(item.Product) && selectedBrands.Contains(item.Brand.Id))
                        .Select(i => i.Product)
                        .ToList();
                result.SelectedBrands = selectedBrands.ToArray();
            }


            if (parameters.MaxPrice != 0)
            {
                items = items.Where(p => p.Price <= parameters.MaxPrice).ToList();
                result.SetMaxPrice = parameters.MaxPrice;
            }
            else
            {
                result.SetMaxPrice = result.MaxPrice;
            }
            if (parameters.MinPrice != 0)
            {
                items = items.Where(p => p.Price >= parameters.MinPrice).ToList();
                result.SetMinPrice = parameters.MinPrice;
            }
            else
            {
                result.SetMinPrice = result.MinPrice;
            }

            //Sorting
            switch (parameters.Sort)
            {
            case "price_asce":
                items = items.OrderBy(x => x.Price).ToList();
                break;

            case "price_desc":
                items = items.OrderByDescending(x => x.Price).ToList();
                break;

            default:
                break;
            }

            //Pagination
            result.TotalPages = items.Count / 8;
            int surplus = items.Count % 8;

            if (surplus > 0)
            {
                result.TotalPages++;
            }
            else
            {
                surplus = 8;
            }
            result.TotalItems = items.Count;
            if (parameters.Page <= result.TotalPages && parameters.Page != 0)
            {
                int indexFirstItems = (parameters.Page - 1) * 8;
                if (parameters.Page != result.TotalPages)
                {
                    items = items.GetRange(indexFirstItems, 8);
                }
                else
                {
                    items = items.GetRange(indexFirstItems, surplus);
                }
                result.Page = parameters.Page;
            }
            else
            {
                items       = items.GetRange(0, 8);
                result.Page = 1;
            }

            result.Products      = _mapper.Map <IEnumerable <ProductModelItem> >(items);
            result.Subcategories = _mapper.Map <IEnumerable <SubcategoryModelItem> >(subcategories);
            result.Brands        = _mapper.Map <IEnumerable <BrandModelItem> >(brands);
            result.Successed     = true;
            return(result);
        }
Exemple #8
0
 public IActionResult GetProducts([FromQuery] FilteringParameters parameters)
 {
     return(Ok(_productSrvice.GetProducts(parameters)));
 }