Esempio n. 1
0
        public ResultSetRow FindNodeByPath(ref string nodePath)
        {
            ResultSetRow lResult = null;

            nodePath = PathUtils.NormalicePath(nodePath);

            string queryString = PathUtils.ConvertToRepositoryPath(System.IO.Path.GetDirectoryName(nodePath) + "/" + ISO9075.Encode(System.IO.Path.GetFileName(nodePath)));
            var    query       = new RepositoryWebService.Query();

            query.language = Constants.QUERY_LANG_LUCENE;
            //TODO: Consultas que sí funcionan:
            //query.statement = "PATH:\"//app:company_home//cm:Pruebas//cm:Test_Folder/*\"";
            //query.statement = "PATH:\"//cm:Pruebas//cm:Test_Folder/*\"";  Todos los archivos de un folder
            //query.statement = "PATH:\"//cm:Pruebas//cm:Test_Folder\"";   Devuelve un folder
            query.statement = "PATH:\"" + queryString + "\"";

            QueryResult result = WebServiceFactory.getRepositoryService().query(spacesStore, query, false);

            if (result.resultSet.rows != null)
            {
                lResult = result.resultSet.rows[0];
            }

            return(lResult);
        }
Esempio n. 2
0
        public void CanCreateFromReader()
        {
            var r  = new TestDataReader();
            var rs = new ResultSet();

            r.ResultSets.Add(rs);

            rs.Schema.Columns.Add(new Column {
                Name = "cola", ClrType = typeof(string), DbType = "varchar"
            });
            rs.Schema.Columns.Add(new Column {
                Name = "colb", ClrType = typeof(int), DbType = "int"
            });

            var row = new ResultSetRow();

            row["cola"] = "will";
            row["colb"] = 33;
            rs.Rows.Add(row);

            Assert.IsTrue(r.Read()); // check that read works
            var readerRow = ResultSetRow.CreateFromReader(r);

            Assert.IsNotNull(readerRow);
            Assert.AreEqual(2, readerRow.Count);
            Assert.AreEqual("will", readerRow["cola"]);
            Assert.AreEqual(33, readerRow["colb"]);
        }
Esempio n. 3
0
        public RepositoryWebService.Reference GetReferenceFromResultSetRow(ResultSetRow row)
        {
            RepositoryWebService.Reference reference = null;

            reference       = new Alfresco.RepositoryWebService.Reference();
            reference.uuid  = row.node.id;
            reference.store = spacesStore;

            NamedValue[] namedValues = row.columns;

            Dictionary <string, string> namedValuesMap = new Dictionary <string, string>();

            // iterate through the columns of the result set to extract specific named values

            foreach (NamedValue namedValue in namedValues)
            {
                namedValuesMap.Add(namedValue.name, namedValue.value);
            }
            String path = namedValuesMap["{http://www.alfresco.org/model/content/1.0}path"];

            name = namedValuesMap["{http://www.alfresco.org/model/content/1.0}name"];

            reference.path = PathUtils.CovertFromModelPathToRepositoryPath(path);

            return(reference);
        }
