Exemple #1
0
        /// <summary>
        /// Reperimento formato file documentum
        /// </summary>
        /// <param name="queryService"></param>
        /// <param name="mimeType"></param>
        /// <returns></returns>
        public static string getDctmFileFormat(IQueryService queryService, string fileExtension)
        {
            string fileFormat = string.Empty;

            PassthroughQuery passthroughQuery = new PassthroughQuery();

            passthroughQuery.QueryString  = string.Format("SELECT name FROM dm_format WHERE dos_extension = '{0}'", replaceInvalidFileExtension(fileExtension).ToLower());
            passthroughQuery.Repositories = new List <string>();
            passthroughQuery.Repositories.Add(DctmConfigurations.GetRepositoryName());

            QueryExecution queryExecution = new QueryExecution();

            queryExecution.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;
            queryExecution.MaxResultCount    = 1;

            QueryResult queryResult = queryService.Execute(passthroughQuery, queryExecution, null);

            if (queryResult.DataPackage.DataObjects != null &&
                queryResult.DataPackage.DataObjects.Count > 0)
            {
                DataObject dataObj = queryResult.DataPackage.DataObjects[0];

                fileFormat = ((StringProperty)dataObj.Properties.Properties[0]).Value;
            }

            return(fileFormat);
        }
        public void BasicPassthroughQuery()
        {
            PassthroughQuery query = new PassthroughQuery();

            query.QueryString = "select r_object_id, "
                                + "object_name from dm_cabinet";
            query.AddRepository(DefaultRepository);
            QueryExecution queryEx = new QueryExecution();

            queryEx.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;
            OperationOptions operationOptions = null;
            QueryResult      queryResult      = queryService.Execute(query, queryEx, operationOptions);

            Console.WriteLine("QueryId == " + query.QueryString);
            Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
            DataPackage       resultDp    = queryResult.DataPackage;
            List <DataObject> dataObjects = resultDp.DataObjects;

            Console.WriteLine("Total objects returned is: " + dataObjects.Count);
            foreach (DataObject dObj in dataObjects)
            {
                PropertySet docProperties = dObj.Properties;
                String      objectId      = dObj.Identity.GetValueAsString();
                String      docName       = docProperties.Get("object_name").GetValueAsString();
                Console.WriteLine("Document " + objectId + " name is " + docName);
            }
        }
Exemple #3
0
        public static string getDctmObjectId(IQueryService querySvc, Qualification qualification)
        {
            string result = string.Empty;

            PassthroughQuery passthroughQuery = new PassthroughQuery();

            passthroughQuery.QueryString  = "SELECT r_object_id  FROM " + qualification.GetValueAsString();
            passthroughQuery.Repositories = new List <string>();
            passthroughQuery.Repositories.Add(DctmConfigurations.GetRepositoryName());

            QueryExecution queryExecution = new QueryExecution();

            queryExecution.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;
            queryExecution.MaxResultCount    = 1;

            QueryResult queryResult = querySvc.Execute(passthroughQuery, queryExecution, null);

            if (queryResult.DataPackage.DataObjects != null && queryResult.DataPackage.DataObjects.Count > 0)
            {
                DataObject dataObj = queryResult.DataPackage.DataObjects[0];
                result = ((ObjectId)dataObj.Identity.Value).Id;
            }

            return(result);
        }
        public QueryResult SimplePassthroughQuery()
        {
            QueryResult queryResult;
            string queryString = "select distinct r_object_id from dm_document order by r_object_id ";
            int startingIndex = 0;
            int maxResults = 60;
            int maxResultsPerSource = 20;

            PassthroughQuery q = new PassthroughQuery();
            q.QueryString = queryString;
            q.AddRepository(DefaultRepository);

            QueryExecution queryExec = new QueryExecution(startingIndex,
                                                          maxResults,
                                                          maxResultsPerSource);
            queryExec.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;

            queryResult = searchService.Execute(q, queryExec, null);

            QueryStatus queryStatus = queryResult.QueryStatus;
            RepositoryStatusInfo repStatusInfo = queryStatus.RepositoryStatusInfos[0];
            if (repStatusInfo.Status == Status.FAILURE)
            {
                Console.WriteLine(repStatusInfo.ErrorTrace);
                throw new Exception("Query failed to return result.");
            }
            Console.WriteLine("Query returned result successfully.");
            DataPackage dp = queryResult.DataPackage;
            Console.WriteLine("DataPackage contains " + dp.DataObjects.Count + " objects.");
            foreach (DataObject dataObject in dp.DataObjects)
            {
                Console.WriteLine(dataObject.Identity.GetValueAsString());
            }
            return queryResult;
        }
Exemple #5
0
        /// <summary>
        /// Reperimento dei metadati relativi a tutti i documenti bloccati nell'ambito dell'amministrazione
        /// con la possibilità di filtrare per utente
        /// </summary>
        /// <param name="idAmministration"></param>
        /// <param name="idUser"></param>
        /// <returns></returns>
        public CheckOutStatus[] GetCheckOutStatusDocuments(string idAmministration, string idUser)
        {
            // Reperimento oggetto query
            PassthroughQuery query = this.GetQuery(idAmministration, idUser);

            return(this.GetCheckOutStatusDocuments(query));
        }
Exemple #6
0
        /// <summary>
        /// Creazione oggetto PassthroughQuery
        /// </summary>
        /// <param name="queryText"></param>
        /// <returns></returns>
        protected virtual PassthroughQuery CreatePassthroughQuery(string queryText)
        {
            PassthroughQuery query = new PassthroughQuery();

            query.QueryString = queryText;
            query.Repositories.Add(DctmConfigurations.GetRepositoryName());
            return(query);
        }
Exemple #7
0
        public QueryResult SimplePassthroughQueryDocument()
        {
            QueryResult queryResult;
            string      queryString         = "select r_object_id, object_name from eifx_deliverable_doc";
            int         startingIndex       = 0;
            int         maxResults          = 60;
            int         maxResultsPerSource = 30;

            PassthroughQuery q = new PassthroughQuery();

            q.QueryString = queryString;
            q.AddRepository(DefaultRepository);

            QueryExecution queryExec = new QueryExecution(startingIndex,
                                                          maxResults,
                                                          maxResultsPerSource);

            queryExec.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;

            queryResult = searchService.Execute(q, queryExec, null);

            QueryStatus          queryStatus   = queryResult.QueryStatus;
            RepositoryStatusInfo repStatusInfo = queryStatus.RepositoryStatusInfos[0];

            if (repStatusInfo.Status == Status.FAILURE)
            {
                Console.WriteLine(repStatusInfo.ErrorTrace);
                throw new Exception("Query failed to return result.");
            }
            Console.WriteLine("Query returned result successfully.");
            DataPackage dp = queryResult.DataPackage;

            Console.WriteLine("DataPackage contains " + dp.DataObjects.Count + " objects.");
            foreach (DataObject dObj in dp.DataObjects)
            {
                //Console.WriteLine(dObj.Identity.GetValueAsString());
                //
                PropertySet docProperties = dObj.Properties;
                String      objectId      = dObj.Identity.GetValueAsString();
                String      docName       = docProperties.Get("object_name").GetValueAsString();

                Console.WriteLine("Document " + objectId + " name is " + docName);
                // result = result + Environment.NewLine + "Document " + objectId + " name is " + docName;
                //lstCabinets.Add(new CabinetModel() { ObjectId = objectId, ObjectName = docName });
                //
            }
            return(queryResult);
        }
