init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co
|
||||
{
|
||||
public sealed class ResponseWrapperCo<T> where T : class, new()
|
||||
{
|
||||
public HttpStatusCode StatusCode { get; private set; } = HttpStatusCode.NotFound;
|
||||
public DateTime UtolsoSzinkronDatumUtc { get; } = DateTime.UtcNow;
|
||||
public string Hash => string.IsNullOrWhiteSpace(DatabaseHash + SourceHash) ? null : DatabaseHash + "." + SourceHash;
|
||||
public bool IsHashesOk => IsDatabaseHashOk && IsSourceHashOk;
|
||||
public bool IsDatabaseHashOk
|
||||
=> !string.IsNullOrWhiteSpace(RequestHash) && !string.IsNullOrWhiteSpace(DatabaseHash) && RequestHash.StartsWith(DatabaseHash, StringComparison.CurrentCultureIgnoreCase);
|
||||
public bool IsSourceHashOk
|
||||
=> !string.IsNullOrWhiteSpace(RequestHash) && !string.IsNullOrWhiteSpace(SourceHash) && RequestHash.EndsWith(SourceHash, StringComparison.CurrentCultureIgnoreCase);
|
||||
private string RequestHash { get; }
|
||||
private string DatabaseHash { get; }
|
||||
private string SourceHash { get; set; }
|
||||
public T Adatcsomag { get; private set; } = null;
|
||||
|
||||
private ResponseWrapperCo() { }
|
||||
public ResponseWrapperCo(string requestHash, string databaseHash = null)
|
||||
{
|
||||
RequestHash = requestHash;
|
||||
DatabaseHash = databaseHash;
|
||||
}
|
||||
|
||||
/// <param name="isStrictMode">True: Adatcsomag prop is only assigned if all hash are ok.</param>
|
||||
public void FillData(T adatcsomag, bool isStrictMode = false)
|
||||
{
|
||||
StatusCode = HttpStatusCode.OK;
|
||||
SourceHash = HashLogic.CreateSourceHash(adatcsomag);
|
||||
if (isStrictMode)
|
||||
{
|
||||
Fill(IsHashesOk, adatcsomag);
|
||||
}
|
||||
else
|
||||
{
|
||||
Fill(IsSourceHashOk, adatcsomag);
|
||||
}
|
||||
}
|
||||
|
||||
private void Fill(bool isHashOk, T adatcsomag)
|
||||
{
|
||||
if (isHashOk)
|
||||
{
|
||||
StatusCode = HttpStatusCode.NotModified;
|
||||
}
|
||||
else
|
||||
{
|
||||
Adatcsomag = adatcsomag;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue