Fixed notification + added saving of active shop id.

This commit is contained in:
Patrick Fic
2020-01-21 09:28:04 -08:00
parent f2d5c07c52
commit 99cf3efaf1
5 changed files with 195 additions and 47 deletions

View File

@@ -9,6 +9,6 @@ namespace BodyshopUploader.Utils
public static class AppMetaData
{
public static string FirebaseAPIKey_DEV = "AIzaSyDV9MsSHZmpLtjoaTK_ObvjFaJ-nMSd2KA";
public static string ActiveShopId = Properties.Settings.Default.LastSelectedShop;
}
}

View File

@@ -184,6 +184,169 @@ namespace BodyshopUploader.Utils.Decoder
j.ins_ct_ph = readValues[110]?.ToString();
j.ins_ct_phx = readValues[111]?.ToString();
j.shopid = AppMetaData.ActiveShopId;
return;
}
}
catch (IOException ex)
{
logger.Trace(ex, "Unable to open AD1 file. Retrying. ");
retryNumber++;
Thread.Sleep(3000);
}
}
}
public static void ParseAd2File(ref dynamic j, string RootFilePath)
{
if (string.IsNullOrWhiteSpace(j.ciecaid.Value))
{
return;
}
logger.Trace(@"Parsing AD2 at: {0}{1}", RootFilePath, j.ciecaid.Value);
int retryNumber = 0;
while (retryNumber < 11)
{
try
{
using (Stream fis = File.Open(RootFilePath + j.ciecaid.Value + "A.ad2", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
var reader = new DBFReader(fis);
reader.SetSelectFields(new string[] { "INS_CO_ID","INS_CO_NM","INS_ADDR1","INS_ADDR2","INS_CITY","INS_ST","INS_ZIP","INS_CTRY",
"INS_EA","POLICY_NO","DED_AMT","DED_STATUS","ASGN_NO","ASGN_DATE","ASGN_TYPE","CLM_NO","CLM_OFC_ID","CLM_OFC_NM","CLM_ADDR1",
"CLM_ADDR2","CLM_CITY","CLM_ST","CLM_ZIP","CLM_CTRY","CLM_PH1","CLM_PH1X","CLM_PH2","CLM_PH2X","CLM_FAX","CLM_FAXX","CLM_CT_LN",
"CLM_CT_FN","CLM_TITLE","CLM_CT_PH","CLM_CT_PHX","CLM_EA","PAYEE_NMS","PAY_TYPE","PAY_DATE","PAY_CHKNM","PAY_AMT","AGT_CO_ID","AGT_CO_NM",
"AGT_ADDR1","AGT_ADDR2","AGT_CITY","AGT_ST","AGT_ZIP","AGT_CTRY","AGT_PH1","AGT_PH1X","AGT_PH2","AGT_PH2X","AGT_FAX","AGT_FAXX","AGT_CT_LN",
"AGT_CT_FN","AGT_CT_PH","AGT_CT_PHX","AGT_EA","AGT_LIC_NO",
"LOSS_DATE","LOSS_CAT","LOSS_TYPE","LOSS_DESC","THEFT_IND","CAT_NO",
"TLOS_IND","CUST_PR","INSD_LN","INSD_FN","INSD_TITLE","INSD_CO_NM","INSD_ADDR1","INSD_ADDR2","INSD_CITY","INSD_ST","INSD_ZIP",
"INSD_CTRY","INSD_PH1","INSD_PH1X","INSD_PH2","INSD_PH2X","INSD_FAX","INSD_FAXX","INSD_EA","OWNR_LN","OWNR_FN","OWNR_TITLE","OWNR_CO_NM",
"OWNR_ADDR1","OWNR_ADDR2","OWNR_CITY","OWNR_ST","OWNR_ZIP","OWNR_CTRY","OWNR_PH1","OWNR_PH1X","OWNR_PH2","OWNR_PH2X","OWNR_FAX","OWNR_FAXX",
"OWNR_EA", "INS_PH1","INS_PH1X","INS_PH2","INS_PH2X","INS_FAX","INS_FAXX","INS_CT_LN","INS_CT_FN","INS_TITLE","INS_CT_PH","INS_CT_PHX"
});
var readValues = reader.NextRecord();
j.ins_co_id = readValues[0]?.ToString();
j.ins_co_nm = readValues[1]?.ToString();
j.ins_addr1 = readValues[2]?.ToString();
j.ins_addr2 = readValues[3]?.ToString();
j.ins_city = readValues[4]?.ToString();
j.ins_st = readValues[5]?.ToString();
j.ins_zip = readValues[6]?.ToString();
j.ins_ctry = readValues[7]?.ToString();
j.ins_ea = readValues[8]?.ToString();
j.policy_no = readValues[9]?.ToString();
j.ded_amt = readValues[10]?.ToString();
j.ded_status = readValues[11]?.ToString();
j.asgn_no = readValues[12]?.ToString();
j.asgn_date = readValues[13]?.ToString();
j.asgn_type = readValues[14]?.ToString();
j.clm_no = readValues[15]?.ToString();
j.clm_ofc_id = readValues[16]?.ToString();
j.clm_ofc_nm = readValues[17]?.ToString();
j.clm_addr1 = readValues[18]?.ToString();
j.clm_addr2 = readValues[19]?.ToString();
j.clm_city = readValues[20]?.ToString();
j.clm_st = readValues[21]?.ToString();
j.clm_zip = readValues[22]?.ToString();
j.clm_ctry = readValues[23]?.ToString();
j.clm_ph1 = readValues[24]?.ToString();
j.clm_ph1x = readValues[25]?.ToString();
j.clm_ph2 = readValues[26]?.ToString();
j.clm_ph2x = readValues[27]?.ToString();
j.clm_fax = readValues[28]?.ToString();
j.clm_faxx = readValues[29]?.ToString();
j.clm_ct_ln = readValues[30]?.ToString();
j.clm_ct_fn = readValues[31]?.ToString();
j.clm_title = readValues[32]?.ToString();
j.clm_ct_ph = readValues[33]?.ToString();
j.clm_ct_phx = readValues[34]?.ToString();
j.clm_ea = readValues[35]?.ToString();
j.payee_nms = readValues[36]?.ToString();
j.pay_type = readValues[37]?.ToString();
j.pay_date = readValues[38]?.ToString();
j.pay_chknm = readValues[39]?.ToString();
j.pay_amt = readValues[40]?.ToString();
j.agt_co_id = readValues[41]?.ToString();
j.agt_co_nm = readValues[42]?.ToString();
j.agt_addr1 = readValues[43]?.ToString();
j.agt_addr2 = readValues[44]?.ToString();
j.agt_city = readValues[45]?.ToString();
j.agt_st = readValues[46]?.ToString();
j.agt_zip = readValues[47]?.ToString();
j.agt_ctry = readValues[48]?.ToString();
j.agt_ph1 = readValues[49]?.ToString();
j.agt_ph1x = readValues[50]?.ToString();
j.agt_ph2 = readValues[51]?.ToString();
j.agt_ph2x = readValues[52]?.ToString();
j.agt_fax = readValues[53]?.ToString();
j.agt_faxx = readValues[54]?.ToString();
j.agt_ct_ln = readValues[55]?.ToString();
j.agt_ct_fn = readValues[56]?.ToString();
j.agt_ct_ph = readValues[57]?.ToString();
j.agt_ct_phx = readValues[58]?.ToString();
j.agt_ea = readValues[59]?.ToString();
j.agt_lic_no = readValues[60]?.ToString();
j.loss_date = readValues[61]?.ToString();
j.loss_type = readValues[62]?.ToString();
j.loss_desc = readValues[63]?.ToString();
j.theft_ind = readValues[64]?.ToString(); //BOOL
j.cat_no = readValues[65]?.ToString();
j.tlos_ind = readValues[66]?.ToString();
j.cust_pr = readValues[67]?.ToString();
j.insd_ln = readValues[68]?.ToString();
j.insd_fn = readValues[69]?.ToString();
j.insd_title = readValues[70]?.ToString();
j.insd_co_nm = readValues[71]?.ToString();
j.insd_addr1 = readValues[72]?.ToString();
j.insd_addr2 = readValues[73]?.ToString();
j.insd_city = readValues[74]?.ToString();
j.insd_st = readValues[75]?.ToString();
j.insd_zip = readValues[76]?.ToString();
j.insd_ctry = readValues[77]?.ToString();
j.insd_ph1 = readValues[78]?.ToString();
j.insd_ph1x = readValues[79]?.ToString();
j.insd_ph2 = readValues[80]?.ToString();
j.insd_ph2x = readValues[81]?.ToString();
j.insd_fax = readValues[82]?.ToString();
j.insd_faxx = readValues[82]?.ToString();
j.insd_ea = readValues[83]?.ToString();
j.ownr_ln = readValues[84]?.ToString();
j.ownr_fn = readValues[85]?.ToString();
j.ownr_title = readValues[86]?.ToString();
j.ownr_co_nm = readValues[87]?.ToString();
j.ownr_addr1 = readValues[88]?.ToString();
j.ownr_addr2 = readValues[89]?.ToString();
j.ownr_city = readValues[90]?.ToString();
j.ownr_st = readValues[91]?.ToString();
j.ownr_zip = readValues[92]?.ToString();
j.ownr_ctry = readValues[93]?.ToString();
j.ownr_ph1 = readValues[94]?.ToString();
j.ownr_ph1x = readValues[95]?.ToString();
j.ownr_ph2 = readValues[96]?.ToString();
j.ownr_ph2x = readValues[97]?.ToString();
j.ownr_fax = readValues[98]?.ToString();
j.ownr_faxx = readValues[99]?.ToString();
j.ownr_ea = readValues[100]?.ToString();
j.ins_ph1 = readValues[101]?.ToString();
j.ins_ph1x = readValues[102]?.ToString();
j.ins_ph2 = readValues[103]?.ToString();
j.ins_ph2x = readValues[104]?.ToString();
j.ins_fax = readValues[105]?.ToString();
j.ins_faxx = readValues[106]?.ToString();
j.ins_ct_ln = readValues[107]?.ToString();
j.ins_ct_fn = readValues[108]?.ToString();
j.ins_title = readValues[109]?.ToString();
j.ins_ct_ph = readValues[110]?.ToString();
j.ins_ct_phx = readValues[111]?.ToString();
j.shopid = AppMetaData.ActiveShopId;
return;
}
@@ -279,6 +442,8 @@ namespace BodyshopUploader.Utils.Decoder
j.vehicle = new JObject();
j.vehicle.data = v;
v.shopid = AppMetaData.ActiveShopId;
}
return;
}
@@ -297,8 +462,6 @@ namespace BodyshopUploader.Utils.Decoder
logger.Trace(@"Parsing Ttl at: {0}{1}", RootFilePath, j.ciecaid.Value);
int retryNumber = 0;
while (retryNumber < 11)
{
@@ -366,8 +529,7 @@ namespace BodyshopUploader.Utils.Decoder
}
}
}
public static void ParseLinFile(ref dynamic j, string RootFilePath)
{
if (string.IsNullOrWhiteSpace(j.ciecaid.Value)) { return; }

View File

@@ -34,7 +34,8 @@ namespace BodyshopUploader.Utils
else
{
logger.Error("Error executing query.");
Array.ForEach(graphQLResponse.Errors, x => logger.Error(x.ToString()));
Array.ForEach(graphQLResponse.Errors, x => logger.Error(x.Message));
logger.Error("---------------------");
return null;
}
}

