Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public ActionResult OrderSyncResults(AnalyzerRequest request)
        {
            var grid  = _analysisDataService.GetOrderAnalysisResults(request);
            var count = _analysisDataService.GetOrderAnalysisRecordCount(request);

            return(new JsonNetResult(new { Grid = grid, Count = count }));
        }
Ejemplo n.º 3
0
        public ActionResult ProductStockItemResults(AnalyzerRequest request)
        {
            var stockItemResults = _analysisDataService.GetProductStockItemResults(request);
            var count            = _analysisDataService.GetProductStockItemCount(request);

            return(new JsonNetResult(new { Grid = stockItemResults, Count = count }));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
        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"));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public int GetOrderAnalysisRecordCount(AnalyzerRequest request)
 {
     return(GetOrderAnalysisQueryable(request).Count());
 }
Ejemplo n.º 9
0
 public int GetProductStockItemCount(AnalyzerRequest request)
 {
     return(GetProductStockItemQueryable(request).Count());
 }