chore: update errors

This commit is contained in:
Wendell Muntslag 2024-06-20 09:48:12 +02:00
parent fc06dd83a9
commit 08c46f55a9
6 changed files with 119 additions and 137 deletions

View File

@ -22,6 +22,7 @@
<RadzenAutoComplete Data="@Properties" @bind-Value="@coreRuleCriterion.Property"
Placeholder="Choose property or type your own" style="display: block; width: 100%" Name="Property"
/>
<RadzenTextBox style="display: block; width: 100%" @bind-Value="@coreRuleCriterion.Property" Name="Value" class="rz-pa-1" />
</RadzenColumn>
</RadzenRow>
<RadzenRow style="margin-bottom: 1rem">

View File

@ -4,72 +4,72 @@
<RadzenStack>
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="12" SizeMD="6">
<RadzenText Text="CoreRules" TextStyle="TextStyle.H3" TagName="TagName.H1" style="margin: 0" />
<RadzenText Text="CoreRules" TextStyle="TextStyle.H3" TagName="TagName.H1" style="margin: 0"/>
</RadzenColumn>
<RadzenColumn Size="12" SizeMD="6">
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.End" Gap="0.5rem">
<RadzenButton Icon="build" Text="Generate" Click="@GenerateButtonClick" Variant="Variant.Flat" />
<RadzenButton Icon="build" Text="Generate" Click="@GenerateButtonClick" Variant="Variant.Flat"/>
<RadzenButton Icon="add_circle_outline" Text="Add" Click="@AddButtonClick" Variant="Variant.Flat"/>
</RadzenStack>
</RadzenColumn>
</RadzenRow>
<RadzenRow>
<RadzenColumn SizeMD=12>
<RadzenDataGrid @ref="grid0" ColumnWidth="200px" ExpandMode=DataGridExpandMode.Single AllowFiltering="true" FilterMode="FilterMode.Advanced" AllowPaging="true" AllowSorting="true" ShowPagingSummary="true" PageSizeOptions=@(new int[]{5, 10, 20, 30})
Data="@coreRules" TItem="ILoan.Rules.Web.Models.Rules.CoreRule" RowSelect="@EditRow" RowExpand="@GetChildData">
<RadzenColumn SizeMD="12">
<RadzenDataGrid @ref="grid0" ColumnWidth="200px" ExpandMode="DataGridExpandMode.Single" AllowFiltering="true" FilterMode="FilterMode.Advanced" AllowPaging="true" AllowSorting="true" ShowPagingSummary="true" PageSizeOptions="@(new[] { 5, 10, 20, 30 })"
Data="@coreRules" TItem="CoreRule" RowSelect="@EditRow" RowExpand="@GetChildData">
<Columns>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="ID" Title="ID">
<RadzenDataGridColumn TItem="CoreRule" Property="ID" Title="ID">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="RuleName" Title="Rule Name">
<RadzenDataGridColumn TItem="CoreRule" Property="RuleName" Title="Rule Name">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="Source" Title="Source">
<RadzenDataGridColumn TItem="CoreRule" Property="Source" Title="Source">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="DefaultThreshold" Title="Default Threshold">
<RadzenDataGridColumn TItem="CoreRule" Property="DefaultThreshold" Title="Default Threshold">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="Blocked" Title="Blocked">
<RadzenDataGridColumn TItem="CoreRule" Property="Blocked" Title="Blocked">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="TriggersManualReview" Title="Triggers Manual Review">
<RadzenDataGridColumn TItem="CoreRule" Property="TriggersManualReview" Title="Triggers Manual Review">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="SuggestedResolution" Title="Suggested Resolution">
<RadzenDataGridColumn TItem="CoreRule" Property="SuggestedResolution" Title="Suggested Resolution">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="TriggerReason" Title="Trigger Reason">
<RadzenDataGridColumn TItem="CoreRule" Property="TriggerReason" Title="Trigger Reason">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="UseLastRecord" Title="Use Last Record">
<RadzenDataGridColumn TItem="CoreRule" Property="UseLastRecord" Title="Use Last Record">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="ApplicantType" Title="Applicant Type">
<RadzenDataGridColumn TItem="CoreRule" Property="ApplicantType" Title="Applicant Type">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="FilterOnClickthrough" Title="Filter On Clickthrough">
<RadzenDataGridColumn TItem="CoreRule" Property="FilterOnClickthrough" Title="Filter On Clickthrough">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="RunBeforeStatus" Title="Run Before Status">
<RadzenDataGridColumn TItem="CoreRule" Property="RunBeforeStatus" Title="Run Before Status">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="DisplaySection" Title="Display Section">
<RadzenDataGridColumn TItem="CoreRule" Property="DisplaySection" Title="Display Section">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="WarningField" Title="Warning Field">
<RadzenDataGridColumn TItem="CoreRule" Property="WarningField" Title="Warning Field">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="DutchRuleName" Title="Dutch Rule Name">
<RadzenDataGridColumn TItem="CoreRule" Property="DutchRuleName" Title="Dutch Rule Name">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="DutchTriggerReason" Title="Dutch Trigger Reason">
<RadzenDataGridColumn TItem="CoreRule" Property="DutchTriggerReason" Title="Dutch Trigger Reason">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="DutchSuggestedResolution" Title="Dutch Suggested Resolution">
<RadzenDataGridColumn TItem="CoreRule" Property="DutchSuggestedResolution" Title="Dutch Suggested Resolution">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="DutchFilterOnClickthrough" Title="Dutch Filter On Clickthrough">
<RadzenDataGridColumn TItem="CoreRule" Property="DutchFilterOnClickthrough" Title="Dutch Filter On Clickthrough">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="RuleExplanation" Title="Rule Explanation">
<RadzenDataGridColumn TItem="CoreRule" Property="RuleExplanation" Title="Rule Explanation">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="DutchRuleExplanation" Title="Dutch Rule Explanation">
<RadzenDataGridColumn TItem="CoreRule" Property="DutchRuleExplanation" Title="Dutch Rule Explanation">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="WorkItemId" Title="Work Item Id">
<RadzenDataGridColumn TItem="CoreRule" Property="WorkItemId" Title="Work Item Id">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="Title" Title="Title">
<RadzenDataGridColumn TItem="CoreRule" Property="Title" Title="Title">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Property="update" Title="update">
<RadzenDataGridColumn TItem="CoreRule" Property="update" Title="update">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRule" Filterable="false" Sortable="false" Width="70px" TextAlign="TextAlign.Center">
<RadzenDataGridColumn TItem="CoreRule" Filterable="false" Sortable="false" Width="70px" TextAlign="TextAlign.Center">
<Template Context="coreRule">
<RadzenButton ButtonStyle="ButtonStyle.Danger" Icon="delete" Size="ButtonSize.Medium"
Shade="Shade.Lighter" Variant="Variant.Flat"
Click=@(args => GridDeleteButtonClick(args, coreRule)) @onclick:stopPropagation="true" />
Click="@(args => GridDeleteButtonClick(args, coreRule))"@onclick:stopPropagation="true"/>
</Template>
</RadzenDataGridColumn>
</Columns>
@ -78,36 +78,29 @@
<RadzenStack Class="rz-my-8">
<RadzenRow Gap="0" AlignItems="AlignItems.Center">
<RadzenColumn Size="12" SizeMD="6">
<RadzenText Visible="@(coreRuleChild != null)" Text="CoreRuleCriteria" TextStyle="TextStyle.H4" TagName="TagName.H2" style="margin: 0" />
<RadzenText Visible="@(coreRuleChild != null)" Text="CoreRuleCriteria" TextStyle="TextStyle.H4" TagName="TagName.H2" style="margin: 0"/>
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Start" Gap="0.5rem">
<RadzenButton Visible="true" Icon="add_circle_outline" Text="Add" Click=@(args => CoreRuleCriteriaAddButtonClick(args, coreRuleChild))/>
<RadzenButton Visible="true" Icon="add_circle_outline" Text="Add" Click="@(args => CoreRuleCriteriaAddButtonClick(args, coreRuleChild))"/>
</RadzenStack>
</RadzenColumn>
</RadzenRow>
<RadzenDataGrid ColumnWidth="200px" Visible="@(coreRuleChild != null)" @ref=CoreRuleCriteriaDataGrid AllowFiltering="true" FilterMode="Radzen.FilterMode.Advanced" AllowPaging="true" AllowSorting="true" ShowPagingSummary="true" PageSizeOptions=@(new int[]{5, 10, 20, 30})
Data="@coreRuleChild?.CoreRuleCriteria" TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" RowSelect="@(args => CoreRuleCriteriaRowSelect(args, coreRuleChild))">
<RadzenDataGrid ColumnWidth="50px" Visible="@(coreRuleChild != null)" @ref="CoreRuleCriteriaDataGrid" AllowFiltering="true" FilterMode="FilterMode.Advanced" AllowPaging="true" AllowSorting="true" ShowPagingSummary="true" PageSizeOptions="@(new[] { 5, 10, 20, 30 })"
Data="@coreRuleChild?.CoreRuleCriteria" TItem="CoreRuleCriterion" RowSelect="@(args => CoreRuleCriteriaRowSelect(args, coreRuleChild))">
<Columns>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="ID" Title="ID">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="CoreRule.RuleName" Title="Core Rule">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="Property" Title="Property">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="Comparison" Title="Comparison">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="Value" Title="Value">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="ValueIsProperty" Title="Value Is Property">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="ReturnCount" Title="Return Count">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Property="IsThresholdCriterium" Title="Is Threshold Criterium">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriterion" Filterable="false" Sortable="false" Width="70px" TextAlign="TextAlign.Center">
<RadzenDataGridColumn TItem="CoreRuleCriterion" Property="ID" Title="ID" Width="15px" />
<RadzenDataGridColumn TItem="CoreRuleCriterion" Title="Description">
<Template Context="coreRuleCriterionChild">
@(coreRuleCriterionChild.Property + " " + coreRuleCriterionChild.Comparison + " " + coreRuleCriterionChild.Value)
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="CoreRuleCriterion" Property="ValueIsProperty" Title="Value Is Property" Width="10px" />
<RadzenDataGridColumn TItem="CoreRuleCriterion" Property="ReturnCount" Title="Return Count" Width="10px" />
<RadzenDataGridColumn TItem="CoreRuleCriterion" Property="IsThresholdCriterium" Title="Is Threshold Criterium" Width="10px" />
<RadzenDataGridColumn TItem="CoreRuleCriterion" Property="CoreRule.RuleName" Title="Core Rule" />
<RadzenDataGridColumn TItem="CoreRuleCriterion" Filterable="false" Sortable="false" Width="70px" TextAlign="TextAlign.Center">
<Template Context="coreRuleCriterionChild">
<RadzenButton ButtonStyle="ButtonStyle.Danger" Icon="delete" Size="ButtonSize.Medium" Shade="Shade.Lighter" Variant="Variant.Flat"
Click=@(args => CoreRuleCriteriaDeleteButtonClick(args, coreRuleCriterionChild)) @onclick:stopPropagation="true" />
Click="@(args => CoreRuleCriteriaDeleteButtonClick(args, coreRuleCriterionChild))"@onclick:stopPropagation="true"/>
</Template>
</RadzenDataGridColumn>
</Columns>
@ -116,26 +109,22 @@
<RadzenStack Class="rz-my-8">
<RadzenRow Gap="0" AlignItems="AlignItems.Center">
<RadzenColumn Size="12" SizeMD="6">
<RadzenText Visible="@(coreRuleChild != null)" Text="CoreRuleCriteriaOperators" TextStyle="TextStyle.H4" TagName="TagName.H2" style="margin: 0" />
<RadzenText Visible="@(coreRuleChild != null)" Text="CoreRuleCriteriaOperators" TextStyle="TextStyle.H4" TagName="TagName.H2" style="margin: 0"/>
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Start" Gap="0.5rem">
<RadzenButton Visible="true" Icon="add_circle_outline" Text="Add" Click=@(args => CoreRuleCriteriaOperatorsAddButtonClick(args,coreRuleChild)) />
<RadzenButton Visible="true" Icon="add_circle_outline" Text="Add" Click="@(args => CoreRuleCriteriaOperatorsAddButtonClick(args, coreRuleChild))"/>
</RadzenStack>
</RadzenColumn>
</RadzenRow>
<RadzenDataGrid ColumnWidth="200px" Visible="@(coreRuleChild != null)" @ref=CoreRuleCriteriaOperatorsDataGrid AllowFiltering="true" FilterMode="Radzen.FilterMode.Advanced" AllowPaging="true" AllowSorting="true" ShowPagingSummary="true" PageSizeOptions=@(new int[]{5, 10, 20, 30})
Data="@coreRuleChild?.CoreRuleCriteriaOperators" TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriteriaOperator" RowSelect="@(args => CoreRuleCriteriaOperatorsRowSelect(args, coreRuleChild))">
<RadzenDataGrid ColumnWidth="200px" Visible="@(coreRuleChild != null)" @ref="CoreRuleCriteriaOperatorsDataGrid" AllowFiltering="true" FilterMode="FilterMode.Advanced" AllowPaging="true" AllowSorting="true" ShowPagingSummary="true" PageSizeOptions="@(new[] { 5, 10, 20, 30 })"
Data="@coreRuleChild?.CoreRuleCriteriaOperators" TItem="CoreRuleCriteriaOperator" RowSelect="@(args => CoreRuleCriteriaOperatorsRowSelect(args, coreRuleChild))">
<Columns>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriteriaOperator" Property="ID" Title="ID">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriteriaOperator" Property="CoreRule.RuleName" Title="Core Rule">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriteriaOperator" Property="Operator1" Title="Operator1">
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ILoan.Rules.Web.Models.Rules.CoreRuleCriteriaOperator" Filterable="false" Sortable="false" Width="70px" TextAlign="TextAlign.Center">
<RadzenDataGridColumn TItem="CoreRuleCriteriaOperator" Property="ID" Title="ID" Width="15px" />
<RadzenDataGridColumn TItem="CoreRuleCriteriaOperator" Property="Operator1" Title="Operator1" Width="15px" />
<RadzenDataGridColumn TItem="CoreRuleCriteriaOperator" Property="CoreRule.RuleName" Title="Core Rule" />
<RadzenDataGridColumn TItem="CoreRuleCriteriaOperator" Filterable="false" Sortable="false" Width="70px" TextAlign="TextAlign.Center">
<Template Context="coreRuleCriteriaOperatorChild">
<RadzenButton ButtonStyle="ButtonStyle.Danger" Icon="delete" Size="ButtonSize.Medium" Shade="Shade.Lighter" Variant="Variant.Flat"
Click=@(args => CoreRuleCriteriaOperatorsDeleteButtonClick(args, coreRuleCriteriaOperatorChild)) @onclick:stopPropagation="true" />
Click="@(args => CoreRuleCriteriaOperatorsDeleteButtonClick(args, coreRuleCriteriaOperatorChild))"@onclick:stopPropagation="true"/>
</Template>
</RadzenDataGridColumn>
</Columns>

