/// <summary> /// Creates a new changeset by opening one. /// </summary> /// <param name="comment"></param> /// <param name="created_by"></param> /// <returns></returns> public long ChangeSetOpen(string comment, string created_by) { if (created_by == null || created_by.Length == 0) { // a created by tag always has to exist and have a usefull value. throw new ArgumentOutOfRangeException("A created by tag always has to exist and have a usefull value."); } // build a new changeset. OsmSharp.Osm.Xml.v0_6.osm osm = new Osm.Xml.v0_6.osm(); osm.changeset = new Osm.Xml.v0_6.changeset[1]; OsmSharp.Osm.Xml.v0_6.changeset changeset = new Osm.Xml.v0_6.changeset(); changeset.tag = new OsmSharp.Osm.Xml.v0_6.tag[1]; changeset.tag[0] = new Osm.Xml.v0_6.tag(); changeset.tag[0].k = "created_by"; changeset.tag[0].v = created_by; osm.changeset[0] = changeset; // serialize the changeset. XmlSerializer serializer = new XmlSerializer(typeof(OsmSharp.Osm.Xml.v0_6.osm)); MemoryStream mem_stream = new MemoryStream(); Stream stream = mem_stream; serializer.Serialize(stream, osm); stream.Flush(); mem_stream.Flush(); byte[] put_data = mem_stream.ToArray(); // do the api call. string response_string = this.DoApiCall(true, "api/0.6/changeset/create", Method.PUT, put_data); _current_changeset = changeset; _current_changeset.id = long.Parse(response_string); return(_current_changeset.id); }
public long ChangeSetOpen(string comment, string created_by) { if (created_by == null || created_by.Length == 0) { throw new ArgumentOutOfRangeException("A created by tag always has to exist and have a usefull value."); } osm osm1 = new osm(); osm1.changeset = new changeset[1]; changeset changeset = new changeset(); changeset.tag = new tag[1]; changeset.tag[0] = new tag(); changeset.tag[0].k = "created_by"; changeset.tag[0].v = created_by; osm1.changeset[0] = changeset; XmlSerializer xmlSerializer = new XmlSerializer(typeof(osm)); MemoryStream memoryStream = new MemoryStream(); Stream stream1 = (Stream)memoryStream; Stream stream2 = stream1; osm osm2 = osm1; xmlSerializer.Serialize(stream2, (object)osm2); stream1.Flush(); memoryStream.Flush(); string s = this.DoApiCall(true, "api/0.6/changeset/create", APIConnection.Method.PUT, memoryStream.ToArray()); this._current_changeset = changeset; this._current_changeset.id = long.Parse(s); return(this._current_changeset.id); }
private ChangeSetInfo Convertv6XmlChangeSet(changeset xml_changeset) { ChangeSetInfo changeSetInfo = new ChangeSetInfo(); if (xml_changeset.idSpecified) { changeSetInfo.Id = new long?(xml_changeset.id); } if (xml_changeset.closed_atSpecified) { changeSetInfo.ClosedAt = new DateTime?(xml_changeset.closed_at); } if (xml_changeset.closed_atSpecified) { changeSetInfo.CreatedAt = xml_changeset.created_at; } if (xml_changeset.max_latSpecified) { changeSetInfo.MaxLat = xml_changeset.max_lat; } if (xml_changeset.max_lonSpecified) { changeSetInfo.MaxLon = xml_changeset.max_lon; } if (xml_changeset.min_latSpecified) { changeSetInfo.MinLat = xml_changeset.min_lat; } if (xml_changeset.min_lonSpecified) { changeSetInfo.MinLon = xml_changeset.min_lon; } if (xml_changeset.openSpecified) { changeSetInfo.Open = xml_changeset.open; } if (xml_changeset.tag != null) { changeSetInfo.Tags = new Dictionary <string, string>(); foreach (tag tag in xml_changeset.tag) { changeSetInfo.Tags.Add(tag.k, tag.v); } } if (xml_changeset.uidSpecified) { changeSetInfo.UserId = xml_changeset.uid; } changeSetInfo.User = xml_changeset.user; return(changeSetInfo); }