@namespace Oqtane.Modules.Admin.UserProfile @inherits ModuleBase @inject NavigationManager NavigationManager @inject IUserService UserService @inject INotificationService NotificationService @if (PageState.User != null) {
@reply
} @code { private int notificationid; private string title = string.Empty; private string username = ""; private string subject = string.Empty; private string createdon = string.Empty; private string body = string.Empty; private string reply = string.Empty; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.View; public override string Title => "View Notification"; protected override async Task OnInitializedAsync() { try { notificationid = Int32.Parse(PageState.QueryString["id"]); Notification notification = await NotificationService.GetNotificationAsync(notificationid); if (notification != null) { int userid = -1; if (notification.ToUserId == PageState.User.UserId) { title = "From"; if (notification.FromUserId != null) { userid = notification.FromUserId.Value; } } else { title = "To"; if (notification.ToUserId != null) { userid = notification.ToUserId.Value; } } if (userid != -1) { var user = await UserService.GetUserAsync(userid, PageState.Site.SiteId); if (user != null) { username = user.Username; } } if (username == "") { username = "System"; } subject = notification.Subject; createdon = notification.CreatedOn.ToString(); body = notification.Body; } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Users {Error}", ex.Message); AddModuleMessage("Error Loading Users", MessageType.Error); } } private void Reply() { title = "To"; subject = "RE: " + subject; reply = body; StateHasChanged(); } private async Task Send() { var notification = new Notification(); try { var user = await UserService.GetUserAsync(username, PageState.Site.SiteId); if (user != null) { notification.SiteId = PageState.Site.SiteId; notification.FromUserId = PageState.User.UserId; notification.FromDisplayName = PageState.User.DisplayName; notification.FromEmail = PageState.User.Email; notification.ToUserId = user.UserId; notification.ToDisplayName = user.DisplayName; notification.ToEmail = user.Email; notification.Subject = subject; notification.Body = body; notification.ParentId = notificationid; notification.CreatedOn = DateTime.UtcNow; notification.IsDelivered = false; notification.DeliveredOn = null; notification = await NotificationService.AddNotificationAsync(notification); await logger.LogInformation("Notification Created {Notification}", notification); NavigationManager.NavigateTo(NavigateUrl()); } else { AddModuleMessage("User Does Not Exist. Please Verify That The Username Provided Is Correct.", MessageType.Warning); } } catch (Exception ex) { await logger.LogError(ex, "Error Adding Notification {Notification} {Error}", notification, ex.Message); AddModuleMessage("Error Adding Notification", MessageType.Error); } } }