Files
BeWoPlaner/Shared/Extensions/GkvAbrechnungExtensions.cs

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();
}
}
}