internal void Write(System.Xml.XmlWriter writer, ODataPersistenceEngineAsync engine) { writer.WriteStartElement("url", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); if (Value.Name[0] == '$') writer.WriteString(Value.Name); else writer.WriteString(engine.GetUri(Value).ToString()); writer.WriteEndElement(); }
public int WriteTo(System.IO.StreamWriter sw, ODataPersistenceEngineAsync engine) { long position = sw.BaseStream.Position; if (!isRoot) { foreach (KeyValuePair<string, string> header in headers) sw.WriteLine(header.Key + ": " + header.Value); } //MemoryStream ms; //StreamWriter msw; //ms = new MemoryStream(); //msw = new StreamWriter(ms); //msw.NewLine = sw.NewLine; //int length = 0; //foreach (Change change in Changes) //{ // length += ("--changeset_" + Id + "\n").Length; // length += ("Content-Type: application/http" + "\n").Length; // if (change.Expression.Name != null && change.Expression.Name[0] == '$') // length += (change.Method + " " + engine.GetUri(change.Expression).AbsolutePath.Substring(((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.AbsolutePath.Length) + " HTTP/1.1").Length + sw.NewLine.Length; // else // length += (change.Method + " " + engine.GetUri(change.Expression) + " HTTP/1.1").Length + sw.NewLine.Length; // length += ("Host: " + ((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.Host + (((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.Port == 80 ? "" : ":" + ((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.Port) + "\n").Length; // length += change.WriteTo(msw, engine); //} //length += ("--changeset_" + Id + "--\n").Length; //length += 2; //sw.WriteLine("Content-Length: " + length); sw.WriteLine(); sw.Flush(); //msw.Close(); foreach (Change change in Changes) { sw.WriteLine("--changeset_" + Id); sw.WriteLine("Content-Type: application/http"); sw.WriteLine("Content-Transfer-Encoding: binary"); sw.WriteLine(); if (change.Expression.Name != null && change.Expression.Name[0] == '$') sw.WriteLine(change.Method + " " + engine.GetUri(change.Expression).AbsolutePath.Substring(((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.AbsolutePath.Length ) + " HTTP/1.1"); else sw.WriteLine(change.Method + " " + engine.GetUri(change.Expression) + " HTTP/1.1"); sw.WriteLine("Host: " + ((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.Host + (((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.Port == 80 ? "" : ":" + ((ODataPersistenceProvider)engine.FactoryAsync).ConnectionString.Port)); sw.Flush(); change.WriteTo(sw, engine); //sw.WriteLine(); sw.WriteLine(); } sw.WriteLine("--changeset_" + Id + "--"); sw.WriteLine(); sw.Flush(); return (int)(sw.BaseStream.Length - position); }
public int WriteTo(StreamWriter s, ODataPersistenceEngineAsync engine) { MemoryStream ms = new MemoryStream(); XmlWriter writer = XmlWriter.Create(ms, new XmlWriterSettings() { Encoding = s.Encoding, Indent = true, NewLineChars = s.NewLine }); if (Link != null) headers["Content-Type"] = "application/xml"; else headers["Content-Type"] = "application/atom+xml;type=entry"; foreach (KeyValuePair<string, string> item in Headers) { s.WriteLine(item.Key + ": " + item.Value); } switch (Mode) { case ChangeMode.Insert: if (Link == null) Entry.Write(writer, engine); else Link.Write(writer, engine); writer.Flush(); s.WriteLine("Content-Length: " + (ms.Length + 1)); s.WriteLine(); s.Flush(); ms.Position = 0; Util.Write(ms, s.BaseStream); return (int)ms.Length; case ChangeMode.Update: Entry.Write(writer, engine); writer.Flush(); s.WriteLine("Content-Length: " + (ms.Length + 1)); ms.Position = 0; Util.Write(ms, s.BaseStream); return (int)ms.Length; case ChangeMode.Delete: if (Entry != null) Entry.Write(writer, engine); else Link.Write(writer, engine); writer.Flush(); break; default: break; } return 0; }
public int WriteTo(System.IO.StreamWriter sw, ODataPersistenceEngineAsync engine) { long position = sw.BaseStream.Position; if (!isRoot) foreach (KeyValuePair<string, string> header in headers) sw.WriteLine(header.Key + ": " + header.Value); MemoryStream ms; StreamWriter msw; ms = new MemoryStream(); msw = new StreamWriter(ms); msw.NewLine = sw.NewLine; int length = 0; foreach (IOperation change in Operations) { length += ("--batch_" + Id + "\n").Length; length += change.WriteTo(msw, engine); } length += ("--batch_" + Id + "--\n").Length; msw.Flush(); if (!isRoot) { sw.WriteLine("Content-Length: " + length); sw.WriteLine(); } sw.Flush(); foreach (IOperation change in Operations) { sw.WriteLine("--batch_" + Id); sw.Flush(); change.WriteTo(sw, engine); } sw.Write("--batch_" + Id + "--"); //sw.WriteLine(); sw.Flush(); return (int)(sw.BaseStream.Length - position); }
public ODataCommandProcessor(ODataPersistenceEngineAsync engine) { this.engine = engine; boundary = "batch_" + Guid.NewGuid(); }
public int WriteTo(System.IO.StreamWriter s, ODataPersistenceEngineAsync engine) { throw new NotImplementedException(); }
internal void Write(System.Xml.XmlWriter writer, ODataPersistenceEngineAsync engine) { writer.WriteStartElement("entry", "http://www.w3.org/2005/Atom"); writer.WriteAttributeString("xmlns", "m", "http://www.w3.org/2000/xmlns/", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); writer.WriteAttributeString("xmlns", "http://www.w3.org/2005/Atom"); writer.WriteAttributeString("xmlns", "d", "http://www.w3.org/2000/xmlns/", "http://schemas.microsoft.com/ado/2007/08/dataservices"); //writer.WriteElementString("id", "http://www.w3.org/2005/Atom", Identity); writer.WriteStartElement("category", "http://www.w3.org/2005/Atom"); writer.WriteAttributeString("scheme", "http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"); writer.WriteAttributeString("term", Category); writer.WriteEndElement(); writer.WriteStartElement("title", "http://www.w3.org/2005/Atom"); //writer.WriteAttributeString("type", "text"); writer.WriteEndElement(); writer.WriteStartElement("updated", "http://www.w3.org/2005/Atom"); writer.WriteString(DateTime.UtcNow.ToString("o")); writer.WriteEndElement(); writer.WriteStartElement("author", "http://www.w3.org/2005/Atom"); writer.WriteStartElement("name", "http://www.w3.org/2005/Atom"); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteStartElement("id", "http://www.w3.org/2005/Atom"); writer.WriteEndElement(); writer.WriteStartElement("content", "http://www.w3.org/2005/Atom"); writer.WriteAttributeString("type", "application/xml"); writer.WriteStartElement("properties", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); foreach (var item in DataValues) { item.Write(writer); } //End of properties writer.WriteEndElement(); //End of content writer.WriteEndElement(); //End of entry writer.WriteEndElement(); }