public void When_OwnerHasNotUsedDeviceForCertainPeriodOfTime_then_CantPurchaseDevice() { DeviceOwner deviceOwner = DeviceOwner.WithoutPurchasedHistory(Guid.NewGuid(), _usedDevices); PurchasedDevice purchasedDevice = _samePurchasedDeviceAsTheUsedOne; deviceOwner.Purchase(purchasedDevice, 1000); Assert.That(deviceOwner.DidPurchase(purchasedDevice), Is.False); }
public void When_OwnerHasNotCurrentlyUsedDevice_then_CantPurchaseDevice() { DeviceOwner deviceOwner = DeviceOwner.WithoutPurchasedHistory(Guid.NewGuid(), new List <UsedDevice>()); PurchasedDevice purchasedDevice = _samePurchasedDeviceAsTheUsedOne; deviceOwner.Purchase(purchasedDevice, 0); Assert.That(deviceOwner.DidPurchase(purchasedDevice), Is.False); }
public void When_OwnerPurchaseCurrentlyUsedDevice_then_PurchaseItOut() { DeviceOwner deviceOwner = DeviceOwner.WithoutPurchasedHistory(Guid.NewGuid(), _usedDevices); PurchasedDevice purchasedDevice = _samePurchasedDeviceAsTheUsedOne; deviceOwner.Purchase(purchasedDevice, 0); Assert.That(deviceOwner.DidPurchase(purchasedDevice), Is.True); }
/// <summary> /// Determines whether [is valid location interference query] [the specified location]. /// </summary> /// <param name="requestor">The device requestor.</param> /// <param name="errorMessages">The error messages.</param> /// <returns><c>true</c> if [is valid location] [the specified location]; otherwise, <c>false</c>.</returns> public bool IsValidRequestor(DeviceOwner requestor, out List <string> errorMessages) { errorMessages = new List <string>(); if (requestor == null) { errorMessages.Add(Constants.ErrorMessageRequestorRequired); } if ((requestor != null) && ((requestor.Owner.Email == null) || string.IsNullOrEmpty(requestor.Owner.Email.Text))) { errorMessages.Add(Constants.ErrorMessageRequestorEmailRequired); } if ((requestor != null) && ((requestor.Owner.Organization == null) || string.IsNullOrEmpty(requestor.Owner.Organization.Text))) { errorMessages.Add(Constants.ErrorMessageRequestorOrgRequired); } return(errorMessages.Count == 0); }
public static string GetDeviceOwner(DeviceOwner value) { return(EnumGetName(value)); }
public void When_OwnerHasBothPurchasedAndUsedDevice_then_ThrowCannotUsePurchasedDeviceException() { Assert.Catch <CannotUsePurchasedDeviceException>(() => DeviceOwner.WithPurchasedHistory(Guid.NewGuid(), _usedDevices, _purchasedDevices)); }
public static DeviceUpdateResponseModel UpdateDevice(IbaCmsDbContext cmsDb, DeviceUpdateRequestModel model, decimal ibaRecordId) { const string version = "2"; var result = new DeviceUpdateResponseModel(); var device = cmsDb.Devices.FirstOrDefault(d => d.DeviceUUID == model.DeviceUUID); if (device != null) { if (device.DeviceOwner.IbaId != ibaRecordId) { //note: Update device to new owner. var newOwner = cmsDb.DeviceOwners.FirstOrDefault(o => o.IbaId == ibaRecordId); if (newOwner == null) { newOwner = new DeviceOwner { IbaId = ibaRecordId, Devices = new List <Device> { device }, LastDeviceUpdate = DateTime.UtcNow, NamedUserId = ibaRecordId.ToString() }; cmsDb.DeviceOwners.Add(newOwner); } device.DeviceOwner = newOwner; } device.DeviceOwner.NamedUserId = ibaRecordId.ToString(); if (device.PushToken == model.PushToken) { device.DeviceOwner.LastDeviceUpdate = DateTime.UtcNow; cmsDb.SaveChanges(); return(result); } try { device.PushToken = model.PushToken; device.DeviceType = model.DeviceType; device.ApiVersion = version; device.UpdatedOn = DateTime.UtcNow; device.DeviceOwner.LastDeviceUpdate = DateTime.UtcNow; cmsDb.SaveChanges(); return(result); } catch (Exception) { result.SetError(HttpStatusCode.InternalServerError, "Could not update the Push Token"); } } var owner = cmsDb.DeviceOwners.FirstOrDefault(o => o.IbaId == ibaRecordId); device = new Device { DeviceUUID = model.DeviceUUID, ApiVersion = version, DeviceType = model.DeviceType, PushToken = model.PushToken, UpdatedOn = DateTime.UtcNow }; if (owner == null) { owner = new DeviceOwner { IbaId = ibaRecordId, Devices = new List <Device> { device }, LastDeviceUpdate = DateTime.UtcNow }; cmsDb.DeviceOwners.Add(owner); } else { owner.Devices.Add(device); owner.LastDeviceUpdate = DateTime.UtcNow; } try { cmsDb.SaveChanges(); } catch (Exception) { result.SetError(HttpStatusCode.InternalServerError, "Could not update the Push Token"); } return(result); }