Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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;
        }