Example #1
0
 protected virtual void UpdateDynamicSampler()
 {
     for (int f = 0; f < NumFactors; f++)
     {
         _factorBasedRank[f]  = AllItems.OrderByDescending(iId => item_factors[ItemsMap.ToInternalID(iId), f]).ToList();
         _itemFactorsStdev[f] = AllItems.Select(iId => item_factors[ItemsMap.ToInternalID(iId), f]).Stdev();
     }
 }
Example #2
0
        public async Task <bool> CreateSubjectPost(ITeacherSubjectRepository teacherSubject, SubjectModel model)
        {
            Subject subject = new Subject {
                Name = model.Name
            };

            if (!await AddItemAsync(subject))
            {
                return(false);
            }

            Subject subjectId = await AllItems.OrderByDescending(z => z.Id).FirstOrDefaultAsync();

            return(await teacherSubject.SaveCreateSubject(Int32.Parse(model.TeacherId), subjectId.Id));
        }
Example #3
0
        public async Task <bool> AddImageMenuItem(string path, IFormFileCollection files)
        {
            var menuItem = await AllItems.OrderByDescending(x => x.Id).FirstOrDefaultAsync();

            if (files.Count > 0)
            {
                var uploades  = Path.Combine(path, "images");
                var extension = Path.GetExtension(files[0].FileName);
                using (var fileStream = new FileStream(Path.Combine(uploades, menuItem.Id + extension), FileMode.Create))
                {
                    await files[0].CopyToAsync(fileStream);
                }

                menuItem.Image = @"\images\" + menuItem.Id + extension;
            }
            else
            {
                var uploades = Path.Combine(path, @"images\" + SD.DefaultFoodImg);
                File.Copy(uploades, path + @"\images\" + menuItem.Id + ".png");
                menuItem.Image = @"\images\" + menuItem.Id + ".png";
            }

            return(await UpdateItem(menuItem));
        }
Example #4
0
        private async Task FilterAndSort(string?text, CancellationTokenSource tokenSource, CancellationToken cancellationToken)
        {
            while (currentToken != null)
            {
                await Task.Run(() => Thread.Sleep(50)).ConfigureAwait(true);

                currentToken = tokenSource;
            }

            var lower = text?.ToLower();

            // filtering on a separate thread, so that UI doesn't lag
            await Task.Run(() =>
            {
                visibleCount = 0;
                foreach (var item in AllItems)
                {
                    if (string.IsNullOrEmpty(lower))
                    {
                        item.Score = 100;
                    }
                    else if (item.Name.ToLower() == lower)
                    {
                        item.Score = 101;
                    }
                    else
                    {
                        int indexOf      = item.SearchName.IndexOf(lower, StringComparison.Ordinal);
                        bool contains    = indexOf != -1;
                        bool isFullWorld = false;
                        if (contains)
                        {
                            isFullWorld = true;
                            if (indexOf > 0 && item.SearchName[indexOf - 1] != ' ')
                            {
                                isFullWorld = false;
                            }
                            indexOf += lower.Length;
                            if (indexOf < item.SearchName.Length && item.SearchName[indexOf] != ' ')
                            {
                                isFullWorld = false;
                            }
                        }
                        var score  = FuzzySharp.Fuzz.WeightedRatio(item.SearchName, lower);
                        item.Score = contains ? (Math.Max(score, isFullWorld ? 85 : 62)) : score;
                    }
                    if (item.ShowItem)
                    {
                        visibleCount++;
                    }
                    else if (item == SelectedItem)
                    {
                        SelectedItem = null;
                    }
                    if (cancellationToken.IsCancellationRequested)
                    {
                        currentToken = null;
                        return;
                    }
                }
            }, cancellationToken).ConfigureAwait(true);

            if (cancellationToken.IsCancellationRequested)
            {
                currentToken = null;
                return;
            }

            var filtered = AllItems.OrderByDescending(f => string.IsNullOrEmpty(lower) ? -f.Order : f.Score).ToList();

            Items.OverrideWith(filtered);

            SelectedItem ??= Items.FirstOrDefault();
            currentToken = null;
        }