Added fetching for Shop Region + OPCODE decoding.

This commit is contained in:
Patrick Fic
2020-01-30 17:19:07 -08:00
parent b7c8aef9e5
commit fc52804362
5 changed files with 96 additions and 23 deletions

View File

@@ -48,5 +48,12 @@ namespace BodyshopUploader.Models
get { return _associationActive; }
set { SetProperty(ref _associationActive, value); }
}
private string _regionConfig;
[JsonProperty("region_config")]
public string RegionConfig
{
get { return _regionConfig; }
set { SetProperty(ref _regionConfig, value); }
}
}
}

View File

@@ -8,7 +8,10 @@ namespace BodyshopUploader.Utils
{
public static class AppMetaData
{
//TODO: Change firebase API Key to be dependent on what environment monitor has been set for.
public static string FirebaseAPIKey_DEV = "AIzaSyDV9MsSHZmpLtjoaTK_ObvjFaJ-nMSd2KA";
public static string ActiveShopId = Properties.Settings.Default.LastSelectedShop;
public static string ShopRegion = "";
public static dynamic CiecaOpCodes;
}
}

View File

@@ -848,11 +848,7 @@ namespace BodyshopUploader.Utils.Decoder
var allLines = new JArray();
//Create new column to capture lbr op code description. in UI, show partno ? partno : op code desc. has to be stamped
//If the OEM_PARTNO is empty, use the operation code and look it up in opcode table. If found, take opcode.opcodedescription and populate oem_partno with it
//populate lbr_op with opcode.opcodetouse
//if part_type is blank, pull in the part type from parttypetousemitchell
//if not found, set description to not efined
#region Code
//TODO: How to handle price markup and discounts.
@@ -964,6 +960,26 @@ namespace BodyshopUploader.Utils.Decoder
lin.bett_amt = readValues[43];//BETT_AMT
lin.bett_tax = readValues[44];//BETT_TAX
//Create new column to capture lbr op code description. in UI, show partno ? partno : op code desc. has to be stamped
//If the OEM_PARTNO is empty, use the operation code and look it up in opcode table. If found, take opcode.opcodedescription and populate oem_partno with it
//populate lbr_op with opcode.opcodetouse
//if part_type is blank, pull in the part type from parttypetousemitchell
//if not found, set description to not efined
if (string.IsNullOrEmpty(lin.oem_partno.Value))
{
try
{
lin.op_code_desc = Utils.AppMetaData.CiecaOpCodes[lin.lbr_op.Value]["desc"].Value;
}
catch (Exception Ex)
{
logger.Warn(Ex, "Couldnt find OpCodeDesc from {0} ", lin.lbr_op.Value);
}
}
allLines.Add(lin);
}
@@ -984,6 +1000,10 @@ namespace BodyshopUploader.Utils.Decoder
}
}
public static object ReflectPropertyValue(object source, string property)
{
return source.GetType().GetProperty(property).GetValue(source, null);
}
public static void ParseTtlFile(ref dynamic j, string RootFilePath)
{

View File

@@ -66,6 +66,7 @@ namespace BodyshopUploader.Utils
try
{
Thread.Sleep(1000);//Allow a small amount of time to pass before processing the queue item so that any writes can finish.
await GetOpCodes();
DecodeQueueItemJob(item);
await UpsertQueueItem(item);
}
@@ -77,6 +78,26 @@ namespace BodyshopUploader.Utils
}
}
}
private static async Task GetOpCodes()
{
var r = new GraphQLRequest
{
Query = @"query MyQuery($key: String!) {
masterdata(where: {key: {_eq: $key}}) {
value
key
}
}",
Variables = new
{
key = "CA_BC_ciecaopcodes"
}
};
var data = await Utils.GraphQL.ExecuteQuery(r);
Utils.AppMetaData.CiecaOpCodes = JObject.Parse(data.masterdata[0].value.Value);
}
private static void DecodeQueueItemJob(DTO_QueueItem item)
{

View File

@@ -3,6 +3,7 @@ using BodyshopUploader.Utils.Growls;
using GraphQL.Client;
using GraphQL.Common.Request;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -138,6 +139,7 @@ namespace BodyshopUploader.ViewModels
bodyshops {
shopname
id
region_config
associations {
id
active
@@ -194,31 +196,51 @@ namespace BodyshopUploader.ViewModels
Properties.Settings.Default.LastSelectedShop = ActiveShop.Id;
Properties.Settings.Default.Save();
Utils.AppMetaData.ActiveShopId = ActiveShop.Id;
Utils.AppMetaData.ShopRegion = ActiveShop.RegionConfig;
IndeterminateLoading = false;
}
public async Task TestGql()
{
Notification _n = new Notification()
{
Id = 123,
Title = "This is a title",
Subtitle = "Subtitle",
Message = "Somethin"
};
Growler.AddNotification(_n);
//var r = new GraphQLRequest
//Notification _n = new Notification()
//{
// Query = @"
// query QUERY_BODYSHOPS {
// bodyshops {
// shopname
// id
// }
// }"
// Id = 123,
// Title = "This is a title",
// Subtitle = "Subtitle",
// Message = "Somethin"
//};
//await Utils.GraphQL.ExecuteQuery(r);
//Growler.AddNotification(_n);
var r = new GraphQLRequest
{
Query = @"query MyQuery($key: String!) {
masterdata(where: {key: {_eq: $key}}) {
value
key
}
}",
Variables = new
{
key = Utils.AppMetaData.ShopRegion + "_ciecaopcodes"
}
};
var data = await Utils.GraphQL.ExecuteQuery(r);
//var t = Newtonsoft.Json.JsonConvert.DeserializeObject<List<dynamic>>(data.masterdata[0].value.Value);
Utils.AppMetaData.CiecaOpCodes = JObject.Parse(data.masterdata[0].value.Value);
try
{
var aa = Utils.AppMetaData.CiecaOpCodes.Property("OP1").Children();
var cc = Utils.AppMetaData.CiecaOpCodes["OP1"]["desc"].Value;
var ab = Utils.AppMetaData.CiecaOpCodes.Property("OP1.desc");
}
catch (Exception EX)
{
logger.Warn("Err");
}
}
}
}