コード例 #1
0
        public override int HandleCommand(CommandContext context, ISyncResult result)
        {
            //return base.HandleCommand(context, result);

            lock (lockObj)
            {
                Console.WriteLine("HandleCommand");

                PatientRemoteObject rObject = SerializeObj.Desrialize <PatientRemoteObject>(context.sSerializeObject);

                Console.WriteLine("InvokeTag:\t" + rObject.InvokeTag);

                switch (rObject.InvokeTag)
                {
                case "NewPatient":
                    _patientManager.NewPatient(rObject.Paramters.First() as Patient);
                    result.SetSerializedObject(SerializeObj.Serialize(true));
                    break;

                case "DeletePatient":
                    _patientManager.DeletePatient((ulong)(rObject.Paramters.First()));
                    result.SetSerializedObject(SerializeObj.Serialize(true));
                    break;

                case "ModifyPatient":
                    _patientManager.ModifyPatient(rObject.Paramters.First() as Patient);
                    result.SetSerializedObject(SerializeObj.Serialize(true));
                    break;

                case "GetPatients":
                    IList <Patient> patientList = _patientManager.GetPatients();
                    result.SetSerializedObject(SerializeObj.Serialize <IList <Patient> >(patientList));
                    break;

                default:
                    break;
                }
            }

            return(0);
        }
コード例 #2
0
        /// <summary>
        /// For local only
        /// </summary>
        //private UIH.XA.XSample.BusinessLogicExcutor.PatientManager TestPatientSource = new BusinessLogicExcutor.PatientManager();



        private byte[] SendSyncToPatientManager(string method, params object[] args)
        {
            CommandContext context = new CommandContext();

            context.iCommandId = BusinessLogicCommand;
            //context.sSender
            context.sReceiver             = BusinessLogicProxyName;
            context.bServiceAsyncDispatch = true;

            PatientRemoteObject rObject = new PatientRemoteObject();

            rObject.InvokeTag = method;
            rObject.Paramters = args;

            context.sSerializeObject = SerializeObj.Serialize(rObject);
            context.iWaitTime        = 30000;


            CLRCommunicationProxy proxy = _appContext.GetObject <ICommunicationProxy>(AppContextObjectName.DefaultCommunicationProxy) as CLRCommunicationProxy;

            ISyncResult result = proxy.SyncSendCommand(context);

            return(result.GetSerializedObject());
        }