Hallo...
Ich brauche dringend etwas hilfe bei meiner Server -> Client lizenz vergabe.
Ich habe eine funktion die Prüfen soll, ob sich eine Lizenz in der _BlockList befindet und nur freie Lizenzen die zur Anwendung passen zurückgeben soll.
Vorweg:
_AllLicenseList enthält alle gefunden Lizenzen im Format:
lizenz1.ldf
lizenz2.ldf
usw..
_BlockedList enhält die geblockten Lizenzen für eine Anwendung z.B
Testapp\lizenz1.ldf
dann ist die lizenz datei lizenz1.ldf im ordner Testapp in gebrauch
so und meine funktion soll jetzt die nächste freie Lizenz für die Anwendung (welche sich dann im Unterordner mit Namen der Anwendung befindet z.B Testapp) zurückgeben, dabei muss die _AllLicenseList durchlaufen werden, geprüft werden ob sich die Lizenz in der _BlockList befindet und es muss geprüft werden ob die eventuell freie Lizenz sich auch im Unterordner (z.B testapp) befindet.
der name der Anwendung wird als ApplicationName übergeben dieses ist dann auch der unterordner auf dem Server der den Namen der Anwendung haben muss.
ich hoffe ich habe es einigermaßen verständlich geschildert...
meine Funktion (die leider nicht richtig funzt sieht so aus:
Delphi-Quellcode:
function TLicenseService.GetFreeLicenseFileName(const ApplicationName:string): String;
var
i,y:integer;
Lizenz:string;
begin
//der name der Lizenzdatei name muss zurückgegeben werden z.B Testapp\Lizenz1.ldf
// wenn keine Lizenz mehr frei ist muss noFreeLicenses zurückgegeben werden
i:=0;
while i <= ServerForm._AllLicenses.Count-1 do
begin
y:=0;
Lizenz:=ApplicationName+'\'+ServerForm._AllLicenses.Strings[i];
while y <= ServerForm._BlockedLicenses.Count -1 do
begin
if Lizenz=ApplicationName+'\'+ServerForm._BlockedLicenses.Strings[y] then
begin
Lizenz:='noFreeLicenses';
break;
end;
if (y >=ServerForm._BlockedLicenses.Count -1) and(fileexists(ApplicationName+'\'+ServerForm._BlockedLicenses.Strings[y])) then
begin
result:=lizenz;
exit;
end;
y:=y+1;
end;
i:=i+1;
end;
result:=Lizenz;
end;