示例#1
0
        public UpdateExternalPractitionerResponse UpdateExternalPractitioner(UpdateExternalPractitionerRequest request)
        {
            var prac = PersistenceContext.Load <ExternalPractitioner>(request.PractitionerDetail.PractitionerRef, EntityLoadFlags.CheckVersion);

            EnsureNoDeactivatedContactPointsWithActiveOrders(request.PractitionerDetail.ContactPoints);

            var assembler = new ExternalPractitionerAssembler();

            assembler.UpdateExternalPractitioner(request.PractitionerDetail, prac, PersistenceContext);

            prac.MarkEdited();
            var userCanVerify = Thread.CurrentPrincipal.IsInRole(AuthorityTokens.Admin.Data.ExternalPractitionerVerification);

            if (request.MarkVerified && userCanVerify)
            {
                prac.MarkVerified();
            }

            return(new UpdateExternalPractitionerResponse(assembler.CreateExternalPractitionerSummary(prac, PersistenceContext)));
        }
        public void Apply()
        {
            try
            {
                var item = (ExternalPractitionerSummary)this.Context.Selection.Item;

                Platform.GetService(
                    delegate(IExternalPractitionerAdminService service)
                {
                    var editRequest  = new LoadExternalPractitionerForEditRequest(item.PractitionerRef);
                    var editResponse = service.LoadExternalPractitionerForEdit(editRequest);

                    var updateRequest = new UpdateExternalPractitionerRequest(editResponse.PractitionerDetail, true);
                    service.UpdateExternalPractitioner(updateRequest);
                });

                DocumentManager.InvalidateFolder(typeof(UnverifiedFolder));
                DocumentManager.InvalidateFolder(typeof(VerifiedTodayFolder));
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, this.Context.DesktopWindow);
            }
        }