Esempio n. 1
0
        public async Task NotifyBookingByMail(BookingRequestDTO NewBooking)

        {
            MailModels mailmodel = new MailModels();

            mailmodel.ToEmail   = NewBooking.CustomerEmail;
            mailmodel.ToName    = NewBooking.CustomerName;
            mailmodel.StartTime = NewBooking.StartTime.ToString();

            //SG.k - 1qp0IET1KI81dkyb7vGg.171FKbfy0Vk3P9i489GLuQaU0A7G49JPjim7NgYoC1U
            //var apiKey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");

            mailmodel.subject          = "Booking notification";
            mailmodel.plainTextContent = "Hello " + mailmodel.ToName + "!" + " <br/> You have a confirmed reservation at: " + mailmodel.StartTime + " <br/> with" + mailmodel.ApplicationUserFirstName + " " + mailmodel.ApplicationUserLastName + "<br/> Thank you for booking with us" + "<br/> Best Regards AlltBokat customer support";
            mailmodel.htmlContent      = "Hello" + mailmodel.ToName + "!" + " <br/> You have a confirmed reservation at: " + mailmodel.StartTime + " <br/> with " + mailmodel.ApplicationUserFirstName + " " + mailmodel.ApplicationUserLastName + "<br/> Thank you for booking with us" + "<br/> Best Regards AlltBokat customer support";
            mailmodel.FromEmail        = ("*****@*****.**");
            mailmodel.FromName         = ("Alltbokat Support");


            var from = new EmailAddress(mailmodel.FromEmail, mailmodel.FromName);
            var to   = new EmailAddress(mailmodel.ToEmail, mailmodel.ToName);

            var apiKey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
            //var apiKey = "1qp0IET1KI81dkyb7vGg.171FKbfy0Vk3P9i489GLuQaU0A7G49JPjim7NgYoC1U";

            var client = new SendGridClient(apiKey);

            var msg = MailHelper.CreateSingleEmail(from, to, mailmodel.subject, mailmodel.plainTextContent, mailmodel.htmlContent);

            var response = await client.SendEmailAsync(msg);
        }
        public List <bool> ValidateBookingRequestDTO(BookingRequestDTO input)
        {
            List <bool> boolList = new List <bool>();

            boolList.Add(ValidateCustomerName(input.CustomerName));
            boolList.Add(ValidateCustomerEmail(input.CustomerEmail));
            boolList.Add(ValidateDescription(input.Description));
            boolList.Add(ValidateApplicationUserId(input.ApplicationUserId));
            boolList.Add(ValidateTime(input.StartTime, input.EndTime));

            return(boolList);
        }
        public async Task <IHttpActionResult> PutBookingModels(int id, BookingRequestDTO bookingRequest)
        {
            var bookingValidator = new BookingValidation();
            var errorList        = bookingValidator.ValidateBookingRequestDTO(bookingRequest);

            if (!errorList.All(x => x == true))
            {
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, "The Booking Request is invalid or otherwise incomplete.")));
            }

            bookingRequest = await bookingServices.UpdateSingleBooking(id, bookingRequest);

            return(Ok(bookingRequest));
        }
        public virtual BookingRequestDTO ConvertBookingModelstoBookingRequestDTO(BookingModels input)
        {
            BookingRequestDTO bookingRequest = new BookingRequestDTO()
            {
                Id = input.Id,
                ApplicationUserId = input.ApplicationUserId,
                CustomerEmail     = input.CustomerEmail,
                CustomerName      = input.CustomerName,
                Description       = input.description,
                StartTime         = input.BookingTimeSlotModels.startTime,
                EndTime           = input.BookingTimeSlotModels.endTime
            };

            return(bookingRequest);
        }
        public virtual BookingModels ConvertBookingRequestDTOtoBookingModels(BookingRequestDTO input)
        {
            BookingModels bookingModel = new BookingModels()
            {
                CustomerName          = input.CustomerName,
                CustomerEmail         = input.CustomerEmail,
                description           = input.Description,
                ApplicationUserId     = input.ApplicationUserId,
                BookingTimeSlotModels = new BookingTimeSlotModels()
                {
                    startTime = input.StartTime,
                    endTime   = input.EndTime
                }
            };

            return(bookingModel);
        }
        public async Task <IHttpActionResult> PostBookingModels(BookingRequestDTO bookingRequest)
        {
            if (bookingRequest == null)
            {
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, "The Booking Request is invalid or otherwise incomplete.")));
            }
            var bookingValidator = new BookingValidation();
            var errorList        = bookingValidator.ValidateBookingRequestDTO(bookingRequest);

            if (!errorList.All(x => x == true))
            {
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, "The Booking Request is invalid or otherwise incomplete.")));
            }
            // kalla på service layer valideringsmetod(bookingRequest);

            bookingRequest = await bookingServices.AddBookingRequest(bookingRequest);

            // TO DO returnera fel om en sådan booking redan finns

            await mailservices.NotifyBookingByMail(bookingRequest);

            return(CreatedAtRoute("DefaultApi", new { id = bookingRequest.Id }, bookingRequest));
        }