@namespace Oqtane.Modules.Admin.Profiles @inherits ModuleBase @inject NavigationManager NavigationManager @inject IProfileService ProfileService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer

@SharedLocalizer["Cancel"] @if (PageState.QueryString.ContainsKey("id")) {

}
@code { private int _profileid = -1; private ElementReference form; private bool validated = false; private string _name = string.Empty; private string _title = string.Empty; private string _description = string.Empty; private string _category = string.Empty; private string _vieworder = "0"; private string _maxlength = "0"; private string _rows = "1"; private string _defaultvalue = string.Empty; private string _options = string.Empty; private string _validation = string.Empty; private string _autocomplete = string.Empty; private string _isrequired = "False"; private string _isprivate = "False"; private string createdby; private DateTime createdon; private string modifiedby; private DateTime modifiedon; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; public override string Actions => "Add,Edit"; protected override async Task OnInitializedAsync() { try { if (PageState.QueryString.ContainsKey("id")) { _profileid = Int32.Parse(PageState.QueryString["id"]); var profile = await ProfileService.GetProfileAsync(_profileid); if (profile != null) { _name = profile.Name; _title = profile.Title; _description = profile.Description; _category = profile.Category; _vieworder = profile.ViewOrder.ToString(); _maxlength = profile.MaxLength.ToString(); _rows = profile.Rows.ToString(); _defaultvalue = profile.DefaultValue; _options = profile.Options; _validation = profile.Validation; _autocomplete = profile.Autocomplete; _isrequired = profile.IsRequired.ToString(); _isprivate = profile.IsPrivate.ToString(); createdby = profile.CreatedBy; createdon = profile.CreatedOn; modifiedby = profile.ModifiedBy; modifiedon = profile.ModifiedOn; } } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Profile {ProfileId} {Error}", _profileid, ex.Message); AddModuleMessage(Localizer["Error.Profile.Load"], MessageType.Error); } } private async Task SaveProfile() { validated = true; var interop = new Interop(JSRuntime); if (await interop.FormValid(form)) { try { Profile profile; if (_profileid != -1) { profile = await ProfileService.GetProfileAsync(_profileid); } else { profile = new Profile(); } profile.SiteId = PageState.Site.SiteId; profile.Name = _name; profile.Title = _title; profile.Description = _description; profile.Category = _category; profile.ViewOrder = int.Parse(_vieworder); profile.MaxLength = int.Parse(_maxlength); profile.Rows = int.Parse(_rows); profile.DefaultValue = _defaultvalue; profile.Options = _options; profile.Validation = _validation; profile.Autocomplete = _autocomplete; profile.IsRequired = (_isrequired == null ? false : Boolean.Parse(_isrequired)); profile.IsPrivate = (_isprivate == null ? false : Boolean.Parse(_isprivate)); if (_profileid != -1) { profile = await ProfileService.UpdateProfileAsync(profile); } else { profile = await ProfileService.AddProfileAsync(profile); } await logger.LogInformation("Profile Saved {Profile}", profile); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Profile {ProfleId} {Error}", _profileid, ex.Message); AddModuleMessage(Localizer["Error.Profile.Save"], MessageType.Error); } } else { AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } }