private IQueryable <ShopifyVariant> GetProductStockItemQueryable(AnalyzerRequest request) { var queryable = ProductStockItemQueryable; if (request.SyncFilter == "Synced Only") { queryable = queryable.Where(x => x.AcumaticaStockItems.Any()); } if (request.SyncFilter == "Unsynced Only") { queryable = queryable.Where(x => !x.AcumaticaStockItems.Any()); } foreach (var term in ParseSearchTerms(request.SearchText)) { if (term.IsLong()) { var id = term.ToLong(); queryable = queryable.Where( x => x.ShopifyProduct.ShopifyProductId == id || x.ShopifyVariantId == id); } else { queryable = queryable.Where( x => x.ShopifySku.Contains(term) || x.ShopifyTitle.Contains(term) || x.ShopifyProduct.ShopifyTitle.Contains(term) || x.AcumaticaStockItems.Any(y => y.ItemId.Contains(term))); } } return(queryable); }
public ActionResult OrderSyncResults(AnalyzerRequest request) { var grid = _analysisDataService.GetOrderAnalysisResults(request); var count = _analysisDataService.GetOrderAnalysisRecordCount(request); return(new JsonNetResult(new { Grid = grid, Count = count })); }
public ActionResult ProductStockItemResults(AnalyzerRequest request) { var stockItemResults = _analysisDataService.GetProductStockItemResults(request); var count = _analysisDataService.GetProductStockItemCount(request); return(new JsonNetResult(new { Grid = stockItemResults, Count = count })); }
private IQueryable <ShopifyOrder> GetOrderAnalysisQueryable(AnalyzerRequest request) { var queryable = ShopifyOrderQueryable; foreach (var term in ParseSearchTerms(request.SearchText)) { if (term.IsLong()) { var longIdentifier = term.ToLong(); queryable = queryable.Where( x => x.ShopifyOrderId == longIdentifier || x.ShopifyOrderNumber.Contains(term) || x.ShopifyTransactions.Any(y => y.ShopifyTransactionId == longIdentifier) || x.AcumaticaSalesOrder.AcumaticaOrderNbr.Contains(term)); } else { queryable = queryable.Where( x => x.ShopifyOrderNumber.Contains(term) || x.AcumaticaSalesOrder.AcumaticaOrderNbr.Contains(term)); } } if (request.OrderStatus == AnalyzerStatus.Errors) { queryable = queryable.Where(x => x.ErrorCount >= SystemConsts.ErrorThreshold); } if (request.OrderStatus == AnalyzerStatus.Unsynced) { queryable = queryable.Join( _persistContext.Entities.ShopifyOrdersNeedingSyncAlls, ord => ord.MonsterId, vw => vw.MonsterId, (ord, vw) => ord); } if (request.OrderStatus == AnalyzerStatus.Synced) { queryable = queryable.Join( _persistContext.Entities.ShopifyOrdersNotNeedingSyncAlls, ord => ord.MonsterId, vw => vw.MonsterId, (ord, vw) => ord); } if (request.OrderStatus == AnalyzerStatus.Blocked) { queryable = queryable.Where(x => x.Ignore == true); } return(queryable); }
public List <ProductStockItemResultsRow> GetProductStockItemResults(AnalyzerRequest request) { var queryable = GetProductStockItemQueryable(request); var results = queryable .OrderBy(x => x.ShopifySku) .Skip(request.StartRecord) .Take(request.PageSize) .ToList(); var settings = _settingsRepository.RetrieveSettings(); return(results.Select(x => MakeProductStockItemResults(x, settings)).ToList()); }
public ActionResult ProductStockItemExport() { var request = new AnalyzerRequest() { PageNumber = 1, PageSize = 50000, }; var output = _analysisDataService.GetProductStockItemResults(request); var csv = CsvSerializer.SerializeToCsv(output); return(File( new System.Text.UTF8Encoding().GetBytes(csv), "text/csv", "ProductStockItemExport.csv")); }
public List <OrderAnalyzerResultsRow> GetOrderAnalysisResults(AnalyzerRequest request) { var queryable = GetOrderAnalysisQueryable(request); var results = queryable .OrderByDescending(x => x.ShopifyOrderId) .Skip(request.StartRecord) .Take(request.PageSize) .ToList(); var output = new List <OrderAnalyzerResultsRow>(); foreach (var result in results) { output.Add(MakeOrderAnalyzerResults(result)); } return(output); }
public int GetOrderAnalysisRecordCount(AnalyzerRequest request) { return(GetOrderAnalysisQueryable(request).Count()); }
public int GetProductStockItemCount(AnalyzerRequest request) { return(GetProductStockItemQueryable(request).Count()); }