Exemple #8
0
        /// <summary>
        /// Esegue una DQL di tipo UPDATE o DDL (ALTER...)
        /// </summary>
        /// <param name="qrySrvc"></param>
        /// <param name="dql"></param>
        /// <returns></returns>
        public static QueryResult executePassThrough(IQueryService qrySrvc, string dql)
        {
            string           repositoryName = DctmConfigurations.GetRepositoryName();
            PassthroughQuery query          = new PassthroughQuery();

            query.QueryString = dql;
            query.AddRepository(repositoryName);
            QueryExecution queryEx = new QueryExecution();

            queryEx.MaxResultCount     = -1; // Nessun limite di risultati restituiti
            queryEx.MaxResultPerSource = -1;
            queryEx.CacheStrategyType  = CacheStrategyType.NO_CACHE_STRATEGY;
            OperationOptions operationOptions = null;

            return(qrySrvc.Execute(query, queryEx, operationOptions));
        }
Exemple #9
0
        public DataPackage GetLifecycles(String repository)
        {
            ServiceFactory serviceFactory = ServiceFactory.Instance;
            IQueryService  queryService   = null;

            queryService = serviceFactory
                           .GetRemoteService <IQueryService>(lifecycleService.GetServiceContext());

            PassthroughQuery query = new PassthroughQuery();

            // this query does not necessarily contain everything you will need
            // but shows most of the lifecycle-related properties on dm_policy
            query.QueryString = "select r_object_id, " +
                                "object_name, " +
                                "acl_name, " +
                                "included_type, " +
                                "include_subtypes, " +
                                "state_name, " +
                                "state_description, " +
                                "state_class, " +
                                "r_resume_state, " +
                                "r_current_state, " +
                                "entry_criteria_id, " +
                                "user_criteria_id, " +
                                "action_object_id, " +
                                "user_action_id, " +
                                "exception_state, " +
                                "allow_attach, " +
                                "allow_schedule, " +
                                "return_to_base, " +
                                "allow_demote, " +
                                "alias_set_ids, " +
                                "return_condition " +
                                "from dm_policy";
            query.AddRepository(repository);
            QueryExecution queryEx = new QueryExecution();

            queryEx.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;
            queryEx.MaxResultCount    = 50;
            OperationOptions operationOptions = null;

            Console.WriteLine("Executing query " + query.QueryString);
            QueryResult queryResult = queryService.Execute(query, queryEx,
                                                           operationOptions);

            return(queryResult.DataPackage);
        }
        public AclPackage GetOwnerPrivateAcls(String ownerName, String repository)
        {
            // instantiate a Query service proxy
            ServiceFactory serviceFactory = ServiceFactory.Instance;
            IQueryService  queryService   = null;

            queryService = serviceFactory.GetRemoteService <IQueryService>(accessControlService.GetServiceContext());

            // build and run the query
            PassthroughQuery query = new PassthroughQuery();

            query.QueryString = "select owner_name, object_name from dm_acl " +
                                "where r_is_internal='0' and acl_class='0' and owner_name='" + ownerName + "'";
            query.AddRepository(DefaultRepository);
            QueryExecution queryEx = new QueryExecution();

            queryEx.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;
            queryEx.MaxResultCount    = -1;  // no limit
            OperationOptions operationOptions = null;
            QueryResult      queryResult      = queryService.Execute(query, queryEx,
                                                                     operationOptions);
            DataPackage       resultDp    = queryResult.DataPackage;
            List <DataObject> dataObjects = resultDp.DataObjects;

            Console.WriteLine("Total objects returned is: " + dataObjects.Count);

            //convert the results into a List<AclIdentity>
            List <AclIdentity> identityList = new List <AclIdentity>();

            foreach (DataObject dObj in dataObjects)
            {
                PropertySet docProperties = dObj.Properties;
                AclIdentity aclIdentity   = new AclIdentity();
                aclIdentity.Domain         = docProperties.Get("owner_name").GetValueAsString();
                aclIdentity.Name           = docProperties.Get("object_name").GetValueAsString();
                aclIdentity.RepositoryName = repository;
                identityList.Add(aclIdentity);
            }

            // get and return the AclPackage
            return(accessControlService.Get(identityList));
        }
Exemple #11
0
        public String GetUserNameFromRepository()
        {
            ServiceFactory serviceFactory = ServiceFactory.Instance;
            IQueryService  queryService   = serviceFactory
                                            .GetRemoteService <IQueryService>(serviceDemo.DemoServiceContext);

            PassthroughQuery query = new PassthroughQuery();

            query.QueryString = "select user_name from dm_user where user_login_name = '" + serviceDemo.UserName + "'";
            query.AddRepository(serviceDemo.DefaultRepository);
            QueryExecution queryEx = new QueryExecution();

            queryEx.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;
            queryEx.MaxResultCount    = -1; // use default limit configured in dfs.properties
            OperationOptions operationOptions = null;
            QueryResult      queryResult      = queryService.Execute(query, queryEx, operationOptions);
            PropertySet      objectProperties = queryResult.DataPackage.DataObjects[0].Properties;

            return(objectProperties.Get("user_name").GetValueAsString());
        }
        /*
         *    Sequentially processes a cached query result
         *    Terminates when end of query result is reached
         */
        public void CachedPassthroughQuery()
        {
            PassthroughQuery query = new PassthroughQuery();

            query.QueryString = "select r_object_id, "
                                + "object_name from dm_cabinet";
            Console.WriteLine("Query string is " + query.QueryString);
            query.AddRepository(DefaultRepository);
            QueryExecution   queryEx          = new QueryExecution();
            OperationOptions operationOptions = null;

            queryEx.CacheStrategyType = CacheStrategyType.BASIC_FILE_CACHE_STRATEGY;
            Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
            queryEx.MaxResultCount = 10;
            Console.WriteLine("MaxResultCount = " + queryEx.MaxResultCount);

            while (true)
            {
                QueryResult queryResult = queryService.Execute(query, queryEx,
                                                               operationOptions);
                DataPackage       resultDp    = queryResult.DataPackage;
                List <DataObject> dataObjects = resultDp.DataObjects;
                if (dataObjects.Count == 0)
                {
                    break;
                }
                Console.WriteLine("Total objects returned is: " + dataObjects.Count);
                foreach (DataObject dObj in dataObjects)
                {
                    PropertySet docProperties = dObj.Properties;
                    String      objectId      = dObj.Identity.GetValueAsString();
                    String      cabinetName   =
                        docProperties.Get("object_name").GetValueAsString();
                    Console.WriteLine("Cabinet " + objectId + " name is "
                                      + cabinetName);
                }
                queryEx.StartingIndex += 10;
            }
        }
        public QueryResult SimplePassthroughQuery()
        {
            QueryResult queryResult;
            string      queryString         = "select distinct r_object_id from dm_document order by r_object_id ";
            int         startingIndex       = 0;
            int         maxResults          = 60;
            int         maxResultsPerSource = 20;

            PassthroughQuery q = new PassthroughQuery();

            q.QueryString = queryString;
            q.AddRepository(DefaultRepository);

            QueryExecution queryExec = new QueryExecution(startingIndex,
                                                          maxResults,
                                                          maxResultsPerSource);

            queryExec.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;

            queryResult = searchService.Execute(q, queryExec, null);

            QueryStatus          queryStatus   = queryResult.QueryStatus;
            RepositoryStatusInfo repStatusInfo = queryStatus.RepositoryStatusInfos[0];

            if (repStatusInfo.Status == Status.FAILURE)
            {
                Console.WriteLine(repStatusInfo.ErrorTrace);
                throw new Exception("Query failed to return result.");
            }
            Console.WriteLine("Query returned result successfully.");
            DataPackage dp = queryResult.DataPackage;

            Console.WriteLine("DataPackage contains " + dp.DataObjects.Count + " objects.");
            foreach (DataObject dataObject in dp.DataObjects)
            {
                Console.WriteLine(dataObject.Identity.GetValueAsString());
            }
            return(queryResult);
        }
