public JsonModel CreateUpdatePatient(PatientDTO patientDTO, TokenModel token) { token.OrganizationID = 2; token.UserID = 1; Patients patient = null; // check user already exist or not patient = iPatientRepository.CheckExistingPatient <Patients>(patientDTO.Email, patientDTO.MRN, patientDTO.Id, token).FirstOrDefault(); if (patient != null) { //response response.data = new object(); response.Message = StatusMessage.PatientAlreadyExist; response.StatusCode = 422; return(response); } // Encrypt the fields data PHIEncryptedDTO pHIEncryptedModel = iPatientRepository.GetEncryptedPHIData <PHIEncryptedDTO>(patientDTO.FirstName, patientDTO.MiddleName, patientDTO.LastName, patientDTO.DOB != null ? patientDTO.DOB.ToString("yyyy-MM-dd HH:mm:ss.fffffff") : null, patientDTO.Email, patientDTO.SSN, patientDTO.MRN, null, null, null, null, null, null, null).FirstOrDefault(); // save client if (patientDTO.Id == 0) { patient = new Patients(); PatientMapToEntity(patientDTO, patient, pHIEncryptedModel, token, "add"); iPatientRepository.Create(patient); iPatientRepository.SaveChanges(); response.Message = StatusMessage.ClientCreated; response.StatusCode = (int)HttpStatusCodes.OK; } // update client else { patient = iPatientRepository.GetFirstOrDefault(a => a.Id == patientDTO.Id && a.IsDeleted == false && a.IsActive == true); // Map DTO Model to entity PatientMapToEntity(patientDTO, patient, pHIEncryptedModel, token, "update"); iPatientRepository.Update(patient); iPatientRepository.SaveChanges(); response.data = patientDTO; response.Message = StatusMessage.ClientUpdated; response.StatusCode = (int)HttpStatusCodes.OK; } return(response); }