private CareTeamMemberData BuildCareTeamMember(MECareTeamMember member) { CareTeamMemberData meMember = null; if (member != null) { meMember = new CareTeamMemberData { Id = member.Id.ToString(), ContactId = member.ContactId.ToString(), Core = member.Core, RoleId = (member.RoleId == null || member.RoleId == ObjectId.Empty) ? null : member.RoleId.ToString(), CustomRoleName = member.CustomRoleName, StartDate = member.StartDate, EndDate = member.EndDate, FrequencyId = (member.Frequency == null || member.Frequency == ObjectId.Empty) ? null : member.Frequency.ToString(), Distance = member.Distance ?? member.Distance, DistanceUnit = string.IsNullOrEmpty(member.DistanceUnit) ? "mi" : member.DistanceUnit, ExternalRecordId = member.ExternalRecordId, Notes = member.Notes, DataSource = member.DataSource, StatusId = (int)member.Status, CreatedOn = member.RecordCreatedOn, CreatedById = member.RecordCreatedBy.ToString(), UpdatedById = member.UpdatedBy == null ? null : member.UpdatedBy.ToString(), UpdatedOn = member.LastUpdatedOn }; } return(meMember); }
public void UpdateCareTeamMember_Test() { CareTeamMemberData ctm = new CareTeamMemberData() { ContactId = "5325c821072ef705080d3488", Id = "570e957fee4785557c0bd569", Notes = "Test123", StatusId = 1, Core = true, RoleId = "56f169f8078e10eb86038514" }; var request = new UpdateCareTeamMemberDataRequest() { CareTeamMemberData = ctm, ContactId = "5325db7bd6a4850adc047053", UserId = "5325c81f072ef705080d347e", CareTeamId = "570e957fee4785557c0bd56a", Context = "NG", ContractNumber = "InHealth001", Version = 1.0 }; var fact = new CareTeamRepositoryFactory(); CareTeamDataManager cm = new CareTeamDataManager(fact); var response = cm.UpdateCareTeamMember(request); Assert.IsTrue(response.Status.ErrorCode.IsEmpty()); }
private MECareTeamMember BuildMECareTeamMember(string userId, CareTeamMemberData member) { MECareTeamMember meMember = null; if (member != null) { meMember = new MECareTeamMember { Id = string.IsNullOrEmpty(member.Id) ? ObjectId.GenerateNewId() : ObjectId.Parse(member.Id), ContactId = ObjectId.Parse(member.ContactId), Core = member.Core, RoleId = string.IsNullOrEmpty(member.RoleId) ? (ObjectId?)BsonNull.Value : ObjectId.Parse(member.RoleId), CustomRoleName = member.CustomRoleName, StartDate = member.StartDate, EndDate = member.EndDate, Frequency = string.IsNullOrEmpty(member.FrequencyId) ? (ObjectId?)BsonNull.Value : ObjectId.Parse(member.FrequencyId), Distance = member.Distance ?? member.Distance, DistanceUnit = member.DistanceUnit, ExternalRecordId = member.ExternalRecordId, Notes = member.Notes, DataSource = member.DataSource, Status = (CareTeamMemberStatus)member.StatusId, }; if (string.IsNullOrEmpty(member.Id)) { //it is an insert meMember.RecordCreatedBy = ObjectId.Parse(userId); meMember.RecordCreatedOn = DateTime.UtcNow; } else { //it is an update if (meMember.RecordCreatedOn == DateTime.MinValue) { meMember.RecordCreatedOn = DateTime.UtcNow; } if (meMember.RecordCreatedBy == ObjectId.Empty) { meMember.RecordCreatedBy = ObjectId.Parse(this.UserId); } meMember.UpdatedBy = ObjectId.Parse(userId); meMember.LastUpdatedOn = DateTime.UtcNow; } } return(meMember); }
public bool UpdateCareTeamMember(object entity) { UpdateCareTeamMemberDataRequest request = (UpdateCareTeamMemberDataRequest)entity; CareTeamMemberData careTeamMemberData = request.CareTeamMemberData; bool result = false; try { if (careTeamMemberData != null) { using (ContactCareTeamMongoContext ctx = new ContactCareTeamMongoContext(_dbName)) { var contactCareTeam = GetContactCareTeam(request.ContactId); if (contactCareTeam == null) { throw new ApplicationException( "UpdateCareTeamMember: The referenced contact doesn't have a care team"); } if (contactCareTeam.Id != ObjectId.Parse(request.CareTeamId)) { throw new ApplicationException( "UpdateCareTeamMember: The referenced Care Team doesn't exist or is not assigned to the referenced contact"); } var currentMeCareTeamMember = contactCareTeam.MeCareTeamMembers.FirstOrDefault( x => x.Id == ObjectId.Parse(careTeamMemberData.Id)); if (currentMeCareTeamMember == null) { throw new ApplicationException( "UpdateCareTeamMember: The referenced care team member doesn't exist"); } var memberIndex = contactCareTeam.MeCareTeamMembers.FindIndex( x => x.Id == ObjectId.Parse(careTeamMemberData.Id)); var updatedMecareMemberTeam = BuildMECareTeamMember(this.UserId, careTeamMemberData); updatedMecareMemberTeam.RecordCreatedOn = currentMeCareTeamMember.RecordCreatedOn; updatedMecareMemberTeam.RecordCreatedBy = currentMeCareTeamMember.RecordCreatedBy; contactCareTeam.MeCareTeamMembers[memberIndex] = updatedMecareMemberTeam; contactCareTeam.LastUpdatedOn = DateTime.UtcNow; contactCareTeam.UpdatedBy = ObjectId.Parse(this.UserId); ctx.CareTeam.Collection.Save(contactCareTeam); AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.CareTeam.ToString(), contactCareTeam.Id.ToString(), DataAuditType.Update, request.ContractNumber); result = true; } } return(result); } catch (ApplicationException ex) { throw new ApplicationException(ex.Message); } catch (Exception ex) { throw new Exception("CareMemberDD:MongoCareMemberRepository:Update()" + ex.Message, ex.InnerException); } }