public static void Main() { var page = new PageNode(); page.Add <StartNode>(); page.Add <ProcessNode>(); page.Add <DecisionNode>(); page.Add <ProcessNode>(); page.Add <ProcessNode>(); page.Add <EndNode>(); Console.WriteLine("Page run started."); var next = page.Execute(); while (next != Guid.Empty) { next = page.GetNodeById(next).Execute(); Console.WriteLine("Next: {0}", next); Console.ReadLine(); } Console.WriteLine("Page run ended."); Console.WriteLine(); Console.Clear(); Console.WriteLine("Serializing Object to XML . . ."); Console.WriteLine(); var a = PageSerializer.ToString(page); Console.WriteLine(a); Console.WriteLine(); Console.WriteLine("Serializing Object to XML completed."); Console.WriteLine("Deserializing XML to Object . . ."); var b = PageSerializer.ToString(PageSerializer.ToObject <PageNode>(a)); Console.WriteLine("Deserializing XML to Object completed."); Console.WriteLine("Matched: {0}", a == b); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Press any key to run Element Inspector . . . "); Console.ReadKey(); Console.Clear(); var desktop = new Desktop(); desktop.LaunchChrome("https://example.com"); desktop.LaunchEdge("https://example.com"); while (true) { var query = desktop.Inspect(); var els = desktop.Query(query); Console.WriteLine("{0} match found..", els.Count()); Console.WriteLine(); foreach (var el in els) { Console.WriteLine("{0} - {1}", el.Path, el.Bounds); } } }
public HttpResponseMessage GetFeedPosts([FromBody] PageSerializer pageSerializer) { try { int pageNumber = pageSerializer.PageNumber, pageSize = pageSerializer.PageSize; var posts = new List <Models.Post>(); var foundPosts = Entities.FeedPostsGet(CurrentIdentity.UserId, pageNumber, pageSize).ToList(); var totalItems = foundPosts.First().TotalItems; foreach (var foundPost in foundPosts) { var foundComments = Entities.PostCommentsGet(foundPost.PostId).ToList(); posts.Add(PackPost(foundPost, foundComments)); } foreach (var post in posts) { //post.Likes = Entities.Likes.Count(l => l.PostId == post.PostId); //post.Liked = // Entities.Likes.SingleOrDefault( // l => l.UserId == CurrentIdentity.UserId.Value && l.PostId == post.PostId) != null; foreach (var comment in post.Comments) { comment.Likes = Entities.Likes.Count(l => l.CommentId == comment.CommentId); comment.Liked = Entities.Likes.SingleOrDefault(l => l.UserId == CurrentIdentity.UserId.Value && l.CommentId == comment.CommentId) != null; } } int?nextPage = (pageNumber * pageSize) < totalItems ? ++pageNumber : -1; nextPage = nextPage == -1 ? null : nextPage; var res = new List <object> { posts, nextPage }; return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage { Success = true, Data = res, Message = "Posts retrieved." })); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ResponseMessage { Success = false, Message = ex.Message })); } }
public override void Transform(Engine engine, Package package) { GeneralUtils.TimedLog("start Transform"); Package = package; Engine = engine; XmlSerializer serializer; Dynamic.Page page; bool hasOutput = HasPackageValue(package, "Output"); if (hasOutput) { GeneralUtils.TimedLog("start retrieving previous Output from package"); String inputValue = package.GetValue("Output"); GeneralUtils.TimedLog("start creating serializer"); serializer = new PageSerializer(); GeneralUtils.TimedLog("finished creating serializer"); TextReader tr = new StringReader(inputValue); GeneralUtils.TimedLog("start deserializing from package"); page = (Dynamic.Page)serializer.Deserialize(tr); GeneralUtils.TimedLog("finished deserializing from package"); } else { GeneralUtils.ResetLogTimer(); GeneralUtils.TimedLog("Could not find 'Output' in the package"); GeneralUtils.TimedLog("Start creating dynamic page from current page in the package"); page = GetDynamicPage(Manager); GeneralUtils.TimedLog("Finished creating dynamic page with title " + page.Title); GeneralUtils.TimedLog("start creating serializer"); serializer = new PageSerializer(); GeneralUtils.TimedLog("finished creating serializer"); } try { GeneralUtils.TimedLog("starting transformPage"); TransformPage(page); GeneralUtils.TimedLog("finished transformPage"); } catch (StopChainException) { GeneralUtils.TimedLog("caught stopchainexception, will not write current page back to the package"); return; } StringWriter sw = new StringWriter(); MemoryStream ms = new MemoryStream(); XmlWriter writer = new XmlTextWriterFormattedNoDeclaration(ms, Encoding.UTF8); string outputValue; //Create our own namespaces for the output XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); //Add an empty namespace and empty value ns.Add("", ""); serializer.Serialize(writer, page, ns); outputValue = Encoding.UTF8.GetString(ms.ToArray()); // for some reason, the .NET serializer leaves an invalid character at the start of the string // we will remove everything up to the first < so that the XML can be deserialized later! Regex re = new Regex("^[^<]+"); outputValue = re.Replace(outputValue, ""); if (hasOutput) { Item outputItem = package.GetByName("Output"); package.Remove(outputItem); package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Xml, outputValue)); } else { package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Xml, outputValue)); } GeneralUtils.TimedLog("finished Transform"); }
public override void Transform(Engine engine, Package package) { GeneralUtils.TimedLog("start Transform"); Package = package; Engine = engine; XmlSerializer serializer; Dynamic.Page page; bool hasOutput = HasPackageValue(package, "Output"); if (hasOutput) { GeneralUtils.TimedLog("start retrieving previous Output from package"); String inputValue = package.GetValue("Output"); GeneralUtils.TimedLog("start creating serializer"); serializer = new PageSerializer(); GeneralUtils.TimedLog("finished creating serializer"); TextReader tr = new StringReader(inputValue); GeneralUtils.TimedLog("start deserializing from package"); page = (Dynamic.Page)serializer.Deserialize(tr); GeneralUtils.TimedLog("finished deserializing from package"); } else { GeneralUtils.ResetLogTimer(); GeneralUtils.TimedLog("Could not find 'Output' in the package"); GeneralUtils.TimedLog("Start creating dynamic page from current page in the package"); page = GetDynamicPage(Manager); GeneralUtils.TimedLog("Finished creating dynamic page with title " + page.Title); GeneralUtils.TimedLog("start creating serializer"); serializer = new PageSerializer(); GeneralUtils.TimedLog("finished creating serializer"); } try { GeneralUtils.TimedLog("starting transformPage"); TransformPage(page); GeneralUtils.TimedLog("finished transformPage"); } catch (StopChainException) { GeneralUtils.TimedLog("caught stopchainexception, will not write current page back to the package"); return; } StringWriter sw = new StringWriter(); MemoryStream ms = new MemoryStream(); XmlWriter writer = new XmlTextWriterFormattedNoDeclaration(ms, Encoding.UTF8); string outputValue; //Create our own namespaces for the output XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); //Add an empty namespace and empty value ns.Add("", ""); serializer.Serialize(writer, page, ns); outputValue = Encoding.UTF8.GetString(ms.ToArray()); // for some reason, the .NET serializer leaves an invalid character at the start of the string // we will remove everything up to the first < so that the XML can be deserialized later! Regex re = new Regex("^[^<]+"); outputValue = re.Replace(outputValue, ""); if (hasOutput) { Item outputItem = package.GetByName("Output"); package.Remove(outputItem); package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Xml, outputValue)); } else { package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Xml, outputValue)); } GeneralUtils.TimedLog("finished Transform"); }