152 lines
3.0 KiB
C++
152 lines
3.0 KiB
C++
#include "StdAfx.h"
|
|
#include "ClienteLicencias.h"
|
|
#include "DescargaVersion.h"
|
|
#include "DialogKey.h"
|
|
#include "ClientLic.h"
|
|
#include "DialogError.h"
|
|
#include "licencia.h"
|
|
#include "DescargadorFiles.h"
|
|
#include "utl.h"
|
|
#include "DialogProgreso.h"
|
|
#include "dir_manager.h"
|
|
#include "_log.h"
|
|
#include "LicCliente.h"
|
|
|
|
ClienteLicencias::ClienteLicencias(void)
|
|
{
|
|
dias_pregun = 5;
|
|
dirLic[0]=0;
|
|
dirTemp[0]=0;
|
|
}
|
|
|
|
ClienteLicencias::~ClienteLicencias(void)
|
|
{
|
|
}
|
|
|
|
void ClienteLicencias::muestaError( char* info, char* producto )
|
|
{
|
|
ClientLic_dll dll;
|
|
DialogError dialog;
|
|
dialog.errorSt = info;
|
|
dialog.produc = producto;
|
|
|
|
dialog.DoModal();
|
|
return;
|
|
}
|
|
|
|
bool ClienteLicencias::getClave( char* clave, char* producto )
|
|
{
|
|
ClientLic_dll dll;
|
|
DialogKey dialog;
|
|
strcpy(dialog.producto,producto);
|
|
dialog.DoModal();
|
|
strcpy(clave, dialog.clave);
|
|
return true;
|
|
}
|
|
|
|
bool ClienteLicencias::descargaInstalador( Licencia *lic )
|
|
{
|
|
ClientLic_dll dll;
|
|
if(!preguntarDescarga())
|
|
return true;
|
|
DescargaVersion dialog;
|
|
dialog.producActu = lic->nombre_producto;
|
|
dialog.verActu = lic->version_producto;
|
|
dialog.producNew = lic->nombre_producto;
|
|
dialog.verNew = lic->instaVersion;
|
|
dialog.desc = lic->instaDescrip;
|
|
|
|
dialog.DoModal();
|
|
if(dialog.descarga)
|
|
descargaVersion(lic);
|
|
return true;
|
|
}
|
|
|
|
void ClienteLicencias::descargaVersion( Licencia *lic)
|
|
{
|
|
DescargadorFiles cli;
|
|
StrArray buf;
|
|
Cutl::stringSplit(lic->instaServer,":",&buf);
|
|
cli.setServer(buf.get(0),
|
|
atoi(buf.get(1)), lic->instaKey,lic->instaUsu);
|
|
buf.n_i=buf.n_str =0;
|
|
buf.add(lic->instaPath);
|
|
DialogProgreso prog;
|
|
dprog = &prog;
|
|
char name[128];
|
|
sprintf(prog.dirProgram,"%s%s",dirTemp,Cdir_manager::nombre_archivo(lic->instaPath,name));
|
|
prog.espera = &espera_dlg;
|
|
prog.cancelar = &cancelaDescarga;
|
|
cancelaDescarga = false;
|
|
espera_dlg = true;
|
|
cli.iniciaDescarga(&buf,dirTemp,this);
|
|
prog.DoModal();
|
|
}
|
|
|
|
void ClienteLicencias::setStatus( double porcen )
|
|
{
|
|
porcen = porcen;
|
|
while(espera_dlg)
|
|
Sleep(10);
|
|
dprog->SendMessage(WMS_STATUS,(WPARAM) &porcen);
|
|
}
|
|
|
|
void ClienteLicencias::finTransfer( bool finalFeliz )
|
|
{
|
|
if(finalFeliz)
|
|
porcen = 100;
|
|
else
|
|
porcen = false;
|
|
while(espera_dlg)
|
|
Sleep(10);
|
|
dprog->SendMessage(WMS_STATUS,(WPARAM) &porcen);
|
|
dprog->SendMessage(WMS_FIN,(WPARAM) finalFeliz);
|
|
}
|
|
|
|
bool ClienteLicencias::cancelTransfer()
|
|
{
|
|
return cancelaDescarga;
|
|
}
|
|
|
|
bool ClienteLicencias::preguntarDescarga()
|
|
{
|
|
char str[256];
|
|
//revisa archivo---------------
|
|
bool res = true;
|
|
if(!dirLic[0])
|
|
strcpy(str, "acceso.bin");
|
|
else
|
|
sprintf(str,"%s%s",dirLic, "acceso.bin");
|
|
|
|
Cb_file f;
|
|
__int64 t = CTime::GetCurrentTime().GetTime();
|
|
if(f.abre(str,3))
|
|
{
|
|
__int64 tult=0;
|
|
f.lee(&tult, sizeof(__int64));
|
|
f.cierra();
|
|
res = (tult+(dias_pregun*86400))<t;
|
|
}
|
|
|
|
if(res && f.abre(str,2,true))
|
|
f.escribe(&t, sizeof(t));
|
|
return res;
|
|
}
|
|
|
|
bool ClienteLicencias::cargaLicencia()
|
|
{
|
|
LicCliente cli;
|
|
return cli.cargaLicencia(this);
|
|
}
|
|
|
|
bool ClienteLicencias::getPathLic( char* path, char* producto )
|
|
{
|
|
if(!dirLic[0])
|
|
{
|
|
path[0]=0;
|
|
return true;
|
|
}
|
|
sprintf(path,"%s%s.lic", dirLic, producto);
|
|
return true;
|
|
}
|