public async Task <MahnungVersendenResponse> MahnungVersenden(List <int> orderItemIds, string language, int gewaehlteMahnungAnzahl, string userId) { try { var orderItemsByUser = await sqlDataAccess.GetOrderItemsByUser(orderItemIds.ToArray()); foreach (var itemByUser in orderItemsByUser) { dataBuilder.Reset(); var dataContext = dataBuilder .AddAuftraege(itemByUser.OrderItemIds) .AddBesteller(itemByUser.UserId) .AddUser(userId) .AddSprache(language) .AddValue("RückgabeTermin", DateTime.Today.AddDays(30).ToString("dd.MM.yyyy")) .Create(); switch (gewaehlteMahnungAnzahl) { case 1: // Sennde Mail Vorlage 1 var template1 = parameterHelper.GetSetting <AusleiheErsteMahnung>(); var user = userAccess.GetUser(itemByUser.UserId); template1.To = user.EmailAddress; await mailHelper.SendEmail(bus, template1, dataContext); break; case 2: // Sende Mail Vorlage 2 var template2 = parameterHelper.GetSetting <AusleiheZweiteMahnung>(); var initiatingUser = userAccess.GetUser(userId); template2.To = initiatingUser.EmailAddress; await mailHelper.SendEmail(bus, template2, dataContext); break; default: throw new InvalidEnumArgumentException(); } } await UpdateMahnungInfoForOrderItems(orderItemIds, gewaehlteMahnungAnzahl, userId); return(new MahnungVersendenResponse { Success = true }); } catch (Exception ex) { Log.Error(ex, "Unexptected error while sending Mahnungen"); return(new MahnungVersendenResponse { Success = false, Error = ex.Message }); } }
private async Task ForcedSendPasswordEmailBenutzungskopie(ConsumeContext <DownloadAssetRequest> context, bool changeEmailRecipient) { try { var template = parameterHelper.GetSetting <AufbereiteteBenutzungskopieZumDownloadBereit>(); var message = context.Message; var dataContext = dataBuilder .AddAuftraege(new[] { Convert.ToInt32(message.OrderItemId) }) .AddUser(message.Recipient) .AddValue("Fehlermeldung", "") .AddValue("PasswortZipDatei", passwordHelper.GetHashPassword(message.OrderItemId.ToString())) .Create(); // Beim Download der Benutzungskopie muss dass Passwort an den auslösenden Benutzer geschickt werden. // Im Template ist die allgemeine [email protected] hinterlegt. if (changeEmailRecipient) { template.To = dataContext.User.EmailAddress; } await mailHelper.SendEmail(bus, template, dataContext); } catch (Exception ex) { Log.Error(ex, "An exception occurred while sending an EMail"); throw; } }
private async Task SendMailBenutzungskopieOk(ConsumeContext <IAssetReady> context) { try { var template = parameterHelper.GetSetting <AufbereiteteBenutzungskopieZumDownloadBereit>(); var message = context.Message; var dataContext = dataBuilder .AddAuftraege(new[] { Convert.ToInt32(message.OrderItemId) }) .AddValue("Fehlermeldung", message.ErrorMessage) .AddValue("PasswortZipDatei", passwordHelper.GetHashPassword(message.OrderItemId.ToString())) .Create(); await mailHelper.SendEmail(bus, template, dataContext); } catch (Exception ex) { Log.Error(ex, "An exception occurred while sending an EMail"); throw; } }
private async Task SendDigipoolFailureMail(int orderItemId, string exceptionInfo) { try { var template = parameterHelper.GetSetting <DigipoolAufbereitungFehlgeschlagen>(); var dataContext = dataBuilder .AddAuftraege(new[] { orderItemId }) .AddValue("exceptionMessage", exceptionInfo) .Create(); await mailHelper.SendEmail(bus, template, dataContext); } catch (Exception ex) { Log.Error(ex, "An exception occurred while sending an EMail"); throw; } }
/// <summary> /// Fügt beim Builder folgendes hinzu: /// - eine eigene Liste (Bezeichnung vom Parameter propertyName), welche die Aufträge enthält /// - ein "Flag" (Bezeichnung vom Parameter propertyName ergänzt um "Vorhanden"), welches anzeigt, ob die Liste /// Einträge hat. /// </summary> private void AddAuftraegeAndFlag(IDataBuilder builder, List <OrderItem> orderItems, string propertyName) { builder.AddValue(propertyName + "Vorhanden", orderItems.Count > 0); builder.AddAuftraege(Context.Ordering, orderItems, propertyName); }