This commit is contained in:
@@ -169,6 +169,33 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AyaType.WorkOrder:
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -297,6 +324,74 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
return TheField;
|
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