@page "/links/new"
@inject LinksClient Links
@inject NavigationManager Navigation
@inject NotificationManager Notification
@using System.ComponentModel.DataAnnotations
Publish a new link!
@if(_error != null) {
An error ! @_error.Message
}
@code {
private Model _model = new Model();
private Exception _error = null;
private async Task TryPublishLink()
{
_error = null;
try
{
await Links.CreateAsync(_model.Command);
Notification.Add("Your link was published!");
Navigation.NavigateTo("/");
}
catch(Exception ex)
{
_error = ex;
}
}
private class Model
{
[Required]
[Url]
public string Url { get; set; }
//public PublishLinkCommand Command { get { return new PublishLinkCommand { Url = new System.Uri(Url) }; }}
public PublishLinkCommand Command => new PublishLinkCommand { Url = new System.Uri(Url) };
}
}