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(); } }
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)); }
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)); }
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; }