View File

@ -22,6 +22,7 @@
<RadzenColumn SizeMD="9">
<RadzenDropDown TValue="string" Data="@Properties" @bind-Value="@coreRuleCriterion.Property" AllowClear=true
Placeholder="Choose property" style="display: block; width: 100%" Name="Property" />
<RadzenTextBox style="display: block; width: 100%" @bind-Value="@coreRuleCriterion.Property" Name="Value" class="rz-pa-1" />
</RadzenColumn>
</RadzenRow>
<RadzenRow style="margin-bottom: 1rem">

View File

@ -2,20 +2,11 @@
namespace ILoan.Rules.Web.Services;
public class RuleFileGeneratorService
public class RuleFileGeneratorService(RulesContext context, IConfiguration configuration)
{
private readonly RulesContext _context;
private readonly int _startRuleId;
private int _startSeq;
private readonly string _root;
public RuleFileGeneratorService(RulesContext context, IConfiguration configuration)
{
_context = context;
_startRuleId = configuration.GetValue<int>("Parameters:StartRuleId");
_startSeq = configuration.GetValue<int>("Parameters:StartSeqNo");
_root = configuration.GetValue<string>("Parameters:GeneratorRoot");
}
private readonly int _startRuleId = configuration.GetValue<int>("Parameters:StartRuleId");
private int _startSeq = configuration.GetValue<int>("Parameters:StartSeqNo");
private readonly string _root = configuration.GetValue<string>("Parameters:GeneratorRoot");
public async Task GenerateRuleFilesAsync()
{
@ -25,13 +16,13 @@ public class RuleFileGeneratorService
if (!Directory.Exists(_root)) Directory.CreateDirectory(_root);
}
var rules = await _context.CoreRules
var rules = await context.CoreRules
.Include(r => r.CoreRuleCriteria)
.Include(r => r.CoreRuleCriteriaOperators)
.Where(rule => rule.ID >= _startRuleId)
.ToListAsync();
foreach (var rule in rules.OrderBy(x => x.ID))
foreach (var rule in rules.Where(r => r.ID is >= 511 and <= 513).OrderBy(x => x.ID))
{
var fileName = $"V2.{_startSeq:000}__{rule.WorkItemId}_Rules_{rule.ID}_{rule.Title}.sql";
@ -90,7 +81,7 @@ INSERT INTO core.""Core_RuleCriteria"" (
sqlBuilder.AppendLine($@"
INSERT INTO core.""Core_RuleCriteriaOperator"" (
""ID"", ""RuleID"", ""Operator""
) OVERRIDING SYSTEM VALUE (
) OVERRIDING SYSTEM VALUE VALUES (
{coreRuleCriteriaOperator.ID}, {coreRuleCriteriaOperator.RuleID}, '{EscapeSingleQuote(coreRuleCriteriaOperator.Operator1)}'
);
");

View File

@ -193,7 +193,7 @@ public partial class RulesService(IDbContextFactory<RulesContext> factory, Navig
public async Task<IQueryable<CoreRule>> GetCoreRules(Query query = null)
{
var context = await factory.CreateDbContextAsync();
var items = context.CoreRules.AsQueryable();
var items = context.CoreRules.OrderBy(r=>r.ID).AsQueryable();
if (query != null)

View File

@ -18,7 +18,7 @@
},
"Parameters": {
"GeneratorRoot": "C:\\iloan\\iloan-base-dev\\migrations",
"StartSeqNo": 117,
"StartSeqNo": 137,
"StartRuleId": 480
}
}