public async Task <IActionResult> GetVoucher([FromQuery] String voucherCode, [FromQuery] String applicationVersion, CancellationToken cancellationToken) { if (ClaimsHelper.IsPasswordToken(this.User) == false) { return(this.Forbid()); } // Do the software version check try { VersionCheckRequest versionCheckRequest = VersionCheckRequest.Create(applicationVersion); await this.Mediator.Send(versionCheckRequest, cancellationToken); } catch (VersionIncompatibleException vex) { Logger.LogError(vex); return(this.StatusCode(505)); } Guid estateId = Guid.Parse(ClaimsHelper.GetUserClaim(this.User, "estateId").Value); Guid contractId = Guid.Parse(ClaimsHelper.GetUserClaim(this.User, "contractId").Value); // Now do the GET GetVoucherRequest request = GetVoucherRequest.Create(estateId, contractId, voucherCode); GetVoucherResponse response = await this.Mediator.Send(request, cancellationToken); return(this.Ok(this.ModelFactory.ConvertFrom(response))); }
public async Task VersionCheckRequestHandler_Handle_OldVersion_ErrorThrown() { VersionCheckRequestHandler requestHandler = new VersionCheckRequestHandler(); VersionCheckRequest request = VersionCheckRequest.Create(TestData.OldApplicationVersion); Should.Throw <VersionIncompatibleException>(async() => { await requestHandler.Handle(request, CancellationToken.None); }); }
public async Task VersionCheckRequestHandler_Handle_NewerVersionBuildNumber_RequestIsHandled() { VersionCheckRequestHandler requestHandler = new VersionCheckRequestHandler(); VersionCheckRequest request = VersionCheckRequest.Create(TestData.NewerApplicationVersion); Should.NotThrow(async() => { await requestHandler.Handle(request, CancellationToken.None); }); }
public void VersionCheckRequest_CanBeCreated_IsCreated() { VersionCheckRequest request = VersionCheckRequest.Create(TestData.ApplicationVersion); request.VersionNumber.ShouldBe(TestData.ApplicationVersion); }