Esempio n. 4
0
        public static bool EqualRows(this ResultSetRow r1, ResultSetRow r2)
        {
            if (r1 == null)
            {
                throw new ArgumentNullException("r1");
            }

            if (r2 == null)
            {
                throw new ArgumentNullException("r2");
            }

            if (r1.Count != r2.Count)
            {
                return(false);
            }

            foreach (var kr1 in r1)
            {
                var value1 = kr1.Value;

                object value2;
                if (!r2.TryGetValue(kr1.Key, out value2))
                {
                    return(false);
                }

                if (!EqualValues(kr1.Value, value2))
                {
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 5
0
        public static NodeBase GetNodeById(string documentId)
        {
            NodeBase lNode = null;

            Alfresco.RepositoryWebService.Store spacesStore = new Alfresco.RepositoryWebService.Store();
            spacesStore.scheme  = Alfresco.RepositoryWebService.StoreEnum.workspace;
            spacesStore.address = Constants.SPACES_STORE;


            // Create a query object
            Alfresco.RepositoryWebService.Query query = new Alfresco.RepositoryWebService.Query();
            query.language  = Constants.QUERY_LANG_LUCENE;
            query.statement = string.Format("@sys\\:node-uuid:\"{0}\"", documentId);
            QueryResult result = WebServiceFactory.getRepositoryService().query(spacesStore, query, true);

            if (result.resultSet.rows != null)
            {
                ResultSetRow row = result.resultSet.rows[0];
                lNode            = new NodeBase();
                lNode.properties = new NamedValue[row.columns.Length];
                row.columns.CopyTo(lNode.properties, 0);
                lNode.id = documentId;
            }

            return(lNode);
        }
Esempio n. 6
0
        private IDataReader CreateTestReader()
        {
            var r = new TestDataReader();

            r.ResultSets.Add(new ResultSet());
            r.ResultSets[0].Schema.Columns.Add(new Column {
                Name = "cola", ClrType = typeof(string), DbType = "varchar"
            });
            r.ResultSets[0].Schema.Columns.Add(new Column {
                Name = "colb", ClrType = typeof(int), DbType = "int"
            });

            var row1 = new ResultSetRow();

            row1["cola"] = "a";
            row1["colb"] = 33;

            var row2 = new ResultSetRow();

            row2["cola"] = "aa";
            row2["colb"] = 3333;

            r.ResultSets[0].Rows.Add(row1);
            r.ResultSets[0].Rows.Add(row2);

            return(r);
        }
Esempio n. 7
0
        public void CompareFromNullRowThrowsException()
        {
            ResultSetRow row = null;

            Assert.ThrowsException <ArgumentNullException>(() =>
            {
                row.EqualRows(new ResultSetRow());
            }, "r2");
        }
Esempio n. 8
0
        public void CanWriteAndReadRow()
        {
            var schema = new ResultSetSchema();

            schema.Columns.Add(new Column {
                Name = "cola", ClrType = typeof(int), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "colb", ClrType = typeof(string), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "colc", ClrType = typeof(DateTime), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "cold", ClrType = typeof(int), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "cole", ClrType = typeof(int), DbType = ""
            });

            var row = new ResultSetRow();

            row["cola"] = 12;
            row["colb"] = "hallo";
            row["colc"] = new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123);
            row["cold"] = null;
            row["cole"] = DBNull.Value;

            using (var writer = new TestXmlWriter())
            {
                new ResultSetRowSerializer().Serialize(writer.Writer, row, new ResultSetRowSerializerContext {
                    Schema = schema
                });

                using (var r = new TestXmlReader(writer.Xml))
                {
                    var row2 = new ResultSetRowSerializer().Deserialize(r.Reader, new ResultSetRowSerializerContext {
                        Schema = schema
                    });

                    Assert.IsNotNull(row2);
                    Assert.AreEqual(5, row2.Count);

                    Assert.AreEqual(12, row2["cola"]);
                    Assert.AreSame(typeof(int), row2["cola"].GetType());
                    Assert.AreEqual("hallo", row2["colb"]);
                    Assert.AreSame(typeof(string), row2["colb"].GetType());
                    Assert.AreEqual(new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123), row2["colc"]);
                    Assert.AreSame(typeof(DateTime), row2["colc"].GetType());
                    Assert.AreEqual(DBNull.Value, row2["cold"]);
                    Assert.AreSame(DBNull.Value.GetType(), row2["cold"].GetType());
                    Assert.AreEqual(DBNull.Value, row2["cole"]);
                    Assert.AreSame(DBNull.Value.GetType(), row2["cole"].GetType());
                }
            }
        }
Esempio n. 9
0
        public void ValiationFailsWithEmptyRowName()
        {
            var schema = new ResultSetSchema();

            var row = new ResultSetRow();

            row[" "] = "smith"; // defines use of string.isnulloremptywhitespace

            var ex = row.Validate(schema);

            Assert.IsNotNull(ex);
            Assert.AreSame(typeof(InvalidOperationException), ex.GetType());
            Assert.AreEqual("Row contains a value without column name (null/empty)", ex.Message);
        }
Esempio n. 10
0
        public void RowsDoNotEqualWithDifferentCountOfColumns()
        {
            var row1 = new ResultSetRow();

            row1["cola"] = "hello";
            row1["colb"] = DBNull.Value;

            var row2 = new ResultSetRow();

            row2["cola"] = "hello";
            row2["colb"] = DBNull.Value;
            row2["colc"] = null;

            Assert.IsFalse(row1.EqualRows(row2));
            Assert.IsFalse(row2.EqualRows(row1));
        }
Esempio n. 11
0
        private void initializeRootFolder()
        {
            // Suppress repainting the TreeView until all the objects have been created.
            treeView1.BeginUpdate();

            // get the root position, Company Home

            TreeNode rootNode = new TreeNode();

            Alfresco.RepositoryWebService.Reference reference = new Alfresco.RepositoryWebService.Reference();
            reference.store = this.spacesStore;
            reference.path  = "/app:company_home";

            // Create a query object
            Query query = new Query();

            query.language  = Constants.QUERY_LANG_LUCENE;
            query.statement = "Path:\"/\" AND @cm\\:title:\"Company Home\"";

            QueryResult result = this.repoService.query(this.spacesStore, query, true);
            string      name   = null;

            if (result.resultSet.rows != null)
            {
                // construct root node
                ResultSetRow row = result.resultSet.rows[0];
                foreach (NamedValue namedValue in row.columns)
                {
                    if (namedValue.name.Contains("title") == true)
                    {
                        name          = namedValue.value;
                        rootNode.Text = name;
                        rootNode.Name = name;
                    }
                }
                rootNode.Tag = row.node;
            }
            // add the root node to the tree view
            this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { rootNode });

            buildTree(rootNode, reference);

            // Begin repainting the TreeView.
            treeView1.EndUpdate();
        }
