public  async Task CreatePatientProfile(string userId, PatientProfile patientProfile)
        {
            var patientData = patientProfile.Patient;
            patientData.ProxyId = userId;
            var patient = Mapper.Map<Patient>(patientData);
            Db.Patients.Add(patient);

            if (patientProfile.Addresses.Any())
            {
                foreach (var addressData in patientProfile.Addresses)
                {
                    var address = Mapper.Map<Address>(addressData);
                    Db.Addresses.Add(address);
                }
            }

            if (patientProfile.Insurance != null)
            {
                var insuranceData = patientProfile.Insurance;
                // TODO
            }
            await Db.SaveChangesAsync();
        }
 public async Task<IHttpActionResult> UpdatePatientProfileTask(ILoggedInPerson loggedInPerson, PatientProfile patientProfile)
 {
     return await TryAsync(async () =>
     {
         var command = new UpdatePatientProfileCommand { PatientProfile = patientProfile };
         var result = await CommandDispatcher.Dispatch(command);
         return Ok(result);
     }, memberParameters: new object[] { loggedInPerson, patientProfile });
 }