View File

@@ -9,6 +9,7 @@ using BodyshopUploader.Utils;
using BodyshopUploader.Models;
using BodyshopUploader.Utils.Growls;
using GraphQL.Common.Request;
using Newtonsoft.Json.Linq;
namespace BodyshopUploader.Utils
{
@@ -46,7 +47,7 @@ namespace BodyshopUploader.Utils
}
}
private static void ProcessQueuedItems(object ignored)
private static async void ProcessQueuedItems(object ignored)
{
while (true)
{
@@ -66,7 +67,7 @@ namespace BodyshopUploader.Utils
{
Thread.Sleep(1000);//Allow a small amount of time to pass before processing the queue item so that any writes can finish.
DecodeQueueItemJob(item);
UpsertQueueItem(item);
await UpsertQueueItem(item);
}
catch (Exception ex)
{
@@ -83,13 +84,7 @@ namespace BodyshopUploader.Utils
}
private static async Task UpsertQueueItem(DTO_QueueItem item)
{
item.Job.shopid = "52b7357c-0edd-4c95-85c3-dfdbcdfad9ac";
item.Job.est_number = "123";
item.Job.vehicle.data.shopid = "52b7357c-0edd-4c95-85c3-dfdbcdfad9ac";
logger.Info("Manually setting the shop id! {0}", item.Job);
{
var r = new GraphQLRequest
{
Query = @"
@@ -101,52 +96,40 @@ namespace BodyshopUploader.Utils
}
}",
Variables = new
{
{
jobInput = item.Job
}
};
var d = await Utils.GraphQL.ExecuteQuery(r);
if(d!= null)
if (d != null)
{
logger.Trace("Job insert succesful. Show notification");
App.Current.Dispatcher.Invoke(() =>
{
Growler.AddNotification(new Notification()
{
Title = Properties.Resources.Msg_NewJobUploaded,
Subtitle = item.Job?.owner?.data.first_name?.Value + " " + item.Job?.owner?.data.last_name?.Value,
Message = item.Job?.vehicle?.data.v_model_yr?.Value + " " + item.Job?.vehicle?.data.v_make_desc?.Value + " " + item.Job?.vehicle?.data.v_model_desc?.Value
});
});
}
else
{
logger.Error("Job insert failed. Show notification");
//Succesful upsert
App.Current.Dispatcher.Invoke(() =>
{
Growler.AddNotification(new Notification()
{
Title = Properties.Resources.Msg_NewJobUploadError,
Subtitle = item.Job?.owner?.first_name?.Value + " " + item.Job?.owner?.last_name?.Value,
Message = item.Job?.vehicle?.v_model_yr?.Value + " " + item.Job?.vehicle?.v_make_desc?.Value + " " + item.Job?.vehicle?.v_model_desc?.Value
Subtitle = item.Job.owner?.first_name?.Value + " " + item.Job.owner?.last_name?.Value,
Message = item.Job.vehicle?.v_model_yr?.Value + " " + item.Job.vehicle?.v_make_desc?.Value + " " + item.Job.vehicle?.v_model_desc?.Value
});
});
}
_jobs.Dequeue();
App.Current.Dispatcher.Invoke(() =>
{
Growler.AddNotification(new Notification()
{
Title = Properties.Resources.Msg_NewJobUploaded,
Subtitle = item.Job?.owner?.first_name?.Value + " " + item.Job?.owner?.last_name?.Value,
Message = item.Job?.vehicle?.v_model_yr?.Value + " " + item.Job?.vehicle?.v_make_desc?.Value + " " + item.Job?.vehicle?.v_model_desc?.Value
});
});
}
private static void MoveFile(string FullPath)
{
try
{
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(FullPath) + @"\Processed\");
File.Move(FullPath, System.IO.Path.GetDirectoryName(FullPath) + @"\Processed\" + System.IO.Path.GetFileNameWithoutExtension(FullPath) + DateTime.Now.Ticks.ToString() + ".bak");
}
catch (Exception Ex)
{
logger.Error(Ex, "Can't move file {0} - it's gone!", FullPath);
}
}
}
}

View File

@@ -46,6 +46,7 @@ namespace BodyshopUploader.ViewModels
logger.Trace("Starting monitors if able to.");
if (StartFolderMonitorsCommand.CanExecute(null))
StartFolderMonitorsCommand.Execute(null);
MonitoringPaths.CollectionChanged += MonitoringPathsChanged;
}
private void bw_InitVm(object sender, DoWorkEventArgs e)
@@ -60,7 +61,7 @@ namespace BodyshopUploader.ViewModels
{
MonitoringPaths.Add(new Models.Monitor() { FilePath = p });
}
MonitoringPaths.CollectionChanged += MonitoringPathsChanged;
_callingThread.ReportProgress(30);
//Cannot use await.
@@ -192,6 +193,7 @@ namespace BodyshopUploader.ViewModels
}
Properties.Settings.Default.LastSelectedShop = ActiveShop.Id;
Properties.Settings.Default.Save();
Utils.AppMetaData.ActiveShopId = ActiveShop.Id;
IndeterminateLoading = false;
}