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
                });
            }
        }