{"id":177,"date":"2021-02-03T12:44:15","date_gmt":"2021-02-03T04:44:15","guid":{"rendered":"https:\/\/www.tonghin.com.my\/blog\/?p=177"},"modified":"2021-02-03T12:44:16","modified_gmt":"2021-02-03T04:44:16","slug":"status-checker-to-control-system-flow","status":"publish","type":"post","link":"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/","title":{"rendered":"Status Checker To Control System Flow"},"content":{"rendered":"\n<p>As we have more implementation in our ongoing project, more and more criteria we need to take care in our system. That includes business logic, flexibility of system, and system flow. Our topic is about managing system flow.<br><br>As what you should know, I am implementing function to getItemData() everytime I select an item in list. However, when I select an item, it trigger selected event that would call event1, which event1 would call selected event, forming an infinite loop. I then figure out some idea to handle this situation as I saw my supervisor&#8217;s existing code implementation.<br><br>To achieve my my implementation, I have to add a custom status checker to control the flow of system. Below are code for my status checker:<br><code><sub><sup>private enum SelectedStatus<br>{<br>  Normal,<br>  Selected,<br>}<\/sup><\/sub><\/code><br><code><sub><sup>private SelectedStatus _selectedStatus = SelectedStatus.Normal; \/\/declare default value of SelectedStatus<\/sup><\/sub><\/code><\/p>\n\n\n\n<p><code><sub><sup>public void SelectedEvent <\/sup><\/sub><br><sub><sup>{<\/sup><\/sub><br>   <sub><sup> if (_selectedStatus == SelectedStatus.Normal)<br>   {<br>     _selectedStatus = SelectedStatus.Selected;<br>     _eventAggregator.GetEvent().Publish(id); \/\/call event1 that cause loop<br>   }<br>   else<br>   {<br>     \/\/logic\/\/<br>     _selectedStatus = SelectedStatus.Normal;<br>   }<\/sup><\/sub><br><sub><sup>}<\/sup><\/sub><\/code><\/p>\n\n\n\n<p>When Event1 callback to current function, <code><sub><sup>_selectedStatus<\/sup><\/sub><\/code> would now be <sup><sub><code>SelectedStatus.Selected<\/code><\/sub><\/sup> and will not publish another event to cause infinite loop. At the same time, I am able to get latest item data each time I select the data. My intention of getting latest item data is to ensure I can update data changes and minimize concurrency situation.<br><br>In future, if there is more features to add on, we can always add few more variable in <code><sub><sup>SelectedStatus<\/sup><\/sub><\/code>. This way, It provide more alternative for us to control\/restrict our system flow.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As we have more implementation in our ongoing project, more and more criteria we need to take care in our system. That includes business logic, flexibility of system, and system flow. Our topic is about managing system flow. As what you should know, I am implementing function to getItemData() everytime I select an item in &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Status Checker To Control System Flow&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[57],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Status Checker To Control System Flow | Tong Hin&#039;s Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Status Checker To Control System Flow | Tong Hin&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"As we have more implementation in our ongoing project, more and more criteria we need to take care in our system. That includes business logic, flexibility of system, and system flow. Our topic is about managing system flow. As what you should know, I am implementing function to getItemData() everytime I select an item in &hellip; Continue reading &quot;Status Checker To Control System Flow&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/\" \/>\n<meta property=\"og:site_name\" content=\"Tong Hin&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-03T04:44:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-03T04:44:16+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"1 minute\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#organization\",\"name\":\"TONG HIN MACHINERY\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"sameAs\":[\"https:\/\/www.youtube.com\/channel\/UC60EoxJMNbu8mV0LuEGfrBg\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/wp-content\/uploads\/2020\/10\/web_logo_180_180.jpg\",\"width\":180,\"height\":180,\"caption\":\"TONG HIN MACHINERY\"},\"image\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#website\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"name\":\"Tong Hin&#039;s Blog\",\"description\":\"Sharing About Technology\",\"publisher\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.tonghin.com.my\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/#webpage\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/\",\"name\":\"Status Checker To Control System Flow | Tong Hin&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#website\"},\"datePublished\":\"2021-02-03T04:44:15+00:00\",\"dateModified\":\"2021-02-03T04:44:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/\",\"name\":\"Status Checker To Control System Flow\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#\/schema\/person\/5c3ea1c3869fc5aace6be92e60cb5daa\"},\"headline\":\"Status Checker To Control System Flow\",\"datePublished\":\"2021-02-03T04:44:15+00:00\",\"dateModified\":\"2021-02-03T04:44:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#organization\"},\"keywords\":\"callback\",\"articleSection\":\"Experiential\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.tonghin.com.my\/blog\/2021\/02\/03\/status-checker-to-control-system-flow\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#\/schema\/person\/5c3ea1c3869fc5aace6be92e60cb5daa\",\"name\":\"Ng Ching Onn\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5124ba2323631ad4d512f46bd9c04829?s=96&d=mm&r=g\",\"caption\":\"Ng Ching Onn\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts\/177"}],"collection":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":6,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":183,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts\/177\/revisions\/183"}],"wp:attachment":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}