internal Sitemap(REST aRest, System.IO.BinaryReader aReader) { Name = aReader.ReadString(); Link = new Uri(aReader.ReadString()); Homepage = new Uri(aReader.ReadString()); var count = aReader.ReadInt32(); for (var idx = 0; idx < count; ++idx) { Item item; if (aRest.Items.TryGetValue(aReader.ReadString(), out item)) Items[item.Name] = item; } Page page; count = aReader.ReadInt32(); for (var idx = 0; idx < count; ++idx) { if (aRest.Pages.TryGetValue(aReader.ReadString(), out page)) Pages[page.Id] = page; } if (aRest.Pages.TryGetValue(aReader.ReadString(), out page)) Page = page; }
internal Item(REST aRest,string aType, string aName, string aState, string aLink) { mRest = aRest; Type = (ItemType)Enum.Parse(typeof(ItemType), aType, true); Name = aName; mState = aState; Link = new Uri(aLink); }
internal Widget(REST aRest, System.IO.BinaryReader aReader) { Type = (WidgetType)aReader.ReadInt32(); Label = aReader.ReadString(); Icon = aReader.ReadString(); Item item; if(aRest.Items.TryGetValue(aReader.ReadString(), out item)) Item = item; Page page; if (aRest.Pages.TryGetValue(aReader.ReadString(), out page)) LinkedPage = page; var uri = aReader.ReadString(); if (!string.IsNullOrWhiteSpace(uri)) Url = new Uri(uri); Refresh = aReader.ReadInt32(); Period = aReader.ReadString(); MinValue = aReader.ReadDouble(); MaxValue = aReader.ReadDouble(); Step = aReader.ReadDouble(); var count = aReader.ReadInt32(); for (var idx = 0; idx < count; ++idx) mWidgets.Add(new Widget(aRest, aReader)); }
internal Page(REST aRest) { mRest = aRest; }
internal Item(REST aRest, System.IO.BinaryReader aReader) { mRest = aRest; mState = aReader.ReadString(); Type = (ItemType)aReader.ReadInt32(); Name = aReader.ReadString(); Link = new Uri(aReader.ReadString()); }
internal Page(REST aRest) { mRest = aRest; }
public static REST FromDataStore(byte[] aData) { using (var ms = new MemoryStream(aData)) { using (var reader = new BinaryReader(ms)) { var result = new REST(); result.mQueryId = reader.ReadInt32(); var count = reader.ReadInt32(); for (var idx = 0; idx < count; ++idx) { var k = reader.ReadString(); var v = reader.ReadString(); result.Links[k] = new Uri(v); } count = reader.ReadInt32(); for (var idx = 0; idx < count; ++idx) { var k = reader.ReadString(); result.Items[k] = new Item(result, reader); } count = reader.ReadInt32(); for (var idx = 0; idx < count; ++idx) { var k = reader.ReadString(); result.Pages[k] = new Page(result); } count = reader.ReadInt32(); for (var idx = 0; idx < count; ++idx) { var k = reader.ReadString(); result.Pages[k].FromStream(reader); } count = reader.ReadInt32(); for (var idx = 0; idx < count; ++idx) { var k = reader.ReadString(); result.Sitemaps[k] = new Sitemap(result, reader); } return result; } } }