public async Task <IActionResult> PutHairdresser(int id, Hairdresser hairdresser)
        {
            if (id != hairdresser.Id)
            {
                return(BadRequest());
            }

            _context.Entry(hairdresser).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!HairdresserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Hairdresser hairdresser = _hg.Get(id);

            _hg.Remove(hairdresser);
            return(RedirectToAction("Index"));
        }
Beispiel #3
0
        public void TestProperties()
        {
            /*Hairdresser : User //ID and other variables inherited are tested in User.
             * - Working hours
             * - Appointments
             */
            Hairdresser hairdresser = new Hairdresser();
            //Other entities are tested further in their own test class
            //Appointments
            Appointment appointment1 = new Appointment();

            appointment1.ID = 1;
            Appointment appointment2 = new Appointment();

            appointment2.ID = 2;

            Assert.IsNotNull(hairdresser.Appointments);
            hairdresser.Appointments.Add(appointment1);
            hairdresser.Appointments.Add(appointment2);
            Assert.AreEqual(hairdresser.Appointments.Count, 2);

            //TimeRanges
            TimeRange timeRange1 = new TimeRange();

            timeRange1.ID = 1;
            TimeRange timeRange2 = new TimeRange();

            timeRange1.ID = 2;

            Assert.IsNotNull(hairdresser.WorkingDays);
            hairdresser.WorkingDays.Add(timeRange1);
            hairdresser.WorkingDays.Add(timeRange2);
            Assert.AreEqual(hairdresser.WorkingDays.Count, 2);
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,IsPermanent")] Hairdresser hairdresser)
        {
            if (id != hairdresser.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(hairdresser);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!HairdresserExists(hairdresser.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(hairdresser));
        }
        public ActionResult <Treatment> PutTreatment(int id, TreatmentDTO treatment)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            if (id != treatment.Id)
            {
                return(BadRequest());
            }

            Treatment treatment2 = new Treatment(treatment.Name, new TimeSpan(treatment.Duration.Hours, treatment.Duration.Minutes, treatment.Duration.Seconds), treatment.Category, treatment.Price)
            {
                Id = treatment.Id
            };

            bool result = hairdresser.UpdateTreatment(treatment2);

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

            _hairdresserRepository.SaveChanges();
            return(NoContent());
        }
        public async Task <ActionResult <Hairdresser> > PostHairdresser(Hairdresser hairdresser)
        {
            _context.Hairdresser.Add(hairdresser);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetHairdresser), new { id = hairdresser.Id }, hairdresser));
        }
 public ActionResult Edit([Bind(Include = "ID,Username,Password,Name,PhoneNumber,Email,UserType")] Hairdresser hairdresser)
 {
     if (ModelState.IsValid)
     {
         _hg.Update(hairdresser);
         return(RedirectToAction("Index"));
     }
     return(View(hairdresser));
 }
 public ActionResult Edit([Bind(Include = "Id,lon,lat,Name,ReviewGrade,NumberGrades")] Hairdresser hairdresser)
 {
     if (ModelState.IsValid)
     {
         db.Entry(hairdresser).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(hairdresser));
 }
Beispiel #9
0
        public IHttpActionResult PostHairdresser(Hairdresser hairdresser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _hr.Create(hairdresser);
            return(CreatedAtRoute("DefaultApi", new { id = hairdresser.ID }, hairdresser));
        }
Beispiel #10
0
        public IHttpActionResult GetHairdresser(int id)
        {
            Hairdresser hairdresser = _hr.Get(id);

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

            return(Ok(hairdresser));
        }
Beispiel #11
0
        public ActionResult <Hairdresser> GetHairdresserWithoutId()
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            return(Ok(hairdresser));
        }
Beispiel #12
0
        public ActionResult <Hairdresser> GetHairdresser(int id)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetBy(id);

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

            return(Ok(hairdresser));
        }
Beispiel #13
0
        public ActionResult <Treatment> GetTreatmentWithoutId(int id)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            return(GetTreatment(hairdresser.Id, id));
        }
Beispiel #14
0
        public ActionResult <IEnumerable <Treatment> > GetTreatments(int id)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetBy(id);

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

            return(Ok(hairdresser.Treatments));
        }
Beispiel #15
0
        public ActionResult <IEnumerable <Treatment> > GetTreatmentsWithoutId()
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            return(Ok(hairdresser.Treatments));
        }
        public async Task <IActionResult> Create([Bind("Id,Name,IsPermanent")] Hairdresser hairdresser)
        {
            if (ModelState.IsValid)
            {
                _context.Add(hairdresser);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(hairdresser));
        }