Esempio n. 12
0
        public void CanValidate()
        {
            var schema = new ResultSetSchema();

            schema.Columns.Add(new Column {
                Name = "Name", ClrType = typeof(string), DbType = "varchar"
            });
            schema.Columns.Add(new Column {
                Name = "Age", ClrType = typeof(int), DbType = "int"
            });

            var row = new ResultSetRow();

            row["Name"] = "smith";
            row["Age"]  = 81;

            Assert.IsNull(row.Validate(schema));
        }
Esempio n. 13
0
        public void ValidationFailsWithRowNameThatIsNotInSchema()
        {
            var schema = new ResultSetSchema();

            schema.Columns.Add(new Column {
                Name = "Age", ClrType = typeof(int), DbType = "varchar"
            });
            var row = new ResultSetRow();

            row["Name"] = "smith";
            row["Age"]  = 12;

            var ex = row.Validate(schema);

            Assert.IsNotNull(ex);
            Assert.AreSame(typeof(InvalidOperationException), ex.GetType());
            Assert.AreEqual("Column 'Name' is not defined in schema", ex.Message);
        }
Esempio n. 14
0
        public void ValidationFailsWithInvalidSchema()
        {
            var schema = new ResultSetSchema();

            schema.Columns.Add(new Column {
                Name = null, ClrType = typeof(string), DbType = "varchar"
            });

            var row = new ResultSetRow();

            row["Name"] = "smith";

            var ex = row.Validate(schema);

            Assert.IsNotNull(ex);
            Assert.AreSame(typeof(InvalidOperationException), ex.GetType());
            Assert.AreEqual("Invalid schema", ex.Message);
            Assert.IsNotNull(ex.InnerException);
        }
