public byte[] ExecuteQuery(QueryData data) { var query=PrepareQuery(data); var endpoints = AssemblyConfigParser.EndpointURI(_assemblyPath,_assemblyName,"EFQueryClass"); if (endpoints.Count() == 0) throw new Exception("EFQuery.EFQueryClass:ExecuteQuery(QueryData data), no configuration provided for this type"); RISISqlContractClient client; if (_smode == SecutriyMode.basic) { var bnd=endpoints.Where(x => x.Key.Contains("basic")); if (bnd.Count() > 0) { client = new RISISqlContractClient(bnd.First().Key, new System.ServiceModel.EndpointAddress(bnd.First().Value)); client.ClientCredentials.ServiceCertificate.SetDefaultCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySerialNumber, "01"); client.ClientCredentials.ClientCertificate.SetCertificate( StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySerialNumber, "01"); var result = client.ExecuteSQLQuery(query); return result; } } return null; }
public void PostQuery(QueryData data) { var mgr = GetAssemblies(); List<byte[]> result = new List<byte[]>(); mgr.ForEach(x => result.Add(x.ExecuteQuery(data))); var dt=Packer.Unpack(result[0]); DataTable tbl = new DataTable(); tbl.ReadXml(dt); }
public string PrepareQuery(QueryData data) { string query = "select top 10 * from goods where 1=1 "; if (data.Name != "") query += "and name like '%" + data.Name + "%'"; return query; // throw new NotImplementedException(); }
List<QueryResult> IRISIQueryContract.PostQuery(QueryData data) { var result = new ConcurrentBag<byte[]>(); // new List<byte[]>(); var queryClassesManager = new QueryClassesManager(); var factory = new QueryClassesFactory(); try { queryClassesManager.LoadQueryClasses(); } catch (Exception exp) { logger.Warn("queryClassesManager, failed \r\n"+exp.ToString()); throw new FaultException("queryClassesManager, failed"); } var queryClasses = queryClassesManager.Repo.QueryClasses; Parallel.ForEach(queryClasses, currentClass => { try { var instance = factory.Create(currentClass); result.Add(instance.ExecuteQuery(data)); } catch (FaultException faultEx) { logger.Warn("failed on executing query \r\n" + faultEx.ToString()); } catch (Exception exp) { logger.Warn("failed creating IDataBase instance \r\n" + exp.ToString()); } }); List<QueryResult> re=null; try { re = result.ToQueryResult(); } catch (Exception exp) { logger.Warn("failed creating results list \r\n" + exp.ToString()); throw new FaultException("failed creating results list"); } return re; }