Beispiel #1
0
        private async Task SendReservationEmail(int bookingDtoType, string bookingDtoName, int reservationDtoAssistants, List<InvitedGuest> reservationDtoGuestList, string reservationDtoEmail, DateTime reservationDtoDate, Booking reservation)
        {
            var url = Configuration["EmailServiceUrl"];
            var emailAndTokenTo = reservationDtoGuestList.Any() ? reservationDtoGuestList.ToDictionary(guest => guest.GuestToken, guest => guest.Email) : new Dictionary<string, string>();

            var orderLines = reservation.Order.SelectMany(o => o.OrderLine).ToList().Select(o => o.IdDishNavigation.Name).ToList();
            var acceptUrl = string.Format(Configuration["AcceptBooking"], reservation.ReservationToken);
            var cancelUrl = string.Format(Configuration["CancelBooking"], reservation.ReservationToken);

            var dataToSend = new EmailDto
            {
                BookingDate = reservationDtoDate,
                Assistants = reservationDtoAssistants > 0 ? reservationDtoAssistants : reservationDtoGuestList.Count,
                EmailAndTokenTo = emailAndTokenTo,
                EmailFrom = reservationDtoEmail,
                EmailType = bookingDtoType == 0 ? EmailTypeEnum.CreateBooking : EmailTypeEnum.Order,
                BookingToken = reservation.ReservationToken,
                ButtonActionList = bookingDtoType == 0 ? new Dictionary<string, string>() : new Dictionary<string, string> { { acceptUrl, "Accept" }, { cancelUrl, "Cancel" } },
                DetailMenu = orderLines,
                Host = new Dictionary<string, string> { { reservation.Email, reservation.Name } },

            };

            await SendHostEmail(dataToSend);

            foreach (var guest in reservationDtoGuestList)
            {
                await SendInvitedGuestEmail(dataToSend, guest);
            }

            var mailService = new RestManagementService();
            await mailService.CallPostMethod(url, dataToSend);
        }
Beispiel #2
0
        private async Task SendHostEmail(EmailDto dataToSend)
        {
            var url = Configuration["EmailServiceUrl"];
            var host = dataToSend.Host.FirstOrDefault();
            dataToSend.EmailAndTokenTo.Add(host.Value, host.Key);

            dataToSend.EmailType = EmailTypeEnum.InvitedHost;
            dataToSend.ButtonActionList = new Dictionary<string, string>();
            var mailService = new RestManagementService();
            await mailService.CallPostMethod(url, dataToSend);
        }
Beispiel #3
0
        private async Task SendInvitedGuestEmail(EmailDto dataToSend, InvitedGuest guest)
        {
            var url = Configuration["EmailServiceUrl"];

            var acceptUrl = string.Format(Configuration["AcceptBooking"], guest.GuestToken);
            var cancelUrl = string.Format(Configuration["CancelBooking"], guest.GuestToken);
            dataToSend.EmailType = EmailTypeEnum.InvitedGuest;
            dataToSend.ButtonActionList = new Dictionary<string, string> { { acceptUrl, "Accept" }, { cancelUrl, "Cancel" } };
            var mailService = new RestManagementService();
            await mailService.CallPostMethod(url, dataToSend);
        }