<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.lhotka.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>CSLA .NET discussion</title><link>http://forums.lhotka.net/forums/5.aspx</link><description>General discussion about CSLA .NET</description><dc:language /><generator>CommunityServer 2008.5 SP3 (Build: 36.8414)</generator><item><title>Re: Csla PropertyStatus and AddInformationResult IsValid Property</title><link>http://forums.lhotka.net/forums/thread/51892.aspx</link><pubDate>Fri, 17 Feb 2012 04:33:56 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:51892</guid><dc:creator>jamie.clayton</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/51892.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=51892</wfw:commentRss><description>&lt;p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;img src="http://forums.lhotka.net/Themes/hawaii/images/icon-quote.gif"&gt; &lt;strong&gt;JonnyBee:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Unfortunately the IsValid property setter is private so you can&amp;#39;t set it even if you override the UpdateState method. &lt;/div&gt;&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;In VB.net I&amp;#39;ve been Overriding the IsValid property in my Business Objects to overcome the definition of BrokenRule including all RuleSeverity options. I use the following convention &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;RuleSeverity=Error to define something that blocks the user from saving data (data IsValid to save).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;RuleSeverity=Warning to define an edge case that might just be a typo by the user. E.g. Date not close enough to today&amp;#39;s date.&lt;/li&gt;
&lt;li&gt;RuleSeverity=Info - Never used.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre style="font-family:Consolas;font-size:13px;color:black;background:none repeat scroll 0% 0% white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Overrides&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;ReadOnly&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Property&lt;/span&gt;&amp;nbsp;IsValid()&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Boolean&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Get&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;Linq&amp;nbsp;Edition&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Return&lt;/span&gt;&amp;nbsp;(&lt;span style="color:blue;"&gt;From&lt;/span&gt;&amp;nbsp;item&amp;nbsp;&lt;span style="color:blue;"&gt;In&lt;/span&gt;&amp;nbsp;BrokenRulesCollection&amp;nbsp;&lt;span style="color:blue;"&gt;Where&lt;/span&gt;&amp;nbsp;item.Severity&amp;nbsp;=&amp;nbsp;&lt;span style="color:#2b91af;"&gt;RuleSeverity&lt;/span&gt;.Error).Count&amp;nbsp;=&amp;nbsp;0
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;TODO:&amp;nbsp;Lambda&amp;nbsp;edition&amp;nbsp;??&amp;nbsp;VB.&amp;nbsp;Determine&amp;nbsp;the&amp;nbsp;lambda&amp;nbsp;version&amp;nbsp;of&amp;nbsp;the&amp;nbsp;loop&amp;nbsp;below&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;Return&amp;nbsp;BrokenRulesCollection.Any(&amp;nbsp;p&amp;nbsp;&amp;gt;=&amp;nbsp;p.Severity&amp;nbsp;=&amp;nbsp;RuleSeverity.Error)&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;GOLE:&amp;nbsp;Good&amp;nbsp;old&amp;nbsp;Loop&amp;nbsp;edition&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;Dim&amp;nbsp;result&amp;nbsp;As&amp;nbsp;Boolean&amp;nbsp;=&amp;nbsp;True&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;For&amp;nbsp;Each&amp;nbsp;item&amp;nbsp;As&amp;nbsp;BrokenRule&amp;nbsp;In&amp;nbsp;BrokenRulesCollection&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If&amp;nbsp;item.Severity&amp;nbsp;=&amp;nbsp;RuleSeverity.Error&amp;nbsp;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;False&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End&amp;nbsp;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;Next&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;Return&amp;nbsp;False&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Get&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Property&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Csla PropertyStatus and AddInformationResult IsValid Property</title><link>http://forums.lhotka.net/forums/thread/50873.aspx</link><pubDate>Mon, 28 Nov 2011 11:37:12 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:50873</guid><dc:creator>JonnyBee</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/50873.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=50873</wfw:commentRss><description>&lt;p&gt;Hi Kevin, &lt;/p&gt;
&lt;p&gt;Issuecreated in BugTracker:&amp;nbsp; &lt;a href="http://www.lhotka.net/cslabugs/edit_bug.aspx?id=992"&gt;http://www.lhotka.net/cslabugs/edit_bug.aspx?id=992&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We will consider changing how IsValid is updated in Csla 4.3. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Csla PropertyStatus and AddInformationResult IsValid Property</title><link>http://forums.lhotka.net/forums/thread/50869.aspx</link><pubDate>Mon, 28 Nov 2011 08:13:03 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:50869</guid><dc:creator>Kevin</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/50869.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=50869</wfw:commentRss><description>&lt;p&gt;Thank you JonnyBee.&amp;nbsp;&lt;span class="hps"&gt;That explains&lt;/span&gt;&amp;nbsp;&lt;span class="hps"&gt;everything&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I also think, the IsValid Property should be IsValid = TRUE if there is an information or warning severity.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;@Rocky: Yes, it would be really nice If you can assist with an answer to that.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Csla PropertyStatus and AddInformationResult IsValid Property</title><link>http://forums.lhotka.net/forums/thread/50864.aspx</link><pubDate>Sun, 27 Nov 2011 19:30:43 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:50864</guid><dc:creator>JonnyBee</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/50864.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=50864</wfw:commentRss><description>&lt;p&gt;Hi Kevin,&lt;/p&gt;
&lt;p&gt;PropertyStatus is build so that it will show Error/Warning/Info message and the IsValid property on the Propertystatus control is set to &lt;i&gt;false &lt;/i&gt;if there is any broken rule on the field.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know if that s a bug or intentional.&lt;br /&gt;&lt;b&gt;I hope Rocky can assist with an answer to that. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Theproperty is set in UpdateState method of PropertyStatus:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IsValid = BrokenRules.Count ==&amp;nbsp;&lt;span style="color:#00008b;"&gt;0&lt;/span&gt;;&lt;/p&gt;
&lt;p&gt;If following the traditional rules for IsValid on a business object that code line should be:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IsValid = BrokenRules.&lt;span style="color:#191970;font-weight:bold;"&gt;Any&lt;/span&gt;(p =&amp;gt;&amp;nbsp;p.Severity == RuleSeverity.Error);&lt;/p&gt;
&lt;p&gt;Unfortunately the IsValid property setter is private so you can&amp;#39;t set it even if you override the UpdateState method. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Csla PropertyStatus and AddInformationResult IsValid Property</title><link>http://forums.lhotka.net/forums/thread/50859.aspx</link><pubDate>Fri, 25 Nov 2011 13:57:47 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:50859</guid><dc:creator>Kevin</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/50859.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=50859</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve got a business rule that checks if a value already exists in my database. This rules works fine and will add the correct information:&lt;/p&gt;
&lt;p&gt;
if (e.Object.Exists)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.AddInformationResult(&amp;quot;Already exists&amp;quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
context.Complete();
&lt;/p&gt;
&lt;p&gt;In my BO it looks like this:&lt;/p&gt;
&lt;p&gt;BusinessRules.AddRule(new CustomRules.ArztNummerExists(ArztNummerProperty, FilialeUidProperty, UIDProperty));&lt;/p&gt;
&lt;p&gt;In my View (XAML Code) I&amp;#39;ve a CSLA PropertyStatus that&amp;#39;s binded to my &amp;quot;ArztNummerProperty&amp;quot;. Works fine. &lt;/p&gt;
&lt;p&gt;If my rule doesn&amp;#39;t add a information result to the context, the PropertyStatus is valid, but if my rule adds the information result to the context, my PropertyStaus is not valid.&lt;/p&gt;
&lt;p&gt;How can I say to my PropertyStatus that the IsValid Property should be true in this case? The information is visible on my GUI - works fine.&lt;/p&gt;
&lt;p&gt;Or is there something I&amp;#39;m missunterstand?&lt;/p&gt;
&lt;p&gt;Hopefully you guys understand everything :-)&lt;/p&gt;
&lt;p&gt;Kind regards&lt;/p&gt;
&lt;p&gt;Kevin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>