public void DrawVersion(DBDocumentVersion _v) { string text = _v.DataAsText; rtbRAW.Text = text; wbViewer.DocumentText = text; HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(text); rtbPureText.Text = HTMLUtils.GetPlainText(doc); HTMLMetaClass nvc = _v.Metadata; }
public Guid AddDocumentVersion(Guid DocID, DBDocumentVersion ver) { if (ver.ID == Guid.Empty) ver.ID = Guid.NewGuid(); DBDocument d = GetDocumentByID(DocID); if (d != null) { if ((d.Versions.Count > 0) && (d.LastVersion != null)) if (ver.DataAsText == d.LastVersion.DataAsText) { command.CommandText = "update DOCUMENTDATA set DD_LASTUPDATE = @DD_LASTUPDATE where DD_ID = @DD_ID"; command.Parameters.Clear(); command.Parameters.AddWithValue("DD_ID", d.LastVersion.ID); command.Parameters.AddWithValue("DD_LASTUPDATE", DateTime.Now); string zvq = GetSQL(command); int id = command.ExecuteNonQuery(); //throw new Exception("Заглушка для обновления последней версии"); } int vcnt = d.Versions.Count; command.CommandText = "insert into DOCUMENTDATA (DD_ID, DD_DOCID , DD_VERSION , DD_DATE , DD_LASTUPDATE , DD_BODY, DD_METADATA )" + " values ( @DD_ID, @DD_DOCID , @DD_VERSION , @DD_DATE , @DD_LASTUPDATE , @DD_BODY, @DD_METADATA )"; command.Parameters.Clear(); command.Parameters.AddWithValue("DD_ID", ver.ID); command.Parameters.AddWithValue("DD_DOCID", d.ID); command.Parameters.AddWithValue("DD_VERSION", vcnt); command.Parameters.AddWithValue("DD_DATE", ver.Date); command.Parameters.AddWithValue("DD_LASTUPDATE", ver.LastUpdate); command.Parameters.AddWithValue("DD_BODY", ver.Data); command.Parameters.AddWithValue("DD_METADATA", UTF8StrToBytes(ver.ResponseHeader)); string vq = GetSQL(command); int vid = command.ExecuteNonQuery(); } else { throw new Exception("Document not found. (ID='" + DocID.ToString() + "')"); } return ver.ID; }
public DBDocument GetDocumentByField(string field , string value ) { DBDocument doc = null; command.CommandText = "select * from DOCUMENT where ("+ field + " = @" + field + ")"; command.Parameters.Clear(); command.Parameters.AddWithValue(field, value); string q = GetSQL(command); SqlDataReader dr = command.ExecuteReader(); try { if (dr.HasRows) { if (dr.Read()) { doc = new DBDocument(this); doc.URL = dr["DC_URL"].ToString(); doc.ID = new Guid(dr["DC_ID"].ToString()); } } } finally { dr.Close(); } if ((doc != null)&&(doc.ID != Guid.Empty)) { command.CommandText = "select * from DOCUMENTDATA where DD_DOCID = @DD_DOCID"; command.Parameters.Clear(); command.Parameters.AddWithValue("DD_DOCID", doc.ID); q = GetSQL(command); dr = command.ExecuteReader(CommandBehavior.SequentialAccess); try { if (dr.HasRows) while (dr.Read()) { DBDocumentVersion dv = new DBDocumentVersion(); dv.ID = new Guid(dr["DD_ID"].ToString()); dv.DocID = new Guid(dr["DD_DOCID"].ToString()); //dv.ID = new Guid(dr.GetString(dr.GetOrdinal("DD_ID"))); dv.Version = int.Parse(dr["DD_VERSION"].ToString()); dv.Date = DateTime.Parse(dr["DD_DATE"].ToString()); int bufferSize = 10000; dv.Data = new byte[bufferSize]; int colnum = dr.GetOrdinal("DD_BODY"); //dv.Data = (byte[])dr.GetValue(colnum); dr.GetBytes(colnum, 0, dv.Data, 0, bufferSize); //dr.GetBytes(colnum,) //dv.Data = (byte[])dr["DD_BODY"]; dv.ResponseHeader = BytesToUTF8Str((byte[])dr["DD_METADATA"]); doc.Versions.Add(dv); } else { //throw new Exception(string.Format("Versions for Document '{0}' not found", value)); } } finally { dr.Close(); } } return doc; }
public DBDocument CreateDocument(string _url, byte[] _body, string _header) { DBDocument doc = new DBDocument(); doc.ID = Guid.NewGuid(); doc.URL = _url; doc.DocType = 0; DBDocumentVersion v = new DBDocumentVersion(); v.ID = Guid.NewGuid(); v.DocID = doc.ID; v.Date = DateTime.Now; v.LastUpdate = DateTime.Now; v.Version = 0; v.Data = _body; v.ResponseHeader = _header; doc.Versions.Add(v); return doc; }