Exemple #1
0
        public ActionResult <AppointmentDTO> PostAppointment(int id, AppointmentDTO appointment)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetBy(id);

            if (hairdresser == null)
            {
                return(NotFound());
            }

            if (appointment.StartMoment < DateTime.Now)
            {
                return(BadRequest());
            }

            IList <Treatment> treatments = new List <Treatment>();

            foreach (Treatment tr in appointment.Treatments)
            {
                treatments.Add(hairdresser.GetTreatment(tr.Id));
            }

            Appointment appointmentToCreate = new Appointment(treatments, appointment.StartMoment, appointment.Firstname, appointment.Lastname);

            bool result = hairdresser.AddAppointment(appointmentToCreate);

            if (result == false)
            {
                return(BadRequest());
            }

            _hairdresserRepository.SaveChanges();

            _hub.Clients.All.SendAsync("appointments", hairdresser.Appointments.Select(a => new AppointmentDTO()
            {
                Id = a.Id, Firstname = a.Firstname, Lastname = a.Lastname, StartMoment = a.StartMoment, Treatments = a.Treatments.Select(tr => tr.Treatment).ToList()
            }).ToList());

            return(Ok(new AppointmentDTO()
            {
                StartMoment = appointmentToCreate.StartMoment, Treatments = appointmentToCreate.Treatments.Select(tr => tr.Treatment).ToList()
            }));                                                                                                                                                                // CreatedAtAction() not possible --> bug
        }
        public async Task InitializeDataAsync()
        {
            _dbContext.Database.EnsureDeleted();

            if (_dbContext.Database.EnsureCreated())
            {
                // Hairlounge Marlies

                List <TimeRange> workday = new List <TimeRange>();
                workday.Add(new TimeRange(new Time(7, 30, 0), new Time(12, 30, 0)));
                workday.Add(new TimeRange(new Time(13, 30, 0), new Time(18, 30, 0)));


                IList <WorkDay> workDays = new List <WorkDay>
                {
                    new WorkDay(DayOfWeek.Monday, workday),
                    new WorkDay(DayOfWeek.Tuesday, workday.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Wednesday, workday.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Thursday, workday.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Friday, workday.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Saturday, new List <TimeRange>()),
                    new WorkDay(DayOfWeek.Sunday, new List <TimeRange>())
                };

                IList <Treatment> treatments = new List <Treatment>();
                Treatment         treatment  = new Treatment("Knippen", new TimeSpan(0, 20, 0), TreatmentCategory.MEN, 20);
                Treatment         treatment2 = new Treatment("Knippen", new TimeSpan(0, 20, 0), TreatmentCategory.WOMEN, 30);
                Treatment         treatment3 = new Treatment("Knippen", new TimeSpan(0, 20, 0), TreatmentCategory.CHILDREN, 10);
                Treatment         treatment4 = new Treatment("Drogen", new TimeSpan(0, 10, 0), TreatmentCategory.MEN, 10);
                Treatment         treatment5 = new Treatment("Drogen", new TimeSpan(0, 20, 0), TreatmentCategory.WOMEN, 10);

                treatments.Add(treatment);
                treatments.Add(treatment2);
                treatments.Add(treatment3);
                treatments.Add(treatment4);
                treatments.Add(treatment5);


                Appointment appointment = new Appointment(new List <Treatment>()
                {
                    treatment
                }, new DateTime(2020, 5, 27, 11, 30, 0), "Robbe", "Ramon");

                Hairdresser hairdresser1 = new Hairdresser("Hairlounge Marlies", "*****@*****.**", treatments, workDays)
                {
                    BannerPath = "Resources/Images/[email protected]/48169.jpg"
                };


                hairdresser1.AddAppointment(appointment);

                _dbContext.Add(hairdresser1);

                await CreateUser(hairdresser1.Email, "P@ssword1111");



                // Alexa

                List <TimeRange> workdayB = new List <TimeRange>();
                workdayB.Add(new TimeRange(new Time(7, 30, 0), new Time(12, 30, 0)));
                workdayB.Add(new TimeRange(new Time(13, 30, 0), new Time(18, 30, 0)));


                IList <WorkDay> workDaysB = new List <WorkDay>
                {
                    new WorkDay(DayOfWeek.Monday, workdayB),
                    new WorkDay(DayOfWeek.Tuesday, workdayB.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Wednesday, workdayB.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Thursday, workdayB.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Friday, workdayB.Select(wd => (TimeRange)wd.Clone()).ToList()),
                    new WorkDay(DayOfWeek.Saturday, new List <TimeRange>()),
                    new WorkDay(DayOfWeek.Sunday, new List <TimeRange>())
                };

                IList <Treatment> treatmentsB = new List <Treatment>();
                Treatment         treatmentB  = new Treatment("Knippen", new TimeSpan(0, 30, 0), TreatmentCategory.MEN, 25);
                Treatment         treatment2B = new Treatment("Knippen", new TimeSpan(0, 30, 0), TreatmentCategory.WOMEN, 35);
                Treatment         treatment3B = new Treatment("Knippen", new TimeSpan(0, 30, 0), TreatmentCategory.CHILDREN, 15);
                treatmentsB.Add(treatmentB);
                treatmentsB.Add(treatment2B);
                treatmentsB.Add(treatment3B);


                Appointment appointmentB = new Appointment(new List <Treatment>()
                {
                    treatmentB
                }, new DateTime(2020, 5, 27, 11, 30, 0), "Robbe", "Ramon");

                Hairdresser hairdresser1B = new Hairdresser("Alexa", "*****@*****.**", treatmentsB, workDaysB);
                hairdresser1B.CardImagePath = "Resources/Images/[email protected]/hairdresser.jpg";


                hairdresser1B.AddAppointment(appointmentB);

                _dbContext.Add(hairdresser1B);

                await CreateUser(hairdresser1B.Email, "P@ssword1111");

                // Placeholder haridressers without treatments and opening hours

                _dbContext.Add(new Hairdresser("Luxury treatments", "*****@*****.**")
                {
                    CardImagePath = "Resources/Images/[email protected]/hairdresser2.jpg"
                });
                await CreateUser("*****@*****.**", "P@ssword1111");

                _dbContext.Add(new Hairdresser("Hair to toe", "*****@*****.**")
                {
                    CardImagePath = "Resources/Images/[email protected]/hairdresser3.jpg"
                });
                await CreateUser("*****@*****.**", "P@ssword1111");

                _dbContext.Add(new Hairdresser("Coiffure", "*****@*****.**")
                {
                    CardImagePath = "Resources/Images/[email protected]/hairdresser4.jpg"
                });
                await CreateUser("*****@*****.**", "P@ssword1111");

                _dbContext.Add(new Hairdresser("De kapperzaak", "*****@*****.**")
                {
                    CardImagePath = "Resources/Images/[email protected]/hairdresser5.jpg"
                });
                await CreateUser("*****@*****.**", "P@ssword1111");
            }

            _dbContext.SaveChanges();
        }