Exemple #14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        protected virtual CheckOutStatus[] GetCheckOutStatusDocuments(PassthroughQuery query)
        {
            List <CheckOutStatus> list = new List <CheckOutStatus>();

            try
            {
                QueryExecution queryExecution = new QueryExecution();
                queryExecution.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;

                // Reperimento istanza queryservice
                IQueryService service = this.GetServiceInstance <IQueryService>(true);

                QueryResult result = service.Execute(query, queryExecution, null);

                if (result.DataPackage != null)
                {
                    foreach (DataObject dataObject in result.DataPackage.DataObjects)
                    {
                        // Creazione oggetto "CheckOutStatus"
                        list.Add(this.CreateCheckOutStatus(dataObject));
                    }
                }
            }
            catch (Exception ex)
            {
                list = null;

                logger.Debug("Errore in Documentum. GetCheckOutStatusDocuments: " + ex.ToString());
            }

            if (list != null)
            {
                return(list.ToArray());
            }
            else
            {
                return(null);
            }
        }
 public void BasicPassthroughQuery()
 {
     PassthroughQuery query = new PassthroughQuery();
     query.QueryString = "select r_object_id, "
                         + "object_name from dm_cabinet";
     query.AddRepository(DefaultRepository);
     QueryExecution queryEx = new QueryExecution();
     queryEx.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;
     OperationOptions operationOptions = null;
     QueryResult queryResult = queryService.Execute(query, queryEx, operationOptions);
     Console.WriteLine("QueryId == " + query.QueryString);
     Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
     DataPackage resultDp = queryResult.DataPackage;
     List<DataObject> dataObjects = resultDp.DataObjects;
     Console.WriteLine("Total objects returned is: " + dataObjects.Count);
     foreach (DataObject dObj in dataObjects)
     {
         PropertySet docProperties = dObj.Properties;
         String objectId = dObj.Identity.GetValueAsString();
         String docName = docProperties.Get("object_name").GetValueAsString();
         Console.WriteLine("Document " + objectId + " name is " + docName);
     }
 }
        /*
        *    Sequentially processes a cached query result
        *    Terminates when end of query result is reached
        */
        public void CachedPassthroughQuery()
        {
            PassthroughQuery query = new PassthroughQuery();
            query.QueryString = "select r_object_id, "
                                + "object_name from dm_cabinet";
            Console.WriteLine("Query string is " + query.QueryString);
            query.AddRepository(DefaultRepository);
            QueryExecution queryEx = new QueryExecution();
            OperationOptions operationOptions = null;
            queryEx.CacheStrategyType = CacheStrategyType.BASIC_FILE_CACHE_STRATEGY;
            Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
            queryEx.MaxResultCount = 10;
            Console.WriteLine("MaxResultCount = " + queryEx.MaxResultCount);

            while (true)
            {
                QueryResult queryResult = queryService.Execute(query, queryEx,
                                                           operationOptions);
                DataPackage resultDp = queryResult.DataPackage;
                List<DataObject> dataObjects = resultDp.DataObjects;
                if (dataObjects.Count == 0)
                {
                    break;
                }
                Console.WriteLine("Total objects returned is: " + dataObjects.Count);
                foreach (DataObject dObj in dataObjects)
                {
                    PropertySet docProperties = dObj.Properties;
                    String objectId = dObj.Identity.GetValueAsString();
                    String cabinetName =
                        docProperties.Get("object_name").GetValueAsString();
                    Console.WriteLine("Cabinet " + objectId + " name is "
                                       + cabinetName);
                }
                queryEx.StartingIndex += 10;
            }
        }
Exemple #17
0
        /// <summary>
        /// Restituisce il numero dei gruppi di un utente documentum.
        /// </summary>
        public static int getDctmCountGroupsByUserId(IQueryService querySvc, string userId)
        {
            int result = 0;

            PassthroughQuery passthroughQuery = new PassthroughQuery();

            passthroughQuery.QueryString = string.Format("SELECT group_name FROM dm_group WHERE any users_names IN ( SELECT user_name FROM dm_user WHERE user_os_name = '{0}')", userId);

            passthroughQuery.Repositories = new List <string>();
            passthroughQuery.Repositories.Add(DctmConfigurations.GetRepositoryName());

            QueryExecution queryExecution = new QueryExecution();

            queryExecution.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;

            QueryResult queryResult = querySvc.Execute(passthroughQuery, queryExecution, null);

            if (queryResult.DataPackage.DataObjects != null && queryResult.DataPackage.DataObjects.Count > 0)
            {
                result = queryResult.DataPackage.DataObjects.Count;
            }

            return(result);
        }
Exemple #18
0
        ///// <summary>
        ///// Reperimento dipendenze per l'oggetto richiesto
        ///// </summary>
        ///// <param name="fieldValue"></param>
        ///// <param name="tableName"></param>
        ///// <param name="fieldName"></param>
        ///// <param name="repeating"></param>
        ///// <returns></returns>
        //protected ObjectIdentity[] GetObjectDependencies(string fieldValue, string tableName, string fieldName, bool repeating)
        //{
        //    List<ObjectIdentity> list = new List<ObjectIdentity>();

        //    PassthroughQuery query = new PassthroughQuery();
        //    string dql = null;
        //    if (repeating)
        //        dql = "SELECT r_object_id FROM {0} WHERE ANY upper({1}) = upper('{2}')";
        //    else
        //        dql = "SELECT r_object_id FROM {0} WHERE upper({1}) = upper('{2}')";

        //    query.QueryString = string.Format(dql, tableName, fieldName,
        //                                        fieldValue.Replace("'", "''"));

        //    query.AddRepository(DctmConfigurations.GetRepositoryName());

        //    QueryExecution queryEx = new QueryExecution();
        //    queryEx.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;
        //    OperationOptions operationOptions = null;

        //    QueryResult queryResult = this.GetQueryServiceInstance().Execute(query, queryEx, operationOptions);

        //    if (queryResult.DataObjects.Count > 0)
        //    {
        //        ObjectId objId = (ObjectId)queryResult.DataObjects[0].Identity.Value;

        //        list.Add(DfsHelper.createObjectIdentityObjId(objId));
        //    }

        //    return list.ToArray();
        //}

        protected void checkReference(string fieldValue, string tableName, string fieldName, bool repeating)
        {
            IQueryService qrySrvc        = null;
            string        repositoryName = DctmConfigurations.GetRepositoryName();

            qrySrvc = this.GetQueryServiceInstance();

            PassthroughQuery query = new PassthroughQuery();
            string           dql   = null;

            if (repeating)
            {
                dql = "SELECT r_object_id FROM {0} WHERE ANY lower({1}) = lower('{2}')";
            }
            else
            {
                dql = "SELECT r_object_id FROM {0} WHERE lower({1}) = lower('{2}')";
            }

            query.QueryString = string.Format(dql, tableName, fieldName,
                                              fieldValue.Replace("'", "''"));
            query.AddRepository(repositoryName);
            QueryExecution queryEx = new QueryExecution();

            queryEx.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;
            OperationOptions operationOptions = null;
            QueryResult      queryResult      = qrySrvc.Execute(query, queryEx, operationOptions);

            // il risultato dovrebbe essere vuoto
            if (queryResult.DataObjects.Count > 0)
            {
                ObjectId objId = (ObjectId)queryResult.DataObjects[0].Identity.Value;

                throw new Exception(string.Format("Non è possibile cancellare {0}, in quanto referenziato l'oggetto con id={1}", fieldValue, objId.Id));
            }
        }
