Added core pricing metafield and status check job

This commit is contained in:
2020-05-07 21:33:16 -04:00
parent ef5e4422c0
commit 9d3eac20dc
19 changed files with 341 additions and 119 deletions

View File

@@ -6,7 +6,6 @@ using PartSource.Automation.Services;
using PartSource.Data;
using PartSource.Data.Models;
using PartSource.Data.Nexpart;
using PartSource.Data.Shopify;
using PartSource.Services;
using PartSource.Services.Integrations;
using System;
@@ -19,6 +18,7 @@ using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Ratermania.Shopify.Entities;
namespace PartSource.Automation.Jobs
{
@@ -42,22 +42,24 @@ namespace PartSource.Automation.Jobs
{
IEnumerable<Product> products = await _shopifyClient.Products.Get();
int i = 0;
while (products != null && products.Any())
{
foreach (Product product in products)
{
try
{
await DeleteFitmentMetafields(product.Id);
ImportData importData = _partSourceContext.ImportData.FirstOrDefault(i => i.VariantSku == product.Variants[0].Sku);
ImportData importData = _partSourceContext.ImportData.FirstOrDefault(i => i.VariantSku == product.Variants[0].Sku && i.UpdatedAt == null);
IList<VehicleData> vehicles = _vehicleService.GetVehiclesForPart(importData?.PartNumber, importData?.LineCode);
if (vehicles.Count == 0)
if (vehicles == null || vehicles.Count == 0)
{
continue;
}
await DeleteFitmentMetafields(product.Id);
bool isFitment = false;
IList<int> vehicleIdFitment = _vehicleService.GetVehicleIdFitment(vehicles);
@@ -119,23 +121,36 @@ namespace PartSource.Automation.Jobs
};
await _shopifyClient.Metafields.Add(isFitmentMetafield);
importData.UpdatedAt = DateTime.Now;
importData.UpdateType = "Fitment";
}
catch
catch (Exception ex)
{
Console.WriteLine(product.Id);
Console.WriteLine($"{product.Id}: {ex.Message}");
}
}
try
{
Console.Write('.');
i++;
Console.WriteLine(i);
await _partSourceContext.SaveChangesAsync();
products = await _shopifyClient.Products.GetNext();
}
catch (Exception ex)
{
i++;
Console.WriteLine(i);
Console.WriteLine($"Retrying request: {ex.Message}");
await _partSourceContext.SaveChangesAsync();
products = await _shopifyClient.Products.GetNext();
}
}