Files
Backend-Api/ServiceHost/Areas/Client/Pages/Company/Reward/Index.cshtml.cs

196 lines
5.4 KiB
C#

using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Security.Claims;
using _0_Framework.Application;
using _0_Framework.Infrastructure;
using AccountManagement.Application.Contracts.SubAccount;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.Error;
using CompanyManagment.App.Contracts.Reward;
using Microsoft.AspNetCore.Authorization;
namespace ServiceHost.Areas.Client.Pages.Company.Reward
{
[Authorize]
[NeedsPermission(SubAccountPermissionHelper.RewardOperationsPermissionCode)]
public class IndexModel : PageModel
{
private readonly IPasswordHasher _passwordHasher;
private readonly IWorkshopApplication _workshopApplication;
private readonly IRewardApplication _rewardApplication;
private readonly IAuthHelper _authHelper;
private readonly IEmployeeApplication _employeeApplication;
private readonly ISubAccountApplication _subAccountApplication;
public string WorkshopFullName;
public int PageIndex = 0;
public IndexModel(IWorkshopApplication workshopApplication, IPasswordHasher passwordHasher, IRewardApplication rewardApplication, IAuthHelper authHelper, IEmployeeApplication employeeApplication, ISubAccountApplication subAccountApplication)
{
_workshopApplication = workshopApplication;
_passwordHasher = passwordHasher;
_rewardApplication = rewardApplication;
_authHelper = authHelper;
_employeeApplication = employeeApplication;
_subAccountApplication = subAccountApplication;
}
public IActionResult OnGet()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
return BadRequest();
var workshopInfo = _workshopApplication.GetWorkshopInfo(workshopId);
WorkshopFullName = workshopInfo.WorkshopFullName;
return Page();
}
public IActionResult OnGetLoadDataAjax(RewardSearchModel searchViewModel)
{
var subAccId = _authHelper.CurrentSubAccountId();
if(subAccId>0)
{
var subAccountViewModel = _subAccountApplication.GetDetails(subAccId);
if (subAccountViewModel.SubAccountRoleId == 2)
{
return new JsonResult(new
{
success = true,
data = new List<RewardViewModel>(),
pageIndex = 0,
});
}
}
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
return BadRequest();
searchViewModel.WorkshopId = workshopId;
var result = _rewardApplication.GetSearchList(searchViewModel);
return new JsonResult(new
{
success = true,
data = result,
pageIndex = result.Count()
});
}
public IActionResult OnGetEmployeeList()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
return new JsonResult(new
{
success = false,
message = "کارگاه ای یافت نشد",
});
var employees = _employeeApplication.GetWorkingEmployeesByWorkshopId(workshopId);
return new JsonResult(new
{
success = true,
data = employees
});
}
public IActionResult OnGetCreate()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
{
var resultError = new ErrorViewModel()
{
Message = "کارگاه شما یافت نشد"
};
return Partial("../Error/_ErrorModal", resultError);
}
var command = new CreateRewardViewModel();
return Partial("ModalCreateNewReward", command);
}
public IActionResult OnPostCreate(CreateRewardViewModel command)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
return new JsonResult(new
{
IsSuccedded = false,
message = "کارگاه ای یافت نشد",
});
command.WorkshopId = workshopId;
command.RewardedByAccountId = _authHelper.CurrentAccountId();
var result = _rewardApplication.Create(command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnGetEdit(long id)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
{
var resultError = new ErrorViewModel()
{
Message = "کارگاه شما یافت نشد"
};
return Partial("../Error/_ErrorModal", resultError);
}
var command = _rewardApplication.GetDetails(id);
return Partial("ModalEditReward", command);
}
public IActionResult OnPostEdit(EditRewardViewModel command)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
return new JsonResult(new
{
IsSuccedded = false,
message = "کارگاه ای یافت نشد",
});
command.WorkshopId = workshopId;
var result = _rewardApplication.Edit(command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnPostRemove(long id)
{
var result = _rewardApplication.Remove(id);
return new JsonResult(new
{
isSuccess = result.IsSuccedded,
message = result.Message,
});
}
}
}