79 lines
3.0 KiB
C#
79 lines
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using _0_Framework.InfraStructure;
|
|
using Company.Domain.RollCallEmployeeAgg;
|
|
using CompanyManagment.App.Contracts.RollCallEmployee;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace CompanyManagment.EFCore.Repository;
|
|
|
|
public class RollCallEmployeeRepository : RepositoryBase<long, RollCallEmployee>, IRollCallEmployeeRepository
|
|
{
|
|
private readonly CompanyContext _context;
|
|
public RollCallEmployeeRepository(CompanyContext context) : base(context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId)
|
|
{
|
|
var query = _context.RollCallEmployees.Select(x => new RollCallEmployeeViewModel()
|
|
{
|
|
Id = x.id,
|
|
WorkshopId = x.WorkshopId,
|
|
EmployeeFullName = x.EmployeeFullName,
|
|
IsActiveString = x.IsActiveString,
|
|
HasUploadedImage = x.HasUploadedImage
|
|
}).Where(x => x.WorkshopId == workshopId);
|
|
|
|
return query.ToList();
|
|
}
|
|
|
|
|
|
|
|
public EditRollCallEmployee GetDetails(long id)
|
|
{
|
|
return _context.RollCallEmployees.Select(x => new RollCallEmployeeViewModel()
|
|
{
|
|
Id = x.id,
|
|
WorkshopId = x.WorkshopId,
|
|
EmployeeFullName = x.EmployeeFullName,
|
|
IsActiveString = x.IsActiveString,
|
|
HasUploadedImage = x.HasUploadedImage
|
|
}).FirstOrDefault(x => x.Id == id);
|
|
}
|
|
|
|
public RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId)
|
|
{
|
|
return _context.RollCallEmployees.Select(x => new RollCallEmployeeViewModel()
|
|
{
|
|
Id = x.id,
|
|
WorkshopId = x.WorkshopId,
|
|
EmployeeFullName = x.EmployeeFullName,
|
|
IsActiveString = x.IsActiveString,
|
|
HasUploadedImage = x.HasUploadedImage
|
|
}).FirstOrDefault(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId);
|
|
}
|
|
|
|
public List<RollCallEmployeeViewModel> GetPersonnelRollCallList(long workshopId)
|
|
{
|
|
var nowFa = DateTime.Now;
|
|
var employee = _context.Employees.Include(x => x.LeftWorks).Where(l => l.LeftWorks.Any(c => c.StartWorkDate <= nowFa && c.LeftWorkDate > nowFa && c.WorkshopId == workshopId));
|
|
|
|
return employee.Select(x => new RollCallEmployeeViewModel
|
|
{
|
|
WorkshopId = workshopId,
|
|
EmployeeId = x.id,
|
|
EmployeeFullName= x.FName + ' ' + x.LName,
|
|
NationalCode = x.NationalCode,
|
|
IsActiveString = _context.RollCallEmployees.Any(r => r.EmployeeId == x.id && r.WorkshopId == workshopId && r.IsActiveString == "true") ? "true" : "false",
|
|
HasUploadedImage = _context.RollCallEmployees.Any(r => r.EmployeeId == x.id && r.WorkshopId == workshopId && r.HasUploadedImage == "true") ? "true" : "false",
|
|
}).ToList();
|
|
}
|
|
|
|
public int activedPerson(long workshopId)
|
|
{
|
|
return _context.RollCallEmployees.Count(x => x.WorkshopId == workshopId && x.IsActiveString == "true" && x.HasUploadedImage == "true");
|
|
}
|
|
} |