Esempio n. 15
0
        public string UpdateFileById(string id, byte[] document)
        {
            if (document == null)
            {
                return(string.Empty);
            }

            Id = id;
            RepositoryWebService.Reference reference;
            ResultSetRow row = FindNodeById(id);

            if (row == null)
            {
                throw new NotFoundDocumentException(id, ErrorMessages.DocumentNotFound);
            }

            reference = GetReferenceFromResultSetRow(row);
            Content lContent = UpdateDocument(reference, document);

            return(ISO9075.Decode(PathUtils.ConvertFromRepositoryPath(lContent.node.path)));
        }
Esempio n. 16
0
        public ResultSetRow FindNodeById(string nodeId)
        {
            ResultSetRow lResult = null;

            Alfresco.RepositoryWebService.Query query = new Alfresco.RepositoryWebService.Query();
            query.language = Constants.QUERY_LANG_LUCENE;
            //TODO: Consultas que sí funcionan:
            //query.statement = "PATH:\"//app:company_home//cm:Pruebas//cm:Test_Folder/*\"";
            //query.statement = "PATH:\"//cm:Pruebas//cm:Test_Folder/*\"";  Todos los archivos de un folder
            //query.statement = "PATH:\"//cm:Pruebas//cm:Test_Folder\"";   Devuelve un folder
            query.statement = "@sys\\:node-uuid:\"" + nodeId + "\"";

            QueryResult result = WebServiceFactory.getRepositoryService().query(spacesStore, query, false);

            if (result.resultSet.rows != null)
            {
                lResult = result.resultSet.rows[0];
            }

            return(lResult);
        }
        public void CanEquateRows()
        {
            var row1 = new ResultSetRow();
            var row2 = new ResultSetRow();

            Assert.IsTrue(row1.EqualRows(row2));

            row1["cola"] = 12;
            Assert.IsFalse(row1.EqualRows(row2));
            row2["cola"] = 11;
            Assert.IsFalse(row1.EqualRows(row2));
            row2["cola"] = 12;
            Assert.IsTrue(row1.EqualRows(row2));

            row1["colb"] = null;
            Assert.IsFalse(row1.EqualRows(row2));
            row2["colb"] = null;
            Assert.IsTrue(row1.EqualRows(row2));

            row1["cold"] = null;
            row2["cold"] = "abc";
            Assert.IsFalse(row1.EqualRows(row2));

            row1["cold"] = "def";
            row2["cold"] = null;
            Assert.IsFalse(row1.EqualRows(row2));
            row2["cold"] = "def";
            Assert.IsTrue(row1.EqualRows(row2));

            row1["colc"] = DBNull.Value;
            Assert.IsFalse(row1.EqualRows(row2));
            row2["colc"] = DBNull.Value;
            Assert.IsTrue(row1.EqualRows(row2));

            row2["colc"] = 12.6m;
            Assert.IsFalse(row1.EqualRows(row2));
            row1["colc"] = 14.6m;
            row2["colc"] = DBNull.Value;
            Assert.IsFalse(row1.EqualRows(row2));
        }
Esempio n. 18
0
        public void ValidationFailsIfRowValueDiffersFromClrTypeDefinedInSchema()
        {
            var schema = new ResultSetSchema();

            schema.Columns.Add(new Column {
                Name = "Name", ClrType = typeof(string), DbType = "varchar"
            });
            schema.Columns.Add(new Column {
                Name = "Age", ClrType = typeof(int), DbType = "int"
            });

            var row = new ResultSetRow();

            row["Name"] = "smith";
            row["Age"]  = "test";

            var ex = row.Validate(schema);

            Assert.IsNotNull(ex);
            Assert.AreSame(typeof(InvalidOperationException), ex.GetType());
            Assert.AreEqual("Value for 'Age' is of type 'System.String' while schema defines type 'System.Int32'", ex.Message);
        }
Esempio n. 19
0
        public string UpdateFileByPath(string path, byte[] document)
        {
            if (document == null)
            {
                return(string.Empty);
            }

            this.Path = path;
            ResultSetRow row = FindNodeByPath(ref path);

            if (row == null)
            {
                throw new NotFoundDocumentException(Id, path, ErrorMessages.DocumentNotFound);
            }

            var reference = GetReferenceFromResultSetRow(row);

            Id = reference.uuid;
            Content lContent = UpdateDocument(reference, document);

            return(ISO9075.Decode(PathUtils.ConvertFromRepositoryPath(lContent.node.path)));
        }
