inserito metodi test invio email
This commit is contained in:
@@ -16,6 +16,7 @@ using GWMS.Data.DTO;
|
||||
using GWMS.Data.DatabaseModels;
|
||||
using static GWMS.Data.IobObjects;
|
||||
using System.Globalization;
|
||||
using Microsoft.AspNetCore.Identity.UI.Services;
|
||||
|
||||
namespace GWMS.UI.Data
|
||||
{
|
||||
@@ -25,8 +26,8 @@ namespace GWMS.UI.Data
|
||||
|
||||
private static IConfiguration _configuration;
|
||||
private static ILogger<GWMSDataService> _logger;
|
||||
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
private readonly IEmailSender _emailSender;
|
||||
private readonly IDistributedCache distributedCache;
|
||||
private readonly IMemoryCache memoryCache;
|
||||
|
||||
@@ -57,10 +58,11 @@ namespace GWMS.UI.Data
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public GWMSDataService(IConfiguration configuration, ILogger<GWMSDataService> logger, IMemoryCache memoryCache, IDistributedCache distributedCache)
|
||||
public GWMSDataService(IConfiguration configuration, ILogger<GWMSDataService> logger, IMemoryCache memoryCache, IDistributedCache distributedCache, IEmailSender emailSender)
|
||||
{
|
||||
_logger = logger;
|
||||
_configuration = configuration;
|
||||
_emailSender = emailSender;
|
||||
// conf cache
|
||||
this.memoryCache = memoryCache;
|
||||
this.distributedCache = distributedCache;
|
||||
@@ -185,6 +187,10 @@ namespace GWMS.UI.Data
|
||||
return mHash(string.Format("ExeTask:{0}", idxMacchina));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FUnzione verifica eventuale creazione NUOVI ordini di consegna
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task<bool> checkCreateOrders()
|
||||
{
|
||||
bool fatto = false;
|
||||
@@ -227,18 +233,66 @@ namespace GWMS.UI.Data
|
||||
// effettuo inserimento ordini!
|
||||
dbController.OrderInsert(NewOrders);
|
||||
|
||||
// invio email x ogni fornitore x i NUOVI ordini inseriti
|
||||
var orders4supp = NewOrders.GroupBy(g => g.SupplierId).FirstOrDefault();
|
||||
foreach (var item in orders4supp)
|
||||
// recupero NUOVI ordini x plant...
|
||||
foreach (var plant in currPlantData)
|
||||
{
|
||||
// invio email di notifica nuovi ordini inseriti
|
||||
}
|
||||
var newOrderOpen = await OrdersGetOpen(plant.PlantId);
|
||||
string emailDest = "";
|
||||
string emailSubj = "";
|
||||
string emailBody = "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
// invio email x ogni fornitore x i NUOVI ordini inseriti
|
||||
var orders4transp = NewOrders.GroupBy(g => g.TransporterId).FirstOrDefault();
|
||||
foreach (var item in orders4transp)
|
||||
{
|
||||
// invio email di notifica nuovi ordini inseriti
|
||||
// invio email x ogni fornitore / trasportatore x i NUOVI ordini inseriti
|
||||
foreach (var item in newOrderOpen)
|
||||
{
|
||||
// FORNITORI!
|
||||
emailSubj = $"GWMS: Ordine FORNITURA GAS per {item.Plant.PlantDesc}";
|
||||
sb = new StringBuilder();
|
||||
sb.AppendLine($"<h3>Fornitore {item.Supplier.SupplierDesc}</h3>");
|
||||
sb.AppendLine($"<b>Trasportatore {item.Transporter.TransporterDesc}</b>");
|
||||
sb.AppendLine($"Impianto di destinazione {item.Plant.PlantDesc}");
|
||||
sb.AppendLine("");
|
||||
sb.AppendLine($"Ordine di consegna: {item.OrderCode}");
|
||||
sb.AppendLine($"Data ordine: {item.DtOrder}");
|
||||
sb.AppendLine($"Data consegna indicativa: {item.DtETA}");
|
||||
sb.AppendLine($"Quantità ordinata: {item.OrderQty}");
|
||||
emailBody = sb.ToString().Replace(Environment.NewLine, "<br/>");
|
||||
|
||||
// recupero elenco users associati al FORNITORE....
|
||||
var userList = dbController.GetUsersFilt(UserLevel.ND, 0, item.SupplierId, 0);
|
||||
foreach (var user in userList)
|
||||
{
|
||||
// invio email di notifica nuovi ordini inseriti
|
||||
emailDest = user.Email;
|
||||
// invio!
|
||||
await _emailSender.SendEmailAsync(emailDest, emailSubj, emailBody);
|
||||
}
|
||||
|
||||
// TRASPORTATORI!
|
||||
emailSubj = $"GWMS: Ordine TRASPORTO GAS per {item.Plant.PlantDesc}";
|
||||
sb = new StringBuilder();
|
||||
sb.AppendLine($"<h3>Trasportatore {item.Transporter.TransporterDesc}</h3>");
|
||||
sb.AppendLine($"<b>Fornitore {item.Supplier.SupplierDesc}</b>");
|
||||
sb.AppendLine($"Impianto di destinazione {item.Plant.PlantDesc}");
|
||||
sb.AppendLine("");
|
||||
sb.AppendLine($"Ordine di consegna: {item.OrderCode}");
|
||||
sb.AppendLine($"Data ordine: {item.DtOrder}");
|
||||
sb.AppendLine($"Data consegna indicativa: {item.DtETA}");
|
||||
sb.AppendLine($"Quantità ordinata: {item.OrderQty}");
|
||||
sb.AppendLine("");
|
||||
sb.AppendLine($"Note: {item.OrderDesc}");
|
||||
emailBody = sb.ToString().Replace(Environment.NewLine, "<br/>");
|
||||
|
||||
// recupero elenco users associati al FORNITORE....
|
||||
userList = dbController.GetUsersFilt(UserLevel.ND, 0, 0, item.TransporterId);
|
||||
foreach (var user in userList)
|
||||
{
|
||||
// invio email di notifica nuovi ordini inseriti
|
||||
emailDest = user.Email;
|
||||
// invio!
|
||||
await _emailSender.SendEmailAsync(emailDest, emailSubj, emailBody);
|
||||
}
|
||||
}
|
||||
}
|
||||
fatto = true;
|
||||
}
|
||||
@@ -730,7 +784,7 @@ namespace GWMS.UI.Data
|
||||
try
|
||||
{
|
||||
done = dbController.PlantUpdate(currItem);
|
||||
InvalidateAllCache();
|
||||
await InvalidateAllCache();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -780,6 +834,20 @@ namespace GWMS.UI.Data
|
||||
return await Task.FromResult(dbResult);
|
||||
}
|
||||
|
||||
public async Task<bool> TestSendEmail(string destEmail, string oggetto, string corpo)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
await _emailSender.SendEmailAsync(destEmail, oggetto, corpo);
|
||||
answ = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
public async Task<List<TransporterModel>> TransportersGetAll()
|
||||
{
|
||||
List<TransporterModel> dbResult = new List<TransporterModel>();
|
||||
|
||||
Reference in New Issue
Block a user