Removal of unused License Service

This commit is contained in:
BONNEVILLE Geoffroy
2018-06-18 16:19:56 +02:00
parent e9601e8d13
commit 9225732c1a
7 changed files with 8 additions and 127 deletions

View File

@@ -1,12 +0,0 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Windows.ApplicationModel.Store;
namespace ModernKeePass.Interfaces
{
public interface ILicenseService
{
IReadOnlyDictionary<string, ProductListing> Products { get; }
Task<int> Purchase(string addOn);
}
}

View File

@@ -116,7 +116,6 @@
</Compile>
<Compile Include="Converters\IntToSymbolConverter.cs" />
<Compile Include="Exceptions\DatabaseOpenedException.cs" />
<Compile Include="Interfaces\ILicenseService.cs" />
<Compile Include="Interfaces\IProxyInvocationHandler.cs" />
<Compile Include="Interfaces\IRecentService.cs" />
<Compile Include="Interfaces\IRecentItem.cs" />
@@ -135,7 +134,6 @@
<Compile Include="Common\ObservableDictionary.cs" />
<Compile Include="Common\RelayCommand.cs" />
<Compile Include="Common\SuspensionManager.cs" />
<Compile Include="Services\LicenseService.cs" />
<Compile Include="Services\RecentService.cs" />
<Compile Include="Services\ResourcesService.cs" />
<Compile Include="Services\SettingsService.cs" />

View File

@@ -1,73 +0,0 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Windows.ApplicationModel.Store;
using ModernKeePass.Interfaces;
namespace ModernKeePass.Services
{
public class LicenseService : SingletonServiceBase<LicenseService>, ILicenseService
{
public enum PurchaseResult
{
Succeeded,
NothingToFulfill,
PurchasePending,
PurchaseReverted,
ServerError,
NotPurchased,
AlreadyPurchased
}
public IReadOnlyDictionary<string, ProductListing> Products { get; }
private readonly HashSet<Guid> _consumedTransactionIds = new HashSet<Guid>();
public LicenseService()
{
var listing = CurrentApp.LoadListingInformationAsync().GetAwaiter().GetResult();
Products = listing.ProductListings;
}
public async Task<int> Purchase(string addOn)
{
var purchaseResults = await CurrentApp.RequestProductPurchaseAsync(addOn);
switch (purchaseResults.Status)
{
case ProductPurchaseStatus.Succeeded:
GrantFeatureLocally(purchaseResults.TransactionId);
return (int) await ReportFulfillmentAsync(purchaseResults.TransactionId, addOn);
case ProductPurchaseStatus.NotFulfilled:
// The purchase failed because we haven't confirmed fulfillment of a previous purchase.
// Fulfill it now.
if (!IsLocallyFulfilled(purchaseResults.TransactionId))
{
GrantFeatureLocally(purchaseResults.TransactionId);
}
return (int) await ReportFulfillmentAsync(purchaseResults.TransactionId, addOn);
case ProductPurchaseStatus.NotPurchased:
return (int) PurchaseResult.NotPurchased;
case ProductPurchaseStatus.AlreadyPurchased:
return (int) PurchaseResult.AlreadyPurchased;
default:
throw new IndexOutOfRangeException("Purchase results status does not have a valid value");
}
}
private async Task<PurchaseResult> ReportFulfillmentAsync(Guid transactionId, string productName)
{
var result = await CurrentApp.ReportConsumableFulfillmentAsync(productName, transactionId);
return (PurchaseResult) result;
}
private void GrantFeatureLocally(Guid transactionId)
{
_consumedTransactionIds.Add(transactionId);
}
private bool IsLocallyFulfilled(Guid transactionId)
{
return _consumedTransactionIds.Contains(transactionId);
}
}
}

View File