Esempio n. 20
0
        public void CanWriteRowWithVariousTypes()
        {
            var schema = new ResultSetSchema();

            schema.Columns.Add(new Column {
                Name = "cola", ClrType = typeof(int), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "colb", ClrType = typeof(string), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "colc", ClrType = typeof(DateTime), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "cold", ClrType = typeof(int), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "cole", ClrType = typeof(int), DbType = ""
            });

            var row = new ResultSetRow();

            row["cola"] = 12;
            row["colb"] = "hallo";
            row["colc"] = new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123);
            row["cold"] = null;
            row["cole"] = DBNull.Value;

            using (var writer = new TestXmlWriter())
            {
                new ResultSetRowSerializer().Serialize(writer.Writer, row, new ResultSetRowSerializerContext {
                    Schema = schema
                });

                var expectedXml = "<Row><cola>12</cola><colb>hallo</colb><colc>2011-09-14T18:58:44.123</colc></Row>";
                Assert.AreEqual(expectedXml, writer.Xml);
            }
        }
Esempio n. 21
0
        public void CanCreateFromReaderFor1ResultSet()
        {
            var dr = new TestDataReader();
            var rs = new ResultSet();

            dr.ResultSets.Add(rs);

            rs.Schema.Columns.Add(new Column {
                Name = "cola", DbType = "int", ClrType = typeof(int)
            });
            rs.Schema.Columns.Add(new Column {
                Name = "colb", DbType = "varchar", ClrType = typeof(string)
            });

            var row1 = new ResultSetRow();

            row1["cola"] = 15;
            row1["colb"] = "test";
            rs.Rows.Add(row1);

            var row2 = new ResultSetRow();

            row2["cola"] = 19;
            row2["colb"] = "testing";
            rs.Rows.Add(row2);

            var ar = ActionResult.CreateFromReader(dr);

            Assert.IsNotNull(ar);
            Assert.IsNotNull(ar.ResultSets);
            Assert.AreEqual(1, ar.ResultSets.Count);
            Assert.IsNotNull(ar.ResultSets[0]);
            Assert.IsNotNull(ar.ResultSets[0].Schema);
            Assert.IsNotNull(ar.ResultSets[0].Schema.Columns);
            Assert.AreEqual(2, ar.ResultSets[0].Schema.Columns.Count);
            Assert.IsNotNull(ar.ResultSets[0].Rows);
            Assert.AreEqual(2, ar.ResultSets[0].Rows.Count);
        }
Esempio n. 22
0
        public void CanCompareRows()
        {
            var row1 = new ResultSetRow();

            row1["cola"] = "hello";
            row1["colb"] = DBNull.Value;
            row1["colc"] = null;
            row1["cold"] = DBNull.Value;

            var row2 = new ResultSetRow();

            row2["cola"] = "hello";
            row2["colb"] = DBNull.Value;
            row2["colc"] = null;
            row2["cold"] = null;


            Assert.IsTrue(row1.EqualRows(row2));
            Assert.IsTrue(row2.EqualRows(row1));

            row2["cold"] = "check";
            Assert.IsFalse(row1.EqualRows(row2));
            Assert.IsFalse(row2.EqualRows(row1));
        }
Esempio n. 23
0
        public string GetIdByPath(string nodePath)
        {
            ResultSetRow row = FindNodeByPath(ref nodePath);

            return(row.node.id);
        }
