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());
            }
Example #2
0
        public UpdateCareTeamMemberDataResponse Put(UpdateCareTeamMemberDataRequest request)
        {
            var response = new UpdateCareTeamMemberDataResponse()
            {
                Version = request.Version
            };

            try
            {
                if (string.IsNullOrEmpty(request.UserId))
                {
                    throw new UnauthorizedAccessException("ContactDD:CareTeamService:Put()::Unauthorized Access");
                }

                Manager.UpdateCareTeamMember(request);
            }
            catch (Exception ex)
            {
                CommonFormat.FormatExceptionResponse(response, base.Response, ex);

                var aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0";
                Helpers.LogException(int.Parse(aseProcessID), ex);
            }
            return(response);
        }
Example #3
0
        public UpdateCareTeamMemberDataResponse UpdateCareTeamMember(UpdateCareTeamMemberDataRequest request)
        {
            var response = new UpdateCareTeamMemberDataResponse();

            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            if (request.CareTeamMemberData == null)
            {
                throw new ArgumentNullException("CareTeamMemberData is Null", "request");
            }

            if (string.IsNullOrEmpty(request.ContactId))
            {
                throw new ArgumentNullException("Null or Empty ContactId", "request");
            }

            if (string.IsNullOrEmpty(request.CareTeamId))
            {
                throw new ArgumentNullException("Null or empty CareTeamId", "request");
            }

            if (string.IsNullOrEmpty(request.Id))
            {
                throw new ArgumentNullException("Null or empty MemberId", "request");
            }

            if (request.Id != request.CareTeamMemberData.Id)
            {
                throw new ArgumentNullException("CareTeamMemberData.Id and Id are different", "request");
            }

            var repo = _factory.GetCareTeamRepository(request, RepositoryType.CareTeam);

            if (repo == null)
            {
                throw new Exception("Repository is null");
            }

            try
            {
                if (!repo.CareTeamMemberExist(request.CareTeamId, request.Id))
                {
                    throw new Exception(string.Format("Care Team Member {0} does not exist", request.Id));
                }

                repo.UpdateCareTeamMember(request);
            }
            catch (Exception)
            {
                throw;
            }
            return(response);
        }
        public void CareTeamDataManager_UpdateCareTeamMember_Null_CareTeamMember_Request_Should_Throw()
        {
            var mockFactory = new Mock <ICareTeamRepositoryFactory>();
            var stubRequest = new UpdateCareTeamMemberDataRequest()
            {
                CareTeamId = "careteamId", Id = "memberId", CareTeamMemberData = null
            };

            mockFactory.Setup(
                f => f.GetCareTeamRepository(It.IsAny <IDataDomainRequest>(), It.IsAny <RepositoryType>()))
            .Returns((ICareTeamRepository)null);

            var careTeamDataManager = new CareTeamDataManager(mockFactory.Object);

            var data = careTeamDataManager.UpdateCareTeamMember(stubRequest);
        }
        public void CareTeamDataManager_UpdateCareTeamMember_InCompleteMember_EmptyMemberContactId_Should_Throw()
        {
            var mockFactory = new Mock <ICareTeamRepositoryFactory>();
            var stubRequest = new UpdateCareTeamMemberDataRequest()
            {
                ContactId = "cid", CareTeamId = "careteamId", Id = "memberId", CareTeamMemberData = new CareTeamMemberData()
                {
                    Id = "memberId1", StatusId = 1
                }
            };

            mockFactory.Setup(
                f => f.GetCareTeamRepository(It.IsAny <IDataDomainRequest>(), It.IsAny <RepositoryType>()))
            .Returns((ICareTeamRepository)null);

            var careTeamDataManager = new CareTeamDataManager(mockFactory.Object);

            var data = careTeamDataManager.UpdateCareTeamMember(stubRequest);
        }
Example #6
0
        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);
            }
        }