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); }
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"]); }
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); }
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); }
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); }
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); }
public void CompareFromNullRowThrowsException() { ResultSetRow row = null; Assert.ThrowsException <ArgumentNullException>(() => { row.EqualRows(new ResultSetRow()); }, "r2"); }
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()); } } }
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); }
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)); }
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(); }
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)); }
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); }
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); }
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))); }
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)); }
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); }
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))); }
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); } }
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); }
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)); }
public string GetIdByPath(string nodePath) { ResultSetRow row = FindNodeByPath(ref nodePath); return(row.node.id); }
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()); }
public void CreateFromReaderThrowsWithNullReader() { Assert.ThrowsException <ArgumentNullException>(() => { ResultSetRow.CreateFromReader(null); }, "reader"); }
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); } }
public string GetPathById(string id) { ResultSetRow row = FindNodeById(id); return(PathUtils.ConvertFromRepositoryPath(PathUtils.CovertFromModelPathToRepositoryPath(row.columns[0].value))); }