public static void ProcessCategory(string mcat_path, string job_id) { var context = new NearDuplicatesDbContext(); var listings = context.Listings.Where(x => x.mcat_path.StartsWith(mcat_path)).ToList(); ProcessListings(listings, job_id, context); }
public static void ProcessSeller(int seller_id, string job_id) { var context = new NearDuplicatesDbContext(); var listings = context.Listings.Where(x => x.seller_id == seller_id).ToList(); ProcessListings(listings, job_id, context); }
public JsonResult GetListingsForSeller(int seller_id, string mcat_path) { if (IsPreFlight()) { return(new JsonResult()); } var context = new NearDuplicatesDbContext(); var listings = context.Listings.Where(x => x.seller_id == seller_id && x.mcat_path.StartsWith(mcat_path) && (x.likely_duplicate_id_by_title != null && x.likely_duplicate_id_by_description == x.likely_duplicate_id_by_title) ).ToList(); var output = listings .OrderByDescending(a => a.similarity_title) .ThenByDescending(b => b.similarity_description) .Select(x => new { x.id, x.category_id, x.mcat_path, x.seller_id, x.seller_name, x.title, x.similarity_title, x.similarity_description }); return(Json(output, JsonRequestBehavior.AllowGet)); }
public JsonResult GetSellers(string mcat_path, int?seller_id) { if (IsPreFlight()) { return(new JsonResult()); } var context = new NearDuplicatesDbContext(); var listings = context.Listings.Where(x => (string.IsNullOrEmpty(mcat_path) || x.mcat_path.StartsWith(mcat_path)) && (seller_id == null || x.seller_id == seller_id.Value) && (x.likely_duplicate_id_by_title != null && x.likely_duplicate_id_by_description == x.likely_duplicate_id_by_title)) .ToList(); var sellers = listings.GroupBy(x => x.seller_id).ToList(); var output = sellers.Select(x => new { seller_id = x.Key, x.First().seller_name, listings_count = x.Count() }); return(Json(output, JsonRequestBehavior.AllowGet)); }
private static void ProcessListings(List <Listing> listings, string job_id, NearDuplicatesDbContext context) { var duplicates = new Dictionary <long, long>(); AnalyseListingTitles.ProcessTitles(listings, job_id, duplicates); AnalyseListingDescriptions.ProcessDescriptions(listings, job_id, duplicates); context.SaveChanges(); }
public void RefreshSeller(int seller_id, string job_id) { var context = new NearDuplicatesDbContext(); ProgressManager.UpdateJobPercent(job_id, 1M); RemoveListingsFromDb(context, seller_id, job_id); var output = GetNewListingsFromDb(seller_id); ProgressManager.IncrementJobPercentBy(job_id, 5M); AddBackToDatabase(context, output, job_id); ProgressManager.IncrementJobPercentBy(job_id, 5M); }
public void RefreshCategory(string mcat_path, string job_id) { var context = new NearDuplicatesDbContext(); ProgressManager.UpdateJobPercent(job_id, 1M); RemoveListingsFromDb(context, mcat_path, job_id); var output = GetNewListingsFromDb(mcat_path); ProgressManager.IncrementJobPercentBy(job_id, 5M); AddBackToDatabase(context, output, job_id); ProgressManager.IncrementJobPercentBy(job_id, 5M); }
public JsonResult GetComparison(long listing_id) { if (IsPreFlight()) { return(new JsonResult()); } var context = new NearDuplicatesDbContext(); var query = context.Listings.AsQueryable(); var baseListing = query.First <Listing>(x => x.id == listing_id); var closestDuplicateByTitle = baseListing.likely_duplicate_id_by_title.HasValue ? query.FirstOrDefault(x => x.id == baseListing.likely_duplicate_id_by_title) : null; var closestDuplicateByDescription = baseListing.likely_duplicate_id_by_description.HasValue ? query.FirstOrDefault(x => x.id == baseListing.likely_duplicate_id_by_description) : null; var output = new { baseListing, duplicate = closestDuplicateByTitle ?? closestDuplicateByDescription, }; return(Json(output, JsonRequestBehavior.AllowGet)); }
private void RemoveListingsFromDb(NearDuplicatesDbContext context, int seller_id, string job_id) { context.Listings.RemoveRange(context.Listings.AsQueryable().Where(x => x.seller_id == seller_id)); }
private void RemoveListingsFromDb(NearDuplicatesDbContext context, string mcat_path, string job_id) { context.Listings.RemoveRange(context.Listings.AsQueryable().Where(x => x.mcat_path.StartsWith(mcat_path))); }
private void AddBackToDatabase(NearDuplicatesDbContext context, List <Listing> listings, string job_id) { context.Listings.AddRange(listings); context.SaveChanges(); }