public IActionResult UpdateUserProfile([FromBody] EditableUserProfileDetails editableUserProfileDetails,
                                               int encounterId)
        {
            try
            {
                var updateUserProfile = userProfileService.UpdateUserProfileDetails(editableUserProfileDetails,
                                                                                    encounterId);

                return(Ok(updateUserProfile));
            }
            catch (Exception e)
            {
                return(Ok(e.Message.ToString()));
            }
        }
        public UserProfileDetails UpdateUserProfileDetails(EditableUserProfileDetails editableUserProfileDetails,
                                                           int encounterId)
        {
            var encounter        = unitOfWork.EncounterRepository.Details(encounterId);
            var patientDetails   = unitOfWork.PatientRepository.Details(encounter.PatientId);
            var emergencyContact = unitOfWork.EmergencyContactRepository.GetEmergencyContactsForOnePatient(patientDetails.Id);

            var department = unitOfWork.DepartmentRepository.Details(encounter.DepartmentId).DepartmentName;
            var room       = unitOfWork.RoomRepository.Details(encounter.RoomId).RoomNumber;

            var filteredUserProfileDetails = patientDetails.FilterUserProfileDetails();

            patientDetails.Email   = editableUserProfileDetails.Email;
            patientDetails.Phone   = editableUserProfileDetails.Phone;
            patientDetails.Address = editableUserProfileDetails.Address;

            var filteredEncounter = encounter.FilterEncounterDetails(department, room);

            filteredUserProfileDetails.EncounterDetails = filteredEncounter;


            filteredUserProfileDetails.EmergencyContact = new List <EmergencyContact>();

            editableUserProfileDetails
            .EmergencyContact
            .ToList()
            .ForEach(body =>
            {
                var databaseObject = unitOfWork.EmergencyContactRepository.Details(body.Id);

                databaseObject.Name  = body.Name;
                databaseObject.Email = body.Email;
                databaseObject.Phone = body.Phone;

                filteredUserProfileDetails.EmergencyContact.Add(body);
            });

            unitOfWork.PatientRepository.Edit(patientDetails);
            unitOfWork.Commit();

            return(GetUserProfileDetails(encounterId));
        }