public async Task <ActionResult> Edit(IFormCollection collection, TemporaryVisitVM tempVisit)
        {
            var return_value = await _service.EditVisit_Post(tempVisit);

            if (return_value == 1)
            {
                return(RedirectToAction(nameof(Edit), new { message = "This patient already has visit at this time.", date = tempVisit.VisitDate.Date, dentistId = tempVisit.DentistId }));
            }
            return(RedirectToAction(nameof(Index)));
        }
Exemple #2
0
        public async Task <int> EditVisit_Post(TemporaryVisitVM editedVisit)
        {
            editedVisit.VisitDate = editedVisit.VisitDate + editedVisit.TimeOfVisit;
            var visits = _visitRepository.GetForDateTime(editedVisit.VisitDate);

            if (editedVisit.DentistId == 0)
            {
                if (visits.Any())
                {
                    if (visits.Select(v => v.PatientId).Contains(editedVisit.PatientId))
                    {
                        return(1);
                    }
                    var dentists = _dentistRepository.GetAll().Select(d => d.Id).ToList();
                    foreach (var v in visits)
                    {
                        if (dentists.Contains(v.DentistId))
                        {
                            dentists.Remove(v.DentistId);
                        }
                    }
                    if (dentists.Any())
                    {
                        editedVisit.DentistId = dentists.First();
                    }
                }
                else
                {
                    editedVisit.DentistId = _dentistRepository.GetAll().Select(d => d.Id).First();
                }
            }

            var visit = _mapper.Map <Visit>(editedVisit);
            await _visitRepository.Update(visit);

            return(0);
        }
Exemple #3
0
        public FirstVisitVM FirstVisit_Get(PatientForEditVM newPatient, DateTime?date, int?dentistId)
        {
            if (date == null)
            {
                date = DateTime.Today;
            }
            var dentists        = _dentistRepository.GetAll().ProjectTo <DentistBasicInfoVM>(_mapper.ConfigurationProvider);
            var patients        = _patientRepository.GetAll().ProjectTo <PatientBasicInfoVM>(_mapper.ConfigurationProvider);
            var bookedVisits    = new List <DateTime>();
            var availableVisits = new List <TimeSpan>();

            CheckForAvailableVisits(dentists, patients, bookedVisits, availableVisits, date.Value, dentistId);

            var dent = dentists.Select(s => new SelectListItem {
                Text = s.Name + " " + s.LastName, Value = s.Id.ToString()
            }).ToList();

            dent.Insert(0, new SelectListItem {
                Text = "Any", Value = "0"
            });

            var visit = new TemporaryVisitVM()
            {
                Dentists        = dent,
                PatientId       = newPatient.Id,
                AvailableVisits = availableVisits,
                VisitDate       = date.Value,
                DentistId       = dentistId.GetValueOrDefault(0)
            };

            return(new FirstVisitVM()
            {
                Patient = newPatient,
                Visit = visit
            });
        }