Exemple #19
0
        public IEnumerable <DocumentModel> SimplePassthroughQueryDocumentWithPath_New(SearchModel search)
        {
            List <DocumentModel> documentModels = new List <DocumentModel>();

            try
            {
                //string queryString = "select dm_document.r_object_id, dm_document.subject, dm_document.a_content_type,dm_document.object_name,dm_format.dos_extension from dm_document,dm_format where  dm_document.a_content_type = dm_format.name";
                //string queryString = " select r_object_id, eifx_deliverable_doc.r_modify_date, eifx_deliverable_doc.r_creation_date, object_name, title, eif_revision, er_package_name, eif_issue_reason, er_contract_number, eif_originator, eif_discipline, eif_acceptance_code, er_actual_sub_date from eifx_deliverable_doc ";

                string queryStringCount = " select count(r_object_id) as totalcount from eifx_deliverable_doc,dm_document,dm_format where eifx_deliverable_doc.r_object_id = dm_document.r_object_id and dm_document.a_content_type = dm_format.name ";


                string queryString = " select r_object_id ,title ,object_name,dm_document.r_creation_date as creationdate"
                                     + ", dm_document.r_modify_date as modifydate, eif_date_due, eif_acceptance_code, eif_area, eif_revision"
                                     + ", eif_issue_reason, eif_discipline, eif_originator, eif_type_of_doc, eif_project_ref"
                                     + ", er_actual_sub_date, er_wbs_level3, er_wbs_level4, er_package_name, er_contract_number"
                                     + ", dm_document.subject, dm_document.a_content_type, dm_format.dos_extension from eifx_deliverable_doc,dm_document,dm_format where eifx_deliverable_doc.r_object_id = dm_document.r_object_id and dm_document.a_content_type = dm_format.name ";

                //                string queryString = " select eifx_deliverable_doc.r_object_id ,eifx_deliverable_doc.title ,eifx_deliverable_doc.object_name,eifx_deliverable_doc.r_creation_date"
                //+ ",eifx_deliverable_doc.r_modify_date,eifx_deliverable_doc.eif_date_due,eifx_deliverable_doc.eif_acceptance_code,eifx_deliverable_doc.eif_area,eifx_deliverable_doc.eif_revision"
                //+ ",eifx_deliverable_doc.eif_issue_reason,eifx_deliverable_doc.eif_discipline,eifx_deliverable_doc.eif_originator,eifx_deliverable_doc.eif_type_of_doc,eifx_deliverable_doc.eif_project_ref"
                //+ ",eifx_deliverable_doc.er_actual_sub_date,eifx_deliverable_doc.er_wbs_level3,eifx_deliverable_doc.er_wbs_level4,eifx_deliverable_doc.er_package_name,eifx_deliverable_doc.er_contract_number"
                //+ ",dm_document.subject,dm_document.a_content_type,dm_format.dos_extensionfrom eifx_deliverable_doc,dm_document,dm_format ";
                //where eifx_deliverable_doc.r_object_id = dm_document.r_object_id and dm_document.a_content_type = dm_format.name

                if (!string.IsNullOrEmpty(search.ContractNumber))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " er_contract_number like '%" + search.ContractNumber + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " er_contract_number like '%" + search.ContractNumber + "%' ";
                }

                if (!string.IsNullOrEmpty(search.DocumentNumber))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " object_name like '%" + search.DocumentNumber + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " object_name like '%" + search.DocumentNumber + "%' ";
                }

                if (!string.IsNullOrEmpty(search.DocumentTitle))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " title like '%" + search.DocumentTitle + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " title like '%" + search.DocumentTitle + "%' ";
                }

                if (!string.IsNullOrEmpty(search.PackageName))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.er_package_name like '%" + search.PackageName + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.er_package_name like '%" + search.PackageName + "%' ";
                }

                if (!string.IsNullOrEmpty(search.DocumentType))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_type_of_doc like '%" + search.DocumentType + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_type_of_doc like '%" + search.DocumentType + "%' ";
                }

                if (!string.IsNullOrEmpty(search.DocumentAcceptanceStatus))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_acceptance_code like '%" + search.DocumentAcceptanceStatus + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_acceptance_code like '%" + search.DocumentAcceptanceStatus + "%' ";
                }

                if (!string.IsNullOrEmpty(search.Originator))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_originator like '%" + search.Originator + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_originator like '%" + search.Originator + "%' ";
                }

                if (!string.IsNullOrEmpty(search.Area))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_area like '%" + search.Area + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_area like '%" + search.Area + "%' ";
                }

                if (!string.IsNullOrEmpty(search.Revision))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_revision like '%" + search.Revision + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_revision like '%" + search.Revision + "%' ";
                }

                if (!string.IsNullOrEmpty(search.Discipline))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_discipline like '%" + search.Discipline + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_discipline like '%" + search.Discipline + "%' ";
                }

                ////if (!string.isnullorempty(search.filename))
                ////{
                ////    querystring = querystring + (querystring.contains("where") ? " and " : " where ") + " er_contract_number like '%" + search.filename + "%' ";
                ////}

                if (!string.IsNullOrEmpty(search.ProjectReference))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_project_ref like '%" + search.ProjectReference + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_project_ref like '%" + search.ProjectReference + "%' ";
                }

                if (!string.IsNullOrEmpty(search.IssueReason))
                {
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_issue_reason like '%" + search.IssueReason + "%' ";
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + " eifx_deliverable_doc.eif_issue_reason like '%" + search.IssueReason + "%' ";
                }

                ////if (!string.isnullorempty(search.supersearch))
                ////{
                ////    querystring = querystring + (querystring.contains("where") ? " and " : " where ") + " er_contract_number like '" + search.supersearch + "' ";
                ////}

                ////if (!string.isnullorempty(search.location))
                ////{
                ////    querystring = querystring + (querystring.contains("where") ? " and " : " where ") + " er_contract_number like '" + search.location + "' ";
                ////}

                if ((!String.IsNullOrEmpty(search.DateRangeDay)) && (!String.IsNullOrEmpty(search.DateRangeType)))
                {
                    string type = "";
                    if (search.DateRangeType.ToLower() == "modified date")
                    {
                        type = "dm_document.r_modify_date";
                    }
                    else if (search.DateRangeType.ToLower() == "created date")
                    {
                        type = "dm_document.r_creation_date";
                    }
                    else if (search.DateRangeType.ToLower() == "yymsg_date_submittedyy")
                    {
                        type = " er_actual_sub_date";
                    }
                    else if (search.DateRangeType.ToLower() == "yymsg_duedateyy")
                    {
                        type = "eif_date_due";
                    }


                    if (search.DateRangeDay.ToLower() == "today")
                    {
                        type = type + " >= DATE('" + DateTime.Today.ToString("MM/dd/yyyy 00:00:00") + "' , 'MM/dd/yyyy HI:mm:ss') and " + type + " <= DATE('" + DateTime.Today.ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " between " + DateTime.Today.ToString("MM/dd/yyyy 00:00:00") + " and " + DateTime.Today.ToString("MM/dd/yyyy 23:59:00");
                    }
                    else if (search.DateRangeDay.ToLower() == "yesterday")
                    {
                        type = type + " >= DATE('" + DateTime.Today.AddDays(-1).ToString("MM/dd/yyyy 00:00:00") + "' , 'MM/dd/yyyy HI:mm:ss') and " + type + " <= DATE('" + DateTime.Today.AddDays(-1).ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " between " + DateTime.Today.AddDays(-1).ToString("MM/dd/yyyy 00:00:00") + " and " + DateTime.Today.AddDays(-1).ToString("MM/dd/yyyy 23:59:00");
                    }
                    else if (search.DateRangeDay.ToLower() == "last 7 days")
                    {
                        type = type + " >= DATE('" + DateTime.Today.AddDays(-7).ToString("MM/dd/yyyy 00:00:00") + "' , 'MM/dd/yyyy HI:mm:ss') and " + type + " <= DATE('" + DateTime.Today.AddDays(0).ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " between " + DateTime.Today.AddDays(-7).ToString("MM/dd/yyyy 00:00:00") + " and " + DateTime.Today.AddDays(0).ToString("MM/dd/yyyy 23:59:00");
                    }
                    else if (search.DateRangeDay.ToLower() == "last 30 days")
                    {
                        type = type + " >= DATE('" + DateTime.Today.AddDays(-30).ToString("MM/dd/yyyy 00:00:00") + "' , 'MM/dd/yyyy HI:mm:ss') and " + type + " <= DATE('" + DateTime.Today.AddDays(0).ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " between " + DateTime.Today.AddDays(-30).ToString("MM/dd/yyyy 00:00:00") + " and " + DateTime.Today.AddDays(0).ToString("MM/dd/yyyy 23:59:00");
                    }
                    else if (search.DateRangeDay.ToLower() == "last 90 days")
                    {
                        type = type + " >= DATE('" + DateTime.Today.AddDays(-90).ToString("MM/dd/yyyy 00:00:00") + "' , 'MM/dd/yyyy HI:mm:ss') and " + type + " <= DATE('" + DateTime.Today.AddDays(0).ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " between " + DateTime.Today.AddDays(-90).ToString("MM/dd/yyyy 00:00:00") + " and " + DateTime.Today.AddDays(0).ToString("MM/dd/yyyy 23:59:00");
                    }
                    else if (search.DateRangeDay.ToLower() == "between")
                    {
                        type = type + " >= DATE('" + search.DateRangeFrom.ToString("MM/dd/yyyy 00:00:00") + "' , 'MM/dd/yyyy HI:mm:ss') and " + type + " <= DATE('" + search.DateRangeTo.ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                    }
                    else if (search.DateRangeDay.ToLower() == "before")
                    {
                        type = type + " <= DATE('" + search.DateRangeTo.ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " <= " + search.DateRangeTo.ToString("MM/dd/yyyy 23:59:00");
                    }
                    else if (search.DateRangeDay.ToLower() == "after")
                    {
                        type = type + " >= DATE('" + search.DateRangeTo.ToString("MM/dd/yyyy 00:00:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " >= " + search.DateRangeFrom.ToString("MM/dd/yyyy 00:00:00");
                    }
                    else if (search.DateRangeDay.ToLower() == "on")
                    {
                        type = type + " >= DATE('" + search.DateRangeFrom.ToString("MM/dd/yyyy 00:00:00") + "' , 'MM/dd/yyyy HI:mm:ss') and " + type + " <= DATE('" + search.DateRangeFrom.ToString("MM/dd/yyyy 23:59:00") + "','MM/dd/yyyy HI:mm:ss')";
                        //type = type + " between " + search.DateRangeFrom.ToString("MM/dd/yyyy 00:00:00") + " and " + search.DateRangeFrom.ToString("MM/dd/yyyy 23:59:00");
                    }
                    queryString      = queryString + (queryString.Contains("where") ? " and " : " where ") + type;
                    queryStringCount = queryStringCount + (queryStringCount.Contains("where") ? " and " : " where ") + type;
                }


                //Logger.WriteLog("QueryStringCount is: " + queryStringCount);


                int startingIndex       = search.PageNumber;
                int maxResults          = search.PageSize;
                int maxResultsPerSource = search.PageSize;

                PassthroughQuery q      = new PassthroughQuery();
                PassthroughQuery qCount = new PassthroughQuery();

                qCount.QueryString = queryStringCount;
                qCount.AddRepository(DefaultRepository);

                q.QueryString = queryString;
                q.AddRepository(DefaultRepository);

                QueryExecution    queryExecCount   = new QueryExecution(0, 10, 10);
                QueryResult       queryResultCount = searchService.Execute(qCount, queryExecCount, null);
                DataPackage       dpCount          = queryResultCount.DataPackage;
                List <DataObject> dpCountObject    = dpCount.DataObjects;

                //Logger.WriteLog("Total objects returned is: " + dpCountObject.Count);
                int totalObjCount = 0;
                foreach (DataObject dpCountObj in dpCountObject)
                {
                    PropertySet dpCountProperties = dpCountObj.Properties;

                    totalObjCount = Convert.ToInt32(dpCountProperties.Get("totalcount").GetValueAsObject());
                }
                //Logger.WriteLog("totalObjCount is " + totalObjCount);

                QueryExecution queryExec = new QueryExecution(startingIndex,
                                                              maxResults,
                                                              maxResultsPerSource);
                queryExec.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;

                QueryResult queryResult = searchService.Execute(q, queryExec, null);
                //QueryResult queryResult = queryService.Execute(query, queryEx,
                //                                           operationOptions);
                QueryStatus          queryStatus   = queryResult.QueryStatus;
                RepositoryStatusInfo repStatusInfo = queryStatus.RepositoryStatusInfos[0];
                //Console.WriteLine("Query returned result successfully.");
                DataPackage dp = queryResult.DataPackage;
                //Console.WriteLine("DataPackage contains " + dp.DataObjects.Count + " objects.");
                //Logger.WriteLog("SearchDocuments 353 " + dp.DataObjects.Count);

                if (repStatusInfo.Status == Status.FAILURE)
                {
                    //Logger.WriteLog("SearchDocuments 357 " + repStatusInfo.Status);
                    //  Console.WriteLine(repStatusInfo.ErrorTrace);
                    documentModels.Add(new DocumentModel()
                    {
                        ObjectId = "0", ObjectName = repStatusInfo.ErrorMessage, DocumentTitle = repStatusInfo.Name, DocumentNumber = repStatusInfo.Name, TotalCount = 1
                    });
                }
                if (dp.DataObjects.Count == 0)
                {
                    //Logger.WriteLog("SearchDocuments 364 " + dp.DataObjects.Count);
                    documentModels.Add(new DocumentModel()
                    {
                        ObjectId = "", ObjectName = "", DocumentTitle = "", DocumentNumber = "No record", TotalCount = 0
                    });
                }

                //Logger.WriteLog("SearchDocuments 364 " + dp.DataObjects.Count);
                foreach (DataObject dObj in dp.DataObjects)
                {
                    PropertySet docProperties = dObj.Properties;
                    //foreach (var item in docProperties.Properties)
                    //{
                    //    Logger.WriteLog("DataObjects " + item.Name);
                    //}

                    String objectId  = dObj.Identity.GetValueAsString();
                    String docName   = docProperties.Get("object_name").GetValueAsString();
                    String Extension = "PDF";     //docProperties.Get("dos_extension").GetValueAsString();
                    string repName   = dObj.Identity.RepositoryName;

                    string doctitle = docProperties.Get("title").GetValueAsString();

                    string docNumber = docProperties.Get("object_name").GetValueAsString();

                    //Console.WriteLine("RepositoryName: " + repName + " ,Document: " + objectId + " ,Name:" + docName + " ,Subject:" + docsubject);
                    string revision = docProperties.Get("eif_revision").GetValueAsString();

                    string creationDate = docProperties.Get("creationdate").GetValueAsString();

                    string modifiedDate = docProperties.Get("modifydate").GetValueAsString();

                    string package = docProperties.Get("er_package_name").GetValueAsString();

                    string issueReason = docProperties.Get("eif_issue_reason").GetValueAsString();

                    string contract = docProperties.Get("er_contract_number").GetValueAsString();

                    string originator = docProperties.Get("eif_originator").GetValueAsString();

                    string discipline = docProperties.Get("eif_discipline").GetValueAsString();

                    string acceptanceCode = docProperties.Get("eif_acceptance_code").GetValueAsString();

                    string actualSubDate = docProperties.Get("er_actual_sub_date").GetValueAsString();

                    //try
                    //{
                    //    Logger.WriteLog("SearchDocuments Before er_actual_sub_date Date ");

                    //    Logger.WriteLog("SearchDocuments Before er_actual_sub_date Date 1 ");
                    //    //Logger.WriteLog("SearchDocuments r_creation_date " + docProperties.Get("r_creation_date").ToString());
                    //    Logger.WriteLog("SearchDocuments er_actual_sub_date 2" + docProperties.Get("er_actual_sub_date").GetValueAsString());
                    //    Logger.WriteLog("SearchDocuments after er_actual_sub_date Date ");
                    //}
                    //catch (Exception ex)
                    //{
                    //    Logger.WriteLog("SearchDocuments r_creation_date Exception" + ex.Message);

                    //}


                    documentModels.Add(new DocumentModel()
                    {
                        ObjectId       = objectId,
                        ObjectName     = docName + "." + Extension,
                        DocumentTitle  = doctitle,
                        DocumentNumber = docNumber,
                        Revision       = revision,
                        AcceptanceCode = acceptanceCode,
                        ActualSubDate  = actualSubDate,
                        Contract       = contract,
                        CreationDate   = creationDate,
                        ModifiedDate   = modifiedDate,
                        Discipline     = discipline,
                        IssueReason    = issueReason,
                        Originator     = originator,
                        Package        = package,
                        TotalCount     = totalObjCount
                    });
                }
                //queryExec.StartingIndex += search.PageSize;

                //Logger.WriteLog("SearchDocuments 301 " + q);


                //Logger.WriteLog("SearchDocuments 302 " + q);
            }
            catch (Exception ex)
            {
                documentModels.Add(new DocumentModel()
                {
                    ObjectId       = "1", ObjectName = ex.Message, DocumentTitle = ex.StackTrace, DocumentNumber = "XXXX-1FD-345-QWE",
                    Revision       = "Rev983475",
                    AcceptanceCode = "TRRTT",
                    ActualSubDate  = "21-09-2020",
                    Contract       = "P34242-Contract",
                    CreationDate   = "21-09-2020",
                    ModifiedDate   = "21-09-2020",
                    Discipline     = "FR8530498",
                    IssueReason    = "Approved",
                    Originator     = "Mark Boyle",
                    Package        = "DFGH54938",
                    TotalCount     = 1
                });
                Logger.WriteLog("SearchDocuments searchServiceDemo " + ex.InnerException.ToString() + Environment.NewLine +
                                ex.GetBaseException().ToString() + Environment.NewLine +
                                ex.GetType().ToString());
            }

            return(documentModels);
        }
        public String GetUserNameFromRepository()
        {
            ServiceFactory serviceFactory = ServiceFactory.Instance;
            IQueryService queryService = serviceFactory
                .GetRemoteService<IQueryService>(serviceDemo.DemoServiceContext);

            PassthroughQuery query = new PassthroughQuery();

            query.QueryString = "select user_name from dm_user where user_login_name = '" + serviceDemo.UserName + "'";
            query.AddRepository(serviceDemo.DefaultRepository);
            QueryExecution queryEx = new QueryExecution();
            queryEx.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;
            queryEx.MaxResultCount = -1; // use default limit configured in dfs.properties
            OperationOptions operationOptions = null;
            QueryResult queryResult = queryService.Execute(query, queryEx, operationOptions);
            PropertySet objectProperties = queryResult.DataPackage.DataObjects[0].Properties;
            return objectProperties.Get("user_name").GetValueAsString();
        }
	public AclPackage GetOwnerPrivateAcls(String ownerName, String repository)
    {
		// instantiate a Query service proxy
		ServiceFactory serviceFactory = ServiceFactory.Instance;
		IQueryService queryService = null;
		
	    queryService = serviceFactory.GetRemoteService<IQueryService>(accessControlService.GetServiceContext());
		
		// build and run the query
		PassthroughQuery query = new PassthroughQuery();
		query.QueryString = "select owner_name, object_name from dm_acl " +
			"where r_is_internal='0' and acl_class='0' and owner_name='" + ownerName + "'";
		query.AddRepository(DefaultRepository);
		QueryExecution queryEx = new QueryExecution();
		queryEx.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;
		queryEx.MaxResultCount = -1; // no limit
		OperationOptions operationOptions = null;
		QueryResult queryResult = queryService.Execute(query, queryEx,
		        operationOptions);
		DataPackage resultDp = queryResult.DataPackage;
		List<DataObject> dataObjects = resultDp.DataObjects;
		Console.WriteLine("Total objects returned is: " + dataObjects.Count);
		
        //convert the results into a List<AclIdentity>
		List<AclIdentity> identityList = new List<AclIdentity>();
		foreach (DataObject dObj in dataObjects)
		{
			PropertySet docProperties = dObj.Properties;
			AclIdentity aclIdentity = new AclIdentity();
			aclIdentity.Domain = docProperties.Get("owner_name").GetValueAsString();
			aclIdentity.Name = docProperties.Get("object_name").GetValueAsString();
			aclIdentity.RepositoryName = repository;
			identityList.Add(aclIdentity);
		}
		
		// get and return the AclPackage
		return accessControlService.Get(identityList);
	}
