first commit
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
using BethanysPieShopHRM.Shared.Domain;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Forms;
|
||||
using Webshop.App.Services;
|
||||
|
||||
namespace Webshop.App.Pages
|
||||
{
|
||||
public partial class EmployeeEdit
|
||||
{
|
||||
[Inject]
|
||||
public IEmployeeDataService EmployeeDataService { get; set; } = default!;
|
||||
[Inject]
|
||||
public ICountryDataService CountryDataService { get; set; } = default!;
|
||||
[Inject]
|
||||
public IJobCategoryDataService JobCategoryDataService { get; set; } = default!;
|
||||
|
||||
[Inject]
|
||||
public NavigationManager NavigationManager { get; set; } = default!;
|
||||
|
||||
[Parameter]
|
||||
public int? EmployeeId { get; set; }
|
||||
public Employee? Employee { get; set; }
|
||||
public IEnumerable<Country> Countries { get; set; } = new List<Country>();
|
||||
public IEnumerable<JobCategory> JobCategories { get; set; } = new List<JobCategory>();
|
||||
|
||||
protected string Message = string.Empty;
|
||||
protected string StatusClass = string.Empty;
|
||||
protected bool Saved;
|
||||
private IBrowserFile selectedFile;
|
||||
private async Task<Employee?> GetEmployee(int employeeId)
|
||||
{
|
||||
return await EmployeeDataService.GetEmployeeDetails(employeeId);
|
||||
}
|
||||
private void OnInputFileChange(InputFileChangeEventArgs e)
|
||||
{
|
||||
selectedFile = e.File;
|
||||
StateHasChanged();
|
||||
}
|
||||
protected async override Task OnInitializedAsync()
|
||||
{
|
||||
Countries = await CountryDataService.GetCountries();
|
||||
JobCategories = await JobCategoryDataService.GetJobCategories();
|
||||
Saved = false;
|
||||
}
|
||||
protected async override Task OnParametersSetAsync()
|
||||
{
|
||||
if (!EmployeeId.HasValue)
|
||||
{
|
||||
Employee = new Employee();
|
||||
return;
|
||||
}
|
||||
|
||||
var employee = await GetEmployee(EmployeeId.Value);
|
||||
|
||||
if (employee is null)
|
||||
{
|
||||
NavigationManager.NavigateTo("/not-found");
|
||||
return;
|
||||
}
|
||||
|
||||
Employee = employee;
|
||||
}
|
||||
|
||||
protected async Task HandleValidSubmit()
|
||||
{
|
||||
Saved = false;
|
||||
|
||||
if (!EmployeeId.HasValue && Employee != null)
|
||||
{
|
||||
if (selectedFile != null)
|
||||
{
|
||||
var file = selectedFile;
|
||||
Stream stream = file.OpenReadStream();
|
||||
MemoryStream ms = new();
|
||||
await stream.CopyToAsync(ms);
|
||||
stream.Close();
|
||||
Employee.ImageName = file.Name;
|
||||
Employee.ImageContent = ms.ToArray();
|
||||
}
|
||||
var addedEmployee = await EmployeeDataService.AddEmployee(Employee);
|
||||
if (addedEmployee != null)
|
||||
{
|
||||
StatusClass = "alert-success";
|
||||
Message = "New employee added successfully.";
|
||||
Saved = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
StatusClass = "alert-danger";
|
||||
Message = "Something went wrong adding the new employee. Please try again.";
|
||||
Saved = false;
|
||||
}
|
||||
}
|
||||
else if (Employee != null)
|
||||
{
|
||||
await EmployeeDataService.UpdateEmployee(Employee);
|
||||
StatusClass = "alert-success";
|
||||
Message = "Employee updated successfully.";
|
||||
Saved = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected async Task HandleInvalidSubmit()
|
||||
{
|
||||
StatusClass = "alert-danger";
|
||||
Message = "validation errors";
|
||||
|
||||
}
|
||||
|
||||
protected async Task DeleteEmployee()
|
||||
{
|
||||
if(Employee != null && Employee.EmployeeId > 0)
|
||||
{
|
||||
await EmployeeDataService.DeleteEmployee(Employee.EmployeeId);
|
||||
StatusClass = "alert-success";
|
||||
Message = "Deleted successful";
|
||||
}
|
||||
}
|
||||
protected void BackToOverview()
|
||||
{
|
||||
NavigationManager.NavigateTo("/employeeoverview");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user