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); }
/// <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()); }