You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I assume this is probably an easy one and I am doing something wrong as I am not a Blazor expert.
I have a page that needs to check the query string, and then call my database for the data for the editor (diff editor specifically).
I followed the examples and first I tried using OnDidInit="EditorOnDidInit"
I have tried putting all of my code in protected override async Task OnAfterRenderAsync(bool firstRender)
I have tried putting all of my code in protected override async Task OnInitializedAsync()
I have tried calling StateHasChanged() after all of the above.
Current Code:
@page "/diff"@usingSystem.Web@usingMicrosoft.Data.SqlClient@inject NavigationManagerNavManager@inject AppOptionsappOptions@inject IJSRuntimejsRuntime@rendermode InteractiveServer
<style>
.monaco-editor-container {height: 600px; }
</style>
<h3>Diff template #@templateId</h3>
@if (loading)
{
<FluentProgressRing></FluentProgressRing>
}@if(sourceEnvironmentEditorTemplateisnotnull&&destinationEnvironmentEditorTemplateisnotnull)
{
<tableclass="table">
<thead>
<tr>
<th>Field</th>
<th>@sourceEnvironment</th>
<th>@destinationEnvironment</th>
</tr>
</thead>
<tbody>
<tr>
<th>Description</th>
<td>@sourceEnvironmentEditorTemplate.Description</td>
<td>@destinationEnvironmentEditorTemplate.Description</td>
</tr>
<!-- More redacted for brevity -->
</tbody>
</table>
<FluentDivider></FluentDivider>
}
<StandaloneDiffEditor@ref="_diffEditor"Id="diff-editor"OnDidInit="EditorOnDidInit"ConstructionOptions="DiffEditorConstructionOptions" />
@code{privateStandaloneDiffEditor_diffEditor=null!;
privateboolloading=true;
privatestring?templateId;
privatestring?sourceEnvironment;
privatestring?destinationEnvironment;
privateEmailTemplate?sourceEnvironmentEditorTemplate;
privateEmailTemplate?destinationEnvironmentEditorTemplate;
privateasyncTaskEditorOnDidInit()
{awaitLoadData();
awaitInitalizeMonaco();
loading=false;
StateHasChanged();
}privateasyncTaskInitalizeMonaco()
{// Get or create the original modelTextModeloriginal_model=awaitBlazorMonaco.Editor.Global.GetModel(jsRuntime, "diff-editor-originalModel");
if (original_model==null)
{
varoriginal_value=sourceEnvironmentEditorTemplate!.EmailMessage;
original_model=awaitBlazorMonaco.Editor.Global
.CreateModel(jsRuntime, original_value, "html", "diff-editor-originalModel");
}
// Get or create the modified modelTextModelmodified_model=awaitBlazorMonaco.Editor.Global.GetModel(jsRuntime, "diff-editor-modifiedModel");
if (modified_model==null)
{
varmodified_value=destinationEnvironmentEditorTemplate!.EmailMessage;
modified_model=awaitBlazorMonaco.Editor.Global
.CreateModel(jsRuntime, modified_value, "html", "diff-editor-modifiedModel");
}
// Set the editor modelawait_diffEditor.SetModel(newDiffEditorModel
{
Original=original_model,
Modified=modified_model
});
awaitjsRuntime.InvokeVoidAsync(
"blazorMonaco.editor.trigger",
"diff-editor",
"anyString",
"editor.action.formatDocument");
}privateasyncTaskLoadData()
{varuri=newUri(NavManager.Uri);
varqueryStringTemplateId=HttpUtility.ParseQueryString(uri.Query).Get("templateId");
varqueryStringSourceEnvironment=HttpUtility.ParseQueryString(uri.Query).Get("sourceEnvironment");
varqueryStringDestinationEnvironment=HttpUtility.ParseQueryString(uri.Query).Get("destinationEnvironment");
varsourcEnvironmentConnection=emailTemplateAppOptions.DatabaseEnvironments.SingleOrDefault(x=>x.Name==queryStringSourceEnvironment);
vardestinationEnvironmentConnection=emailTemplateAppOptions.DatabaseEnvironments.SingleOrDefault(x=>x.Name==queryStringDestinationEnvironment);
varsourceEnvironmentEditorTemplateFromDatabase=awaitGetEmailTemplateAsync(
sourcEnvironmentConnection.ConnectionString,
queryStringTemplateId);
vardestinationEnvironmentEditorTemplateFromDatabase=awaitGetEmailTemplateAsync(
destinationEnvironmentConnection.ConnectionString,
queryStringTemplateId);
templateId=queryStringTemplateId;
sourceEnvironment=queryStringSourceEnvironment;
destinationEnvironment=queryStringDestinationEnvironment;
sourceEnvironmentEditorTemplate=sourceEnvironmentEditorTemplateFromDatabase;
destinationEnvironmentEditorTemplate=destinationEnvironmentEditorTemplateFromDatabase;
}privateasyncTask<EmailTemplate?> GetEmailTemplateAsync(
stringconnectionString,
stringtemplateId)
{usingvarconnection=newSqlConnection(connectionString);
varemailTemplate=awaitconnection
.QueryFirstOrDefaultAsync<EmailTemplate>(@"SELECT BLAH BLAH FROM BLAH WHERE BLAH", new { emt_id_no=templateId });
returnemailTemplate;
}privateStandaloneDiffEditorConstructionOptionsDiffEditorConstructionOptions(StandaloneDiffEditoreditor)
{returnnewStandaloneDiffEditorConstructionOptions
{
// ReadOnly = true,
};
}}
I am navigating here from a button click like so:
// My other interactive server page...privatevoidButtonClick(stringx,stringy){
NavManager
.NavigateTo($"/Diff?sourceEnvironment={z}&templateId={x}&destinationEnvironment={y}");}
The text was updated successfully, but these errors were encountered:
I assume this is probably an easy one and I am doing something wrong as I am not a Blazor expert.
I have a page that needs to check the query string, and then call my database for the data for the editor (diff editor specifically).
I followed the examples and first I tried using
OnDidInit="EditorOnDidInit"
I have tried putting all of my code in
protected override async Task OnAfterRenderAsync(bool firstRender)
I have tried putting all of my code in
protected override async Task OnInitializedAsync()
I have tried calling
StateHasChanged()
after all of the above.Current Code:
I am navigating here from a button click like so:
The text was updated successfully, but these errors were encountered: