This commit is contained in:
@@ -169,6 +169,33 @@ namespace AyaNova.Biz
|
||||
}
|
||||
break;
|
||||
case AyaType.WorkOrder:
|
||||
{
|
||||
var wo = await ct.WorkOrder.AsNoTracking().FirstOrDefaultAsync(z => z.Id == ne.ObjectId);
|
||||
if (wo == null)
|
||||
{
|
||||
//maybe deleted, this can't proceed
|
||||
throw new ApplicationException($"Unable to make delivery for customer notify event as WorkOrder {ne.Name} was not found during delivery, deleted?");
|
||||
}
|
||||
|
||||
var CustomerName = await ct.Customer.AsNoTracking().Where(x => x.Id == wo.CustomerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
var StatusName = await ct.WorkOrderStatus.AsNoTracking().Where(x => x.Id == wo.LastStatusId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
Subject = SetWorkOrderTokens(Subject, wo, CustomerName, StatusName);
|
||||
Body = SetWorkOrderTokens(Body, wo, CustomerName, StatusName);
|
||||
}
|
||||
break;
|
||||
case AyaType.CustomerServiceRequest:
|
||||
{
|
||||
var csr = await ct.CustomerServiceRequest.AsNoTracking().FirstOrDefaultAsync(z => z.Id == ne.ObjectId);
|
||||
if (csr == null)
|
||||
{
|
||||
//maybe deleted, this can't proceed
|
||||
throw new ApplicationException($"Unable to make delivery for customer notify event as CustomerServiceRequest {ne.Name} was not found during delivery, deleted?");
|
||||
}
|
||||
|
||||
var CustomerName = await ct.Customer.AsNoTracking().Where(x => x.Id == csr.CustomerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
Subject = SetCSRTokens(Subject, csr, CustomerName);
|
||||
Body = SetCSRTokens(Body, csr, CustomerName);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -297,6 +324,74 @@ namespace AyaNova.Biz
|
||||
|
||||
return TheField;
|
||||
}
|
||||
|
||||
|
||||
private static string SetWorkOrderTokens(string TheField, WorkOrder wo, string CustomerName, string statusName)
|
||||
{
|
||||
MatchCollection matches = Regex.Matches(TheField, @"\{{(.|\n)*?\}}", RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled);
|
||||
//{{.*?}}
|
||||
foreach (Match KeyMatch in matches)
|
||||
{
|
||||
switch (KeyMatch.Value)
|
||||
{
|
||||
case "{{Customer}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, CustomerName);
|
||||
break;
|
||||
case "{{WorkOrderStatus}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, statusName);
|
||||
break;
|
||||
case "{{WorkOrderCustomerContactName}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, wo.CustomerContactName);
|
||||
break;
|
||||
case "{{WorkOrderCustomerReferenceNumber}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, wo.CustomerReferenceNumber);
|
||||
break;
|
||||
case "{{WorkOrderSummary}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, wo.Notes);
|
||||
break;
|
||||
case "{{WorkOrderSerialNumber}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, wo.Serial.ToString());
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return TheField;
|
||||
}
|
||||
|
||||
|
||||
private static string SetCSRTokens(string TheField, CustomerServiceRequest csr, string CustomerName)
|
||||
{
|
||||
MatchCollection matches = Regex.Matches(TheField, @"\{{(.|\n)*?\}}", RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled);
|
||||
//{{.*?}}
|
||||
foreach (Match KeyMatch in matches)
|
||||
{
|
||||
switch (KeyMatch.Value)
|
||||
{
|
||||
case "{{Customer}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, CustomerName);
|
||||
break;
|
||||
case "{{QuoteIntroduction}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, csr.Introduction);
|
||||
break;
|
||||
case "{{WorkOrderCustomerContactName}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, csr.CustomerContactName);
|
||||
break;
|
||||
case "{{WorkOrderCustomerReferenceNumber}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, csr.CustomerReferenceNumber);
|
||||
break;
|
||||
case "{{WorkOrderSummary}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, csr.Notes);
|
||||
break;
|
||||
case "{{QuoteSerialNumber}}":
|
||||
TheField = TheField.Replace(KeyMatch.Value, csr.Serial.ToString());
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return TheField;
|
||||
}
|
||||
//===
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user