/// <summary> /// Delete given resource from database. /// </summary> /// <param name="sender">sender</param> /// <param name="e">Event Args</param> protected void DeleteButton_OnClick(object sender, EventArgs e) { using (ResourceDataAccess dataAccess = new ResourceDataAccess()) { if (ResourceDetailView.ResourceId != Guid.Empty) { Resource resource = dataAccess.GetResource(ResourceDetailView.ResourceId); bool isAuthorized = resource is CategoryNode? dataAccess.AuthorizeUserForDeletePermissionOnCategory(ResourceDetailView.AuthenticatedToken, resource.Id) : dataAccess.AuthorizeUser(ResourceDetailView.AuthenticatedToken, UserResourcePermissions.Delete, resource.Id); if (isAuthorized) { bool isDeleted = resource is CategoryNode? dataAccess.DeleteCategoryNodeWithHierarchy(ResourceDetailView.ResourceId) : dataAccess.DeleteResource(ResourceDetailView.ResourceId); //Delete resource if (isDeleted) { DeleteButton.Visible = false; ResourceDetailView.Visible = false; //Show Delete successful message MessageLabel.ForeColor = System.Drawing.Color.Black; MessageLabel.Text = Resources.Resources.AlertRecordDelerted; if (OnSuccessfulDelete != null) { OnSuccessfulDelete(this, new EventArgs()); } } else { //Show delete failure message MessageLabel.ForeColor = System.Drawing.Color.Red; MessageLabel.Text = Resources.Resources.AlertResourceDelertedError; } } else { //Show delete failure message MessageLabel.ForeColor = System.Drawing.Color.Red; if (resource is CategoryNode) { MessageLabel.Text = Resources.Resources.MsgUnauthorizeAccessDeleteCategory; } else { MessageLabel.Text = string.Format(CultureInfo.InvariantCulture, Resources.Resources.MsgUnAuthorizeAccess, UserResourcePermissions.Delete); } } } } }