Esempio n. 24
0
        public void SerializationAndDeserializationOfValuesIsLocalCultureIndependant()
        {
            // execute write and read using defferent cultures and check that datetime and decimal values are serialized and deserialized ok
            // use threads to avoid changing the current culture for th executing thread.

            var schema = new ResultSetSchema();

            schema.Columns.Add(new Column {
                Name = "Cola", ClrType = typeof(DateTime), DbType = ""
            });
            schema.Columns.Add(new Column {
                Name = "Colb", ClrType = typeof(decimal), DbType = ""
            });

            var row = new ResultSetRow();

            row["Cola"] = new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123);
            row["Colb"] = 18.66m;

            var writeContext = new ThreadContext
            {
                Row    = row,
                Schema = schema
            };

            var writeThread = new Thread(WriteXml);

            writeThread.CurrentCulture = new CultureInfo("nl-NL");
            writeThread.Start(writeContext);
            if (!writeThread.Join(2000))
            {
                Assert.Fail("WriteXml did not finish within time");
            }
            if (writeContext.Exception != null)
            {
                throw writeContext.Exception;
            }


            var readContext = new ThreadContext
            {
                Xml    = writeContext.Xml,
                Schema = schema
            };
            var readThread = new Thread(ReadXml);

            readThread.CurrentCulture = new CultureInfo("en-US");
            readThread.Start(readContext);
            if (!readThread.Join(2000))
            {
                Assert.Fail("ReadXml did not finish within time");
            }
            if (readContext.Exception != null)
            {
                throw readContext.Exception;
            }

            var _row = readContext.Row;

            Assert.IsNotNull(_row);
            Assert.AreEqual(2, _row.Count);
            Assert.AreEqual(new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123), _row["Cola"]);
            Assert.AreSame(typeof(DateTime), _row["Cola"].GetType());
            Assert.AreEqual(18.66m, _row["Colb"]);
            Assert.AreSame(typeof(Decimal), _row["Colb"].GetType());
        }
Esempio n. 25
0
 public void CreateFromReaderThrowsWithNullReader()
 {
     Assert.ThrowsException <ArgumentNullException>(() => { ResultSetRow.CreateFromReader(null); }, "reader");
 }
Esempio n. 26
0
        private void initializeRootFolder()
        {
            try
            {
                // Suppress repainting the TreeView until all the objects have been created.
                this.treeView1.BeginUpdate();

                // get the root position, Company Home

                TreeNode rootNode = new TreeNode();

                Alfresco.RepositoryWebService.Reference reference = new Alfresco.RepositoryWebService.Reference();
                reference.store = this.spacesStore;
                reference.path  = "/app:company_home";

                // Create a query object
                Query query = new Query();
                query.language  = QueryLanguageEnum.lucene;
                query.statement = "Path:\"/\" AND @cm\\:title:\"Company Home\"";

                QueryResult result = this.repoService.query(this.spacesStore, query, true);
                string      name   = null;
                if (result.resultSet.rows != null)
                {
                    // construct root node
                    ResultSetRow row = result.resultSet.rows[0];
                    foreach (NamedValue namedValue in row.columns)
                    {
                        if (namedValue.name.Contains("title") == true)
                        {
                            name          = namedValue.value;
                            rootNode.Text = name;
                            rootNode.Name = name;
                        }
                    }
                    rootNode.Tag = row.node;
                    if (this.selectedUuid.Equals(row.node.id))
                    {
                        this.setInitNode(rootNode);
                    }
                }
                // add the root node to the tree view
                this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { rootNode });
                try
                {
                    this.buildTree(rootNode, reference);
                }
                catch (Exception e)
                {
                    Log log = new Log();
                    log.ErrorLog(".\\log\\", "frmTreeViewBrowse method initializeRootFolder calling buildtree recursion method " + e.Message, e.StackTrace);
                }


                // Begin repainting the TreeView.
                this.treeView1.EndUpdate();
            }
            catch (Exception ex)
            {
                Log log = new Log();
                log.ErrorLog(".\\log\\", "frmTreeViewBrowse method initializeRootFolder " + ex.Message, ex.StackTrace);
            }
        }
Esempio n. 27
0
        public string GetPathById(string id)
        {
            ResultSetRow row = FindNodeById(id);

            return(PathUtils.ConvertFromRepositoryPath(PathUtils.CovertFromModelPathToRepositoryPath(row.columns[0].value)));
        }