@@ -20,7 +20,7 @@ namespace ModernKeePassApp.Test
_database.DatabaseFile = ApplicationData.Current.TemporaryFolder.CreateFileAsync("NewDatabase.kdbx").GetAwaiter().GetResult();
Assert.IsTrue(_database.IsFileOpen);
OpenOrCreateDatabase(true);
_database.Close().GetAwaiter().GetResult();
_database.Close();
Assert.IsTrue(_database.IsClosed);
}
@@ -39,7 +39,7 @@ namespace ModernKeePassApp.Test
TestOpen();
_database.Save(ApplicationData.Current.TemporaryFolder.CreateFileAsync("SaveDatabase.kdbx").GetAwaiter().GetResult());
Assert.IsTrue(_database.IsOpen);
_database.Close().GetAwaiter().GetResult();
_database.Close();
Assert.IsTrue(_database.IsClosed);
TestOpen();
}
@@ -47,7 +47,7 @@ namespace ModernKeePassApp.Test
private void OpenOrCreateDatabase(bool createNew)
{
Assert.ThrowsException<ArgumentNullException>(
() => _database.Open(null, createNew).GetAwaiter().GetResult());
() => _database.Open(null, createNew));
var compositeKey = new CompositeKeyVm(_database, new ResourceServiceMock())
{
HasPassword = true,

View File

@@ -1,31 +0,0 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Store;
using ModernKeePass.Interfaces;
namespace ModernKeePassApp.Test.Mock
{
public class LicenseServiceMock: ILicenseService
{
public IReadOnlyDictionary<string, ProductListing> Products { get; }
public LicenseServiceMock()
{
try
{
var proxyFile = Package.Current.InstalledLocation.GetFileAsync("data\\WindowsStoreProxy.xml").GetAwaiter().GetResult();
CurrentAppSimulator.ReloadSimulatorAsync(proxyFile).GetAwaiter().GetResult();
}
catch { }
var listing = CurrentAppSimulator.LoadListingInformationAsync().GetAwaiter().GetResult();
Products = listing.ProductListings;
}
public Task<int> Purchase(string addOn)
{
throw new System.NotImplementedException();
}
}
}

View File

@@ -121,7 +121,6 @@
<ItemGroup>
<Compile Include="DatabaseTests.cs" />
<Compile Include="Mock\DatabaseServiceMock.cs" />
<Compile Include="Mock\LicenseServiceMock.cs" />
<Compile Include="Mock\RecentServiceMock.cs" />
<Compile Include="Mock\ResourceServiceMock.cs" />
<Compile Include="Mock\SettingsServiceMock.cs" />

View File

@@ -39,7 +39,7 @@ namespace ModernKeePassApp.Test
Assert.IsNotNull(mainVm.SelectedItem);
Assert.AreEqual(typeof(OpenDatabasePage), ((MainMenuItemVm) mainVm.SelectedItem).PageType);
database.Open(null, false).GetAwaiter().GetResult();
database.Open(null);
mainVm = new MainVm(null, null, database, _resource, _recent);
Assert.IsNotNull(mainVm.SelectedItem);
Assert.AreEqual(2, mainVm.MainMenuItems.Count());
@@ -94,10 +94,10 @@ namespace ModernKeePassApp.Test
{
var database = new DatabaseServiceMock();
var saveVm = new SaveVm(database);
database.Open(null, false).GetAwaiter().GetResult();
saveVm.Save(false).GetAwaiter().GetResult();
database.Open(null);
saveVm.Save(false);
Assert.IsTrue(database.IsOpen);
saveVm.Save().GetAwaiter().GetResult();
saveVm.Save();
Assert.IsFalse(database.IsOpen);
}
@@ -118,7 +118,7 @@ namespace ModernKeePassApp.Test
public void TestEntryVm()
{
var database = new DatabaseServiceMock();
var entryVm = new EntryVm(new PwEntry(true, true), new GroupVm(), database)
var entryVm = new EntryVm(new PwEntry(true, true), new GroupVm(), database, _resource)
{
Name = "Test",
UserName = "login",