90 lines
2.5 KiB
C#
90 lines
2.5 KiB
C#
using BS.Shared.DataContracts.GkvAbrechnung;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BS.Shared.Extensions
|
|
{
|
|
public static class GkvAbrechnungExtensions
|
|
{
|
|
/// <summary>
|
|
/// 1 - Übertragung nicht begonnen
|
|
/// 2 - Prüfung keine Antwort
|
|
/// 3 - Verschlüsselt keine Antwort
|
|
/// 4 - Übertragung keine Antwort
|
|
/// 5 - Fertig (Erfolreich oder Fehler)
|
|
/// </summary>
|
|
/// <param name="gkvAbrechnungDC"></param>
|
|
/// <returns></returns>
|
|
public static int GetState(this GkvAbrechnungDC gkvAbrechnungDC)
|
|
{
|
|
if (gkvAbrechnungDC.TransferProtokolle == null || !gkvAbrechnungDC.TransferProtokolle.Any())
|
|
return 1;
|
|
|
|
var last_protokoll = gkvAbrechnungDC.TransferProtokolle.Last();
|
|
|
|
return GetState(last_protokoll);
|
|
}
|
|
|
|
public static int GetState(this GkvTransferProtokollDC last_protokoll)
|
|
{
|
|
if (!last_protokoll.PruftDatum.HasValue)
|
|
{
|
|
return 2;
|
|
}
|
|
else
|
|
{
|
|
if (last_protokoll.PruftFehler != null)
|
|
{
|
|
return 5;
|
|
}
|
|
}
|
|
|
|
if (!last_protokoll.VerschlusseltDatum.HasValue)
|
|
{
|
|
return 3;
|
|
}
|
|
else
|
|
{
|
|
if (last_protokoll.VerschlusseltFehler != null)
|
|
{
|
|
return 5;
|
|
}
|
|
}
|
|
|
|
if (!last_protokoll.UbertragDatum.HasValue)
|
|
{
|
|
return 4;
|
|
}
|
|
else
|
|
{
|
|
if (last_protokoll.UbertragFehler != null)
|
|
{
|
|
return 5;
|
|
}
|
|
}
|
|
|
|
return 6;
|
|
}
|
|
|
|
public static bool IsStatusComplete(this GkvAbrechnungDC gkvAbrechnungDC)
|
|
{
|
|
var state = gkvAbrechnungDC.GetState();
|
|
|
|
return state == 5 || state == 6;
|
|
|
|
//gkvAbrechnungDC.VerschluesseltAm.HasValue
|
|
//&& gkvAbrechnungDC.UebertragenAm.HasValue
|
|
//&& gkvAbrechnungDC.AntwortErhaltenAm.HasValue
|
|
//&& gkvAbrechnungDC.AntwortEntschluesseltAm.HasValue;
|
|
}
|
|
|
|
public static bool IsUpToDate(this GkvAbrechnungDC gkvAbrechnungDC, GkvAbrechnungDC compareTo)
|
|
{
|
|
return gkvAbrechnungDC.GetState() == compareTo.GetState();
|
|
}
|
|
}
|
|
}
|