/// <summary> /// Excute server method /// </summary> /// <param name="clientInfo">Information of client</param> /// <param name="assemblyName">Name of assembly</param> /// <param name="methodName">Name of method</param> /// <param name="parameters">Parameters of method</param> /// <returns>Result of excuting server method</returns> public object CallServerMethod(ClientInfo clientInfo, string assemblyName, string methodName, object[] parameters) { if (clientInfo == null) { throw new ArgumentNullException("clientInfo"); } if (string.IsNullOrEmpty(assemblyName)) { throw new ArgumentNullException("assemblyName"); } if (string.IsNullOrEmpty(methodName)) { throw new ArgumentNullException("methodName"); } if (clientInfo.LogonResult != LogonResult.Logoned) { PackageProvider.CheckMethodLogOnRequired(clientInfo.Solution, assemblyName, methodName); } else { User.CheckUserLogoned(clientInfo); } IModuleProvider provider = new EEPAdapter.DataModuleProvider(); //if (clientInfo.IsSDModule) //{ // provider = new EEPAdapter.SDModuleProvider(); //} provider.ClientInfo = clientInfo; var timeStart = DateTime.Now; Log.CallMethodLogBegin(clientInfo, timeStart, assemblyName, methodName); try { var returnObject = provider.CallMethod(assemblyName, methodName, parameters); var timeEnd = DateTime.Now; Log.CallMethodLogEnd(clientInfo, timeStart, assemblyName, methodName, timeEnd - timeStart); return returnObject; } catch (TargetInvocationException e) { var exception = e.InnerException; var message = Log.CallMethodLogError(clientInfo, timeStart, assemblyName, methodName, exception); throw new Exception(message, exception); } catch (Exception e) { var message = Log.CallMethodLogError(clientInfo, timeStart, assemblyName, methodName, e); throw new Exception(message, e); } }
private IModuleProvider GetModuleProvider(ClientInfo clientInfo) { IModuleProvider provider = null; if (clientInfo.UseDataSet) { if (clientInfo.IsSDModule) { provider = new EEPAdapter.SDModuleProvider(); } else { provider = new EEPAdapter.DataModuleProvider(); } } else { provider = new EntityModuleProvider(); } provider.ClientInfo = clientInfo; return provider; }