From a341819711cda358652ad84b1e507d9559ecabfd Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 27 Apr 2021 18:22:57 +0800 Subject: refactor: Refactor data services. --- .../Services/Data/DataManagerExtensions.cs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 BackEnd/Timeline/Services/Data/DataManagerExtensions.cs (limited to 'BackEnd/Timeline/Services/Data/DataManagerExtensions.cs') diff --git a/BackEnd/Timeline/Services/Data/DataManagerExtensions.cs b/BackEnd/Timeline/Services/Data/DataManagerExtensions.cs new file mode 100644 index 00000000..64d35b9b --- /dev/null +++ b/BackEnd/Timeline/Services/Data/DataManagerExtensions.cs @@ -0,0 +1,26 @@ +using System; +using System.Threading.Tasks; + +namespace Timeline.Services.Data +{ + public static class DataManagerExtensions + { + /// + /// Try to get an entry and throw if not exist. + /// + public static async Task GetEntryAndCheck(this IDataManager dataManager, string tag, string notExistMessage) + { + if (dataManager is null) + throw new ArgumentNullException(nameof(dataManager)); + if (tag is null) + throw new ArgumentNullException(nameof(tag)); + if (notExistMessage is null) + throw new ArgumentNullException(nameof(notExistMessage)); + + var data = await dataManager.GetEntry(tag); + if (data is null) + throw new DatabaseCorruptedException(string.Format(Resource.GetEntryAndCheckNotExist, tag, notExistMessage)); + return data; + } + } +} -- cgit v1.2.3