Beispiel #17
0
        public IHttpActionResult DeleteHairdresser(int id)
        {
            Hairdresser hairdresser = _hr.Get(id);

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

            _hr.Remove(hairdresser);
            return(Ok(hairdresser));
        }
        public ActionResult <IEnumerable <Appointment> > GetAppointments()
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            return(Ok(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()));
        }
        public IActionResult DeleteHairdresser()
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            _hairdresserRepository.Delete(hairdresser);
            _hairdresserRepository.SaveChanges();

            return(NoContent());
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Hairdresser hairdresser = _hg.Get(id.Value);

            if (hairdresser == null)
            {
                return(HttpNotFound());
            }
            return(View(hairdresser));
        }
        private bool AddFile(IFormFile file, Hairdresser hairdresser, bool banner)
        {
            try
            {
                var folderName = Path.Combine("Resources", "Images");
                var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);

                if (!Directory.Exists(pathToSave + "/" + User.Identity.Name))
                {
                    Directory.CreateDirectory(pathToSave + "/" + User.Identity.Name);
                }

                if (file.Length > 0)
                {
                    var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                    folderName = Path.Combine("Resources", "Images", User.Identity.Name);
                    pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);
                    var fullPath = Path.Combine(pathToSave, fileName);
                    var dbPath   = Path.Combine(folderName, fileName);


                    using (var stream = new FileStream(fullPath, FileMode.Create))
                    {
                        file.CopyTo(stream);
                    }

                    if (banner)
                    {
                        hairdresser.BannerPath = dbPath;
                    }
                    else
                    {
                        hairdresser.CardImagePath = dbPath;
                    }


                    _hairdresserRepository.SaveChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                return(false);
            }
        }
        public ActionResult <Treatment> PostTreatment(TreatmentDTO treatment)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            Treatment treatmenToCreate = new Treatment(treatment.Name, new TimeSpan(treatment.Duration.Hours, treatment.Duration.Minutes, treatment.Duration.Seconds), treatment.Category, treatment.Price);

            hairdresser.AddTreatment(treatmenToCreate);

            _hairdresserRepository.SaveChanges();

            return(Ok(treatmenToCreate));
        }
        public IActionResult DeleteAppointemnt(int id)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            Appointment appointment = hairdresser.GetAppointment(id);

            hairdresser.RemoveAppointment(appointment);

            _hairdresserRepository.SaveChanges();

            return(NoContent());
        }
        public ActionResult <List <WorkDay> > GetWorkDays()
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            List <WorkDayDTO> workDays = new List <WorkDayDTO>();

            foreach (WorkDay workDay in hairdresser.OpeningHours.WorkDays)
            {
                workDays.Add(new WorkDayDTO((int)workDay.Day, workDay.Hours.ToList()));
            }

            return(Ok(workDays));
        }
Beispiel #25
0
        public Hairdresser FindHairdresser(int id)
        {
            Hairdresser hairdresser = null;

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationDbContext"].ConnectionString))
            {
                conn.Open();
                var command = new SqlCommand("select * from HairDresser,Person where personHairDresserId = personId and personHairDresserId =@HairDresserId", conn);
                command.Parameters.AddWithValue("HairDresserId", id);
                var reader = command.ExecuteReader();
                while (reader.Read())
                {
                    // Build the object
                    hairdresser = ObjectBuilder.CreateHairDresser(reader);
                }
            }
            return(hairdresser);
        }
Beispiel #26
0
        public ActionResult <Treatment> GetTreatment(int id, int treatmentId)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetBy(id);

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

            Treatment treatment = hairdresser.GetTreatment(treatmentId);

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

            return(Ok(treatment));
        }
Beispiel #27
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 ActionResult Index(int id)

        {
            try
            {
                hairDresser = btcr.FindHairdresser(id);
                if (hairDresser != null)
                {
                    return(View(hairDresser));
                }
                else
                {
                    return(View("Error"));
                }
            }
            catch (Exception)
            {
                return(View("Error"));
            }
        }
Beispiel #29
0
        public async Task <ActionResult <string> > Register(RegisterHairdresserDTO hairdresser)
        {
            IdentityUser user = new IdentityUser {
                UserName = hairdresser.Email, Email = hairdresser.Email
            };

            Hairdresser hairdresserToCreate = new Hairdresser(hairdresser.Name, hairdresser.Email);


            var result = await _userManager.CreateAsync(user, hairdresser.Password);

            if (result.Succeeded)
            {
                _hairdresserRepository.Add(hairdresserToCreate);
                _hairdresserRepository.SaveChanges();
                string token = GetToken(user);
                return(Created("", token));
            }
            return(BadRequest());
        }
        public ActionResult <AppointmentDTO> GetAppointment(int id)
        {
            Hairdresser hairdresser = _hairdresserRepository.GetByEmail(User.Identity.Name);

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

            Appointment appointment = hairdresser.GetAppointment(id);

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

            return(Ok(new AppointmentDTO()
            {
                Id = appointment.Id, Firstname = appointment.Firstname, Lastname = appointment.Lastname, StartMoment = appointment.StartMoment, Treatments = appointment.Treatments.Select(tr => tr.Treatment).ToList()
            }));
        }