Ejemplo n.º 1
0
 public DentistPage()
 {
     InitializeComponent();
     BindingContext = model = new DentistViewModel();
     this.Title     = "Booking appointments";
     NavigationPage.SetHasNavigationBar(this, true);
 }
Ejemplo n.º 2
0
 public ActionResult Index(DentistViewModel viewModel)
 {
     if (this.ModelState.IsValid)
     {
         this.dentistService.updateDentist(this.User.Identity.Name, viewModel.Name, viewModel.Description, viewModel.Town, viewModel.Spec);
         return(this.RedirectToAction("Index"));
     }
     return(this.View(viewModel));
 }
Ejemplo n.º 3
0
        public IActionResult Details(string id)
        {
            var dentist = this._dentistService
                          .GetDentistById(id);

            var dentistViewModel = new DentistViewModel
            {
                FirstName = dentist.FirstName,
                LastName  = dentist.LastName,
                Specialty = this._specialtyService
                            .GetSpecialtyNameById((int)dentist.SpecialtyId),
                ClinicName = this._clinicService
                             .GetClinicById((int)dentist.ClinicId)
                             .Name,
                ImageUrl = dentist.ImageUrl
            };

            return(View(dentistViewModel));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> DentistPatients()
        {
            var user = await this._userManager.GetUserAsync(User);

            var patients = this._patientService
                           .GetAllDentistPatients(user.Id)
                           .Select(p => new PatientViewModel
            {
                Id        = p.Id,
                FirstName = p.FirstName,
                LastName  = p.LastName,
            })
                           .ToArray();

            var ratings = this._ratingService
                          .GetAllRatingsForDentist(user.Id)
                          .Select(r => new RatingInputModel
            {
                DentistId       = user.Id,
                PatientId       = r.PatientId,
                RatingByPatient = r.RatingByPatient,
            })
                          .ToArray();

            if (ratings.Length == 0 && patients.Length == 0)
            {
                return(View("NoPatients"));
            }

            var averageRatingForDentistPerPatient = new Dictionary <string, string[]>();

            foreach (var patient in patients)
            {
                var ratingsByPatient = this._ratingService
                                       .GetAllRatingsForDentistByPatient(user.Id, patient.Id)
                                       .Select(r => new RatingInputModel
                {
                    DentistId       = user.Id,
                    PatientId       = r.PatientId,
                    RatingByPatient = r.RatingByPatient,
                })
                                       .ToArray();

                if (ratingsByPatient.Length > 0)
                {
                    double averageRating = ratingsByPatient
                                           .Average(r => r.RatingByPatient);

                    averageRatingForDentistPerPatient[patient.Id] = new string[]
                    { $"{patient.FirstName} {patient.LastName}",
                      averageRating.ToString("0.00", CultureInfo.InvariantCulture) };
                }
                else
                {
                    averageRatingForDentistPerPatient[patient.Id] = new string[]
                    { $"{patient.FirstName} {patient.LastName}",
                      "Not Rated" };
                }
            }

            var dentistViewModel = new DentistViewModel
            {
                AverageRatingByPatient = averageRatingForDentistPerPatient,
                AverageRating          = ratings.Count() > 0 ?
                                         ratings.Average(r => r.RatingByPatient).ToString("0.00", CultureInfo.InvariantCulture) :
                                         "Not Rated"
            };

            return(View(dentistViewModel));
        }