Exemple #22
0
        /*
         * Demonstrates a typical scenario for calling the query service.
         * Gets an instance of the Query service and calls the execute operation
         * with a hard-coded query and operation options.
         */
        public List <CabinetModel> callQueryServiceCabinet()
        {
            /*
             * Get an instance of the QueryService by passing
             * in the service context to the service factory.
             */
            string result = "start";
            List <CabinetModel> lstCabinets = new List <CabinetModel>();

            try
            {
                ServiceFactory serviceFactory = ServiceFactory.Instance;
                IQueryService  querySvc       = serviceFactory.GetRemoteService <IQueryService>(serviceContext, moduleName, address);

                /*
                 * Construct the query and the QueryExecution options
                 */
                PassthroughQuery query = new PassthroughQuery();
                query.QueryString = "select r_object_id, object_name from dm_cabinet";
                query.AddRepository(repository);
                QueryExecution queryEx = new QueryExecution();
                queryEx.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;

                /*
                 * Execute the query passing in the operation options and print the result
                 */
                OperationOptions operationOptions = null;
                QueryResult      queryResult      = querySvc.Execute(query, queryEx, operationOptions);
                result = result + Environment.NewLine + "QueryId == " + query.QueryString;
                result = result + Environment.NewLine + "CacheStrategyType == " + queryEx.CacheStrategyType;
                //Console.WriteLine("QueryId == " + query.QueryString);
                //Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
                DataPackage       resultDp    = queryResult.DataPackage;
                List <DataObject> dataObjects = resultDp.DataObjects;
                int numberOfObjects           = dataObjects.Count;
                result = result + Environment.NewLine + "Total objects returned is: " + numberOfObjects;
                //Console.WriteLine("Total objects returned is: " + numberOfObjects);
                foreach (DataObject dObj in dataObjects)
                {
                    PropertySet docProperties = dObj.Properties;
                    String      objectId      = dObj.Identity.GetValueAsString();
                    String      docName       = docProperties.Get("object_name").GetValueAsString();
                    //Console.WriteLine("Document " + objectId + " name is " + docName);
                    result = result + Environment.NewLine + "Document " + objectId + " name is " + docName;
                    lstCabinets.Add(new CabinetModel()
                    {
                        ObjectId = objectId, ObjectName = docName
                    });
                }
            }
            //catch (FaultException<SerializableException> ex)
            //{
            //    Console.WriteLine(String.Format("Got FaultException[{0}] with message: {1}\n", ex.Detail, ex.Message));
            //}
            catch (Exception exx)
            {
                // Console.WriteLine(exx.StackTrace);
                throw exx;
            }
            return(lstCabinets);
        }
Exemple #23
0
        public List <KeywordModel> callQueryServiceKeyword()
        {
            /*
             * Get an instance of the QueryService by passing
             * in the service context to the service factory.
             */
            string result = "start";
            List <KeywordModel> lstKeywords = new List <KeywordModel>();

            try
            {
                ServiceFactory serviceFactory = ServiceFactory.Instance;
                IQueryService  querySvc       = serviceFactory.GetRemoteService <IQueryService>(serviceContext, moduleName, address);

                /*
                 * Construct the query and the QueryExecution options
                 */
                PassthroughQuery query = new PassthroughQuery();
                query.QueryString = "select *  from ecs_picklist where ecs_pl_category in ('Type of Document', 'Acceptance Code', 'Area', 'Revision', 'Discipline', 'Contract Number', 'Project Reference', 'Issue Reason')";
                query.AddRepository(repository);
                QueryExecution queryEx = new QueryExecution();
                queryEx.CacheStrategyType = CacheStrategyType.NO_CACHE_STRATEGY;

                /*
                 * Execute the query passing in the operation options and print the result
                 */
                OperationOptions operationOptions = null;
                QueryResult      queryResult      = querySvc.Execute(query, queryEx, operationOptions);
                result = result + Environment.NewLine + "QueryId == " + query.QueryString;
                result = result + Environment.NewLine + "CacheStrategyType == " + queryEx.CacheStrategyType;
                //Console.WriteLine("QueryId == " + query.QueryString);
                //Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
                DataPackage       resultDp    = queryResult.DataPackage;
                List <DataObject> dataObjects = resultDp.DataObjects;
                int numberOfObjects           = dataObjects.Count;
                result = result + Environment.NewLine + "Total objects returned is: " + numberOfObjects;
                //Console.WriteLine("Total objects returned is: " + numberOfObjects);
                foreach (DataObject dObj in dataObjects)
                {
                    PropertySet docProperties = dObj.Properties;
                    String      category      = docProperties.Get("ecs_pl_category").GetValueAsString();
                    String      ObjectName    = docProperties.Get("object_name").GetValueAsString();
                    String      SV            = docProperties.Get("ecs_short_val").GetValueAsString();

                    lstKeywords.Add(new KeywordModel()
                    {
                        Category = category, ObjectName = ObjectName, ShortValue = SV
                    });
                }
            }
            //catch (FaultException<SerializableException> ex)
            //{
            //    Console.WriteLine(String.Format("Got FaultException[{0}] with message: {1}\n", ex.Detail, ex.Message));
            //}
            catch (Exception)
            {
                // Console.WriteLine(exx.StackTrace);
                throw;
            }
            return(lstKeywords);
        }
        /*
         *    Sequentially processes a cached query result
         *    Terminates when end of query result is reached
         */
        //public IEnumerable<DocumentModel> CachedPassthroughQuery(string filename, string subject)
        //{
        //    List<DocumentModel> documentModels = new List<DocumentModel>();
        //    PassthroughQuery query = new PassthroughQuery();
        //    string queryString = "select r_object_id, object_name,subject from dm_document";

        //    if ((!String.IsNullOrEmpty(filename)) && (!String.IsNullOrEmpty(subject)))
        //    {
        //        queryString = "select r_object_id, object_name,subject from dm_document where object_name like '%" + filename + "%' and subject like '%" + subject + "%'";
        //    }
        //    if ((!String.IsNullOrEmpty(filename)) && (String.IsNullOrEmpty(subject)))
        //    {
        //        queryString = "select r_object_id, object_name,subject from dm_document where object_name like '%" + filename + "%'";
        //    }
        //    if ((String.IsNullOrEmpty(filename)) && (!String.IsNullOrEmpty(subject)))
        //    {
        //        queryString = "select r_object_id, object_name,subject from dm_document where subject like '%" + subject + "%'";
        //    }

        //    query.QueryString = queryString;
        //    //Console.WriteLine("Query string is " + query.QueryString);
        //    query.AddRepository(DefaultRepository);
        //    QueryExecution queryEx = new QueryExecution();
        //    OperationOptions operationOptions = null;

        //    queryEx.CacheStrategyType = CacheStrategyType.BASIC_FILE_CACHE_STRATEGY;
        //    // Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
        //    queryEx.MaxResultCount = 10;
        //    //Console.WriteLine("MaxResultCount = " + queryEx.MaxResultCount);
        //    try
        //    {


        //        while (true)
        //        {
        //            QueryResult queryResult = queryService.Execute(query, queryEx,
        //                                                       operationOptions);
        //            DataPackage resultDp = queryResult.DataPackage;

        //            List<DataObject> dataObjects = resultDp.DataObjects;
        //            if (dataObjects.Count == 0)
        //            {
        //                break;
        //            }
        //            //Console.WriteLine("Total objects returned is: " + dataObjects.Count);
        //            foreach (DataObject dObj in dataObjects)
        //            {
        //                PropertySet docProperties = dObj.Properties;
        //                String objectId = dObj.Identity.GetValueAsString();
        //                String docName = docProperties.Get("object_name").GetValueAsString();
        //                string repName = dObj.Identity.RepositoryName;
        //                string docsubject = docProperties.Get("subject").GetValueAsString();
        //                //Console.WriteLine("RepositoryName: " + repName + " ,Document: " + objectId + " ,Name:" + docName + " ,Subject:" + docsubject);
        //                documentModels.Add(new DocumentModel() { ObjectId = objectId, ObjectName = docName, Subject = docsubject });
        //                //yield;
        //            }
        //            queryEx.StartingIndex += 10;
        //        }
        //    }
        //    catch (Exception ex)
        //    {

        //        documentModels.Add(new DocumentModel() { ObjectId = "0", ObjectName =  ex.Message, Subject = ex.StackTrace });
        //    }
        //    return documentModels;
        //}

        public IEnumerable <KeywordModel> callQueryServiceKeyword()
        {
            List <KeywordModel> lstKeywords = new List <KeywordModel>();
            PassthroughQuery    query       = new PassthroughQuery();
            string queryString = "select distinct object_name, ecs_pl_category, ecs_short_val from ecs_picklist where any i_folder_id IN (select r_object_id from ecs_folder where (FOLDER('/ECSCONFIG/Application Configuration/ERL',descend) OR FOLDER('/ECSCONFIG/Application Configuration/S01',descend) OR FOLDER('/ECSCONFIG/Application Configuration/S23',descend)) and object_name like 'Active values') order by ecs_pl_category,object_name asc";

            //string queryString = "select distinct object_name, ecs_pl_category, ecs_short_val from ecs_picklist where ecs_pl_category in ('Type of Document', 'Acceptance Code', 'Area', 'Revision', 'Discipline', 'Contract Number', 'Project Reference', 'Issue Reason') and Folder('/ECSCONFIG/Application Configuration/ERL/03 Picklists/Current', descend)";
            //string queryString = "select r_object_id, object_name,subject from dm_document";
            // /ECSCONFIG / Application Configuration / ERL / 03 Picklists

            //if ((!String.IsNullOrEmpty(filename)) && (!String.IsNullOrEmpty(subject)))
            //{
            //    queryString = "select r_object_id, object_name,subject from dm_document where object_name like '%" + filename + "%' and subject like '%" + subject + "%'";
            //}
            //if ((!String.IsNullOrEmpty(filename)) && (String.IsNullOrEmpty(subject)))
            //{
            //    queryString = "select r_object_id, object_name,subject from dm_document where object_name like '%" + filename + "%'";
            //}
            //if ((String.IsNullOrEmpty(filename)) && (!String.IsNullOrEmpty(subject)))
            //{
            //    queryString = "select r_object_id, object_name,subject from dm_document where subject like '%" + subject + "%'";
            //}

            query.QueryString = queryString;
            //Console.WriteLine("Query string is " + query.QueryString);
            query.AddRepository(DefaultRepository);
            QueryExecution   queryEx          = new QueryExecution();
            OperationOptions operationOptions = null;

            queryEx.CacheStrategyType = CacheStrategyType.BASIC_FILE_CACHE_STRATEGY;
            // Console.WriteLine("CacheStrategyType == " + queryEx.CacheStrategyType);
            queryEx.MaxResultCount = 10;
            //Console.WriteLine("MaxResultCount = " + queryEx.MaxResultCount);
            try
            {
                while (true)
                {
                    QueryResult queryResult = queryService.Execute(query, queryEx,
                                                                   operationOptions);
                    DataPackage resultDp = queryResult.DataPackage;

                    List <DataObject> dataObjects = resultDp.DataObjects;
                    if (dataObjects.Count == 0)
                    {
                        break;
                    }
                    //Console.WriteLine("Total objects returned is: " + dataObjects.Count);
                    foreach (DataObject dObj in dataObjects)
                    {
                        PropertySet docProperties = dObj.Properties;
                        String      category      = docProperties.Get("ecs_pl_category").GetValueAsString();
                        String      ObjectName    = docProperties.Get("object_name").GetValueAsString();
                        String      SV            = docProperties.Get("ecs_short_val").GetValueAsString();

                        lstKeywords.Add(new KeywordModel()
                        {
                            Category = category, ObjectName = ObjectName, ShortValue = SV
                        });
                        //yield;
                    }
                    queryEx.StartingIndex += 10;
                }
            }
            catch (Exception ex)
            {
                lstKeywords.Add(new KeywordModel()
                {
                    Category = "Failure", ObjectName = "Check", ShortValue = "CK"
                });
                lstKeywords.Add(new KeywordModel()
                {
                    Category = "Exception", ObjectName = ex.StackTrace, ShortValue = ex.Message
                });
            }
            return(lstKeywords);
        }
        public DataPackage GetLifecycles(String repository)
        {
            ServiceFactory serviceFactory = ServiceFactory.Instance;
            IQueryService queryService = null;

            queryService = serviceFactory
                .GetRemoteService<IQueryService>(lifecycleService.GetServiceContext());

            PassthroughQuery query = new PassthroughQuery();

            // this query does not necessarily contain everything you will need
            // but shows most of the lifecycle-related properties on dm_policy
            query.QueryString = "select r_object_id, " +
                    "object_name, " +
                    "acl_name, " +
                    "included_type, " +
                    "include_subtypes, " +
                    "state_name, " +
                    "state_description, " +
                    "state_class, " +
                    "r_resume_state, " +
                    "r_current_state, " +
                    "entry_criteria_id, " +
                    "user_criteria_id, " +
                    "action_object_id, " +
                    "user_action_id, " +
                    "exception_state, " +
                    "allow_attach, " +
                    "allow_schedule, " +
                    "return_to_base, " +
                    "allow_demote, " +
                    "alias_set_ids, " +
                    "return_condition " +
                    "from dm_policy";
            query.AddRepository(repository);
            QueryExecution queryEx = new QueryExecution();
            queryEx.CacheStrategyType = CacheStrategyType.DEFAULT_CACHE_STRATEGY;
            queryEx.MaxResultCount = 50;
            OperationOptions operationOptions = null;
            Console.WriteLine("Executing query " + query.QueryString);
            QueryResult queryResult = queryService.Execute(query, queryEx,
                    operationOptions);
            return queryResult.DataPackage;
        }