Files
Checador-Desktop/ADSUtileriasService/Servicios/ChecadorService.cs
Jorge Luis caudillo esparza ded676ec67 ---
2026-05-20 17:48:48 -07:00

198 lines
8.8 KiB
C#

using ADSUtileriasService.Conexion.SIG;
using ADSUtileriasService.Helpers;
using ADSNetLibrary.SIGAPI;
using ADSNetLibrary.SIGAPI.Models;
using ADSNetLibrary.SIGAPI.Models.Planeacion.Request;
using ADSNetLibrary.SIGAPI.Models.Planeacion.Response;
using ADSNetLibrary.SIGAPI.Models.Request;
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using ADSNetLibrary.SIGAPI.Models.Sistema;
namespace ADSUtileriasService.Servicios
{
[ServiceContract]
public interface IChecadorService
{
[OperationContract]
List<Modelos.Checador.Checadormodel> GetChecadores(int cveSubProyecto, int CveEmpresa = -1);
[OperationContract]
List<ADSNetLibrary.SIGAPI.Models.RH.Response.ResponseGetPersonal> GETPersonal(int cveSubProyecto, int CveEmpresa = -1);
[OperationContract]
List<ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.PersonalChecador> GetChecadorEmpleado(int CveChecador, int CveEmpresa = -1);
[OperationContract]
List<PersonalChecadorIDResponse> PersonalChecadorID(int CveChecador);
[OperationContract]
bool SetPersonalChecador(List<ADSNetLibrary.SIGAPI.Models.RH.Request.RequestPersonalChecadorUp> empleados, int CveEmpresa = -1);
[OperationContract]
bool AddChecadorEmpleado(int cveChecador, ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.PersonalChecador personal, string sCardnumber = "0", int CveEmpresa = -1);
[OperationContract]
ResponseLogin Login(RequestLogin parames);
[OperationContract]
List<ResponseSubProyectoUsuario> GetSubProyectos(RequestSubProyectoUsuario parames);
}
class ChecadorService : IChecadorService
{
public List<Modelos.Checador.Checadormodel> GetChecadores(int cveSubProyecto, int CveEmpresa = -1)
{
ResponseModel<List<Modelos.Checador.Checadormodel>> retorno = new ResponseModel<List<Modelos.Checador.Checadormodel>>();
using (Helpers.ADSSqlite.SqlLiteBase bd = new Helpers.ADSSqlite.SqlLiteBase())
{
Conexion.Local.RHRepository rhrepo = new Conexion.Local.RHRepository(bd);
retorno.Result = rhrepo.GETChecadores(cveSubProyecto);
}
return retorno.Result;
}
public bool AddUpPersonalChecadorVinculo(RequestPersonalChecadorVinculoAddUp request)
{
Conexion.SIG.RHSIG rhsig = new Conexion.SIG.RHSIG();
var checks = rhsig.AddUpPersonalChecadorVinculo(request);
if (checks != null)
{
return checks.Result;
}
else
{
return false;
}
}
public List<PersonalChecadorIDResponse> PersonalChecadorID(int CveChecador)
{
Conexion.SIG.RHSIG rhsig = new Conexion.SIG.RHSIG();
var checks = rhsig.PersonalChecadorID(CveChecador);
if (checks != null)
{
return checks.Result;
}
else
{
return null;
}
}
public List<ADSNetLibrary.SIGAPI.Models.RH.Response.ResponseGetPersonal> GETPersonal(int cveSubProyecto, int CveEmpresa = -1)
{
ResponseModel<List<ADSNetLibrary.SIGAPI.Models.RH.Response.ResponseGetPersonal>> retorno = new ResponseModel<List<ADSNetLibrary.SIGAPI.Models.RH.Response.ResponseGetPersonal>>();
using (Helpers.ADSSqlite.SqlLiteBase bd = new Helpers.ADSSqlite.SqlLiteBase())
{
Conexion.Local.RHRepository rhrepo = new Conexion.Local.RHRepository(bd);
retorno.Result = rhrepo.GETPersonal(cveSubProyecto);
}
return retorno.Result;
}
public List<ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.PersonalChecador> GetChecadorEmpleado(int CveChecador, int CveEmpresa = -1)
{
List<ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.PersonalChecador> retorno = null;
using (Helpers.ADSSqlite.SqlLiteBase bd = new Helpers.ADSSqlite.SqlLiteBase())
{
Conexion.Local.RHRepository rhrepo = new Conexion.Local.RHRepository(bd);
List<Modelos.Checador.Checadormodel> devicelist = rhrepo.GETChecadores(-1);
foreach (Modelos.Checador.Checadormodel devicemodel in devicelist)
{
if (devicemodel.cveChecador == CveChecador)
{
using (ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.ApiZKTeco device = new ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.ApiZKTeco(devicemodel.iPLocal, devicemodel.puerto.ToEntero()))
{
var registros = device.GetChecadorEmpleado();
if (registros != null && registros.IsSuccess)
{
retorno = registros.Result;
}
}
}
}
}
return retorno;
}
public bool AddChecadorEmpleado(int cveChecador, ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.PersonalChecador personal, string sCardnumber = "0", int CveEmpresa = -1)
{
bool retorno = false;
using (Helpers.ADSSqlite.SqlLiteBase bd = new Helpers.ADSSqlite.SqlLiteBase())
{
Conexion.Local.RHRepository rhrepo = new Conexion.Local.RHRepository(bd);
List<Modelos.Checador.Checadormodel> devicelist = rhrepo.GETChecadores(-1);
foreach (Modelos.Checador.Checadormodel devicemodel in devicelist)
{
if (devicemodel.cveChecador == cveChecador)
{
using (ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.ApiZKTeco device = new ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.ApiZKTeco(devicemodel.iPLocal, devicemodel.puerto.ToEntero()))
{
var registros = device.AddChecadorEmpleado(personal,sCardnumber);
if (registros != null && registros.IsSuccess)
{
retorno = registros.Result;
}
}
}
}
}
return retorno;
}
public bool SetPersonalChecador(List<ADSNetLibrary.SIGAPI.Models.RH.Request.RequestPersonalChecadorUp> empleados, int CveEmpresa = -1)
{
using (Helpers.ADSSqlite.SqlLiteBase bd = new Helpers.ADSSqlite.SqlLiteBase())
{
Conexion.Local.RHRepository rhrepo = new Conexion.Local.RHRepository(bd);
//List<ChecadorPersonal> chekpersonal = new List<ChecadorPersonal>();
//List<Modelos.Checador.Checadormodel> devicelist = rhrepo.GETChecadores(-1);
//foreach (Modelos.Checador.Checadormodel devicemodel in devicelist)
//{
// ChecadorController.ApiChecadorBase device = new ChecadorController.ApiZKTeco(devicemodel.iPLocal, devicemodel.puerto.ToEntero());
// var registros = device.GetChecadorEmpleado();
// if (registros != null && registros.IsSuccess)
// {
// chekpersonal.Add(new ChecadorPersonal() { checador = devicemodel, personal = registros.Result });
// }
//}
try
{
Conexion.SIG.RHSIG rhsig = new Conexion.SIG.RHSIG();
var checks = rhsig.UpPersonalChecador(empleados);
}
catch (Exception)
{
}
foreach (var item in empleados)
{
rhrepo.UPPersonalChecador(item.CvePersonal, item.cveChecador, item.checadorID);
}
}
return true;
}
public ResponseLogin Login(RequestLogin parames)
{
UsuarioSIG Usig = new UsuarioSIG();
ResponseModel<ResponseLogin> usuario = Usig.Login(parames);
return usuario.Result;
}
public List<ResponseSubProyectoUsuario> GetSubProyectos(RequestSubProyectoUsuario parames)
{
PlaneacionSIG planeasig = new PlaneacionSIG();
ResponseModel<List<ResponseSubProyectoUsuario>> planea = planeasig.GetSubProyectos(parames);
return planea.Result;
}
}
class ChecadorPersonal
{
public int CveChecador { get { if (checador != null) { return checador.cveChecador; } else { return 0; } } }
public Modelos.Checador.Checadormodel checador { get; set; }
public List<ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib.PersonalChecador> personal { get; set; }
}
}