private PatientProfileDto GetProfile(Patient patient, Physician physician = null) { var patientProfileDto = new PatientProfileDto { FirstName = patient.FirstName, LastName = patient.LastName, DateOfBirth = patient.DateOfBirth, Email = patient.Email, PhoneNumber = patient.PhoneNumber, Address1 = patient.Address1, Address2 = patient.Address2, City = patient.City, State = patient.State, Zip = patient.Zip }; List <Appointment> appointments; if (physician == null) { appointments = _databaseContext.Appointment .Where(w => w.PatientId == patient.Id) .Include(i => i.Purpose) .Include(i => i.Physician) .ToList(); } else { appointments = _databaseContext.Appointment .Where(w => w.PatientId == patient.Id && w.PhysicianId == physician.Id) .Include(i => i.Purpose) .Include(i => i.Physician) .ToList(); } if (appointments != null && appointments.Count > 0) { patientProfileDto.Appointments = new List <PatientProfileDto.AppointmentDto>(); foreach (var appointment in appointments) { patientProfileDto.Appointments.Add(new PatientProfileDto.AppointmentDto { Id = appointment.Id, Physician = appointment.Physician.FirstName + " " + appointment.Physician.LastName, DateAndTime = appointment.DateAndTime, Purpose = appointment.Purpose.Purpose, CreatedDateTime = appointment.CreatedDateTime, CreatedBy = appointment.CreatedBy, IsApproved = appointment.IsApproved, IsCanceled = appointment.IsCanceled, CancellationReason = appointment.CancellationReason }); } } return(patientProfileDto); }
public async Task <Guid> UpdatePatientProfile(PatientProfileDto patientProfileData) { try { var savedPatientProfile = _dbContext.PatientProfiles.AsNoTracking().FirstOrDefault(p => p.Id == patientProfileData.Id); if (savedPatientProfile == null) { return(Guid.Empty); } _dbContext.Entry(_mapper.Map <PatientProfile>(patientProfileData)).State = EntityState.Modified; await _dbContext.SaveChangesAsync(); return(savedPatientProfile.Id); } catch (Exception e) { return(Guid.Empty); } }
public async Task <Guid> AddPatientProfile(PatientProfileDto patientProfileData) { try { if (await PatientHasBusinessProfile(patientProfileData.PatientId)) { return(Guid.Empty); } var user = await _userManager.FindByEmailAsync(_userId); var patientProfile = _mapper.Map <PatientProfile>(patientProfileData); _dbContext.PatientProfiles.Add(patientProfile); await _dbContext.SaveChangesAsync(); return(patientProfile.Id); } catch (Exception) { return(Guid.Empty); } }