示例#1
0
        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)));
        }
        /// <summary>
        /// Gets the voucher.
        /// </summary>
        /// <param name="accessToken">The access token.</param>
        /// <param name="estateId">The estate identifier.</param>
        /// <param name="voucherCode">The voucher code.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        public async Task <GetVoucherResponse> GetVoucher(String accessToken,
                                                          Guid estateId,
                                                          String voucherCode,
                                                          CancellationToken cancellationToken)
        {
            GetVoucherResponse response = null;

            String requestUri = $"{this.BaseAddress}/api/vouchers?estateId={estateId}&voucherCode={voucherCode}";

            try
            {
                // Add the access token to the client headers
                this.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

                // Make the Http Call here
                HttpResponseMessage httpResponse = await this.HttpClient.GetAsync(requestUri, cancellationToken);

                // Process the response
                String content = await this.HandleResponse(httpResponse, cancellationToken);

                // call was successful so now deserialise the body to the response object
                response = JsonConvert.DeserializeObject <GetVoucherResponse>(content);
            }
            catch (Exception ex)
            {
                // An exception has occurred, add some additional information to the message
                Exception exception = new Exception("Error getting voucher.", ex);

                throw exception;
            }

            return(response);
        }
        /// <summary>
        /// Converts from.
        /// </summary>
        /// <param name="voucherModel">The voucher model.</param>
        /// <returns></returns>
        public GetVoucherResponse ConvertFrom(Voucher voucherModel)
        {
            if (voucherModel == null)
            {
                return(null);
            }

            GetVoucherResponse response = new GetVoucherResponse
            {
                Value             = voucherModel.Value,
                Balance           = voucherModel.Balance,
                ExpiryDate        = voucherModel.ExpiryDate,
                VoucherCode       = voucherModel.VoucherCode,
                TransactionId     = voucherModel.TransactionId,
                IssuedDateTime    = voucherModel.IssuedDateTime,
                IsIssued          = voucherModel.IsIssued,
                GeneratedDateTime = voucherModel.GeneratedDateTime,
                IsGenerated       = voucherModel.IsGenerated,
                IsRedeemed        = voucherModel.IsRedeemed,
                RedeemedDateTime  = voucherModel.RedeemedDateTime,
                VoucherId         = voucherModel.VoucherId
            };

            return(response);
        }
示例#4
0
        public void ModelFactory_ConvertFrom_VoucherModel_NullInput_IsConverted()
        {
            ModelFactory       modelFactory = new ModelFactory();
            Voucher            model        = null;
            GetVoucherResponse dto          = modelFactory.ConvertFrom(model);

            dto.ShouldBeNull();
        }
        public void ModelFactory_ConvertFrom_GetVoucherResponse_NullValue_IsConverted()
        {
            ModelFactory modelFactory = new ModelFactory();

            GetVoucherResponse        model = null;
            GetVoucherResponseMessage dto   = modelFactory.ConvertFrom(model);

            dto.ShouldBeNull();
        }
        public GetVoucherResponse GetVoucher(GetVoucherRequest getvoucherRequest)
        {
            GetVoucherResponse getVoucherResponse = null;

            if (getvoucherRequest.Id != null)
            {
                var voucher     = _eVoucherRepository.FindeVoucherId(getvoucherRequest.Id);
                var eVoucherDto = _messageMapper.MapToeVoucherDto(voucher);

                getVoucherResponse = new GetVoucherResponse
                {
                    eVoucher = eVoucherDto
                };
            }

            return(getVoucherResponse);
        }
        public void ModelFactory_ConvertFrom_GetVoucherResponse_IsConverted()
        {
            ModelFactory modelFactory = new ModelFactory();

            GetVoucherResponse        model = TestData.GetVoucherResponseModel;
            GetVoucherResponseMessage dto   = modelFactory.ConvertFrom(model);

            dto.ShouldNotBeNull();
            dto.ContractId.ShouldBe(model.ContractId);
            dto.VoucherCode.ShouldBe(model.VoucherCode);
            dto.EstateId.ShouldBe(model.EstateId);
            dto.Value.ShouldBe(model.Value);
            dto.ExpiryDate.ShouldBe(model.ExpiryDate);
            dto.VoucherId.ShouldBe(model.VoucherId);
            dto.ResponseMessage.ShouldBe(model.ResponseMessage);
            dto.ResponseCode.ShouldBe(model.ResponseCode);
            dto.Balance.ShouldBe(model.Balance);
        }
        /// <summary>
        /// Converts from.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public GetVoucherResponseMessage ConvertFrom(GetVoucherResponse model)
        {
            if (model == null)
            {
                return(null);
            }

            GetVoucherResponseMessage responseMessage = new GetVoucherResponseMessage
            {
                ContractId      = model.ContractId,
                EstateId        = model.EstateId,
                VoucherCode     = model.VoucherCode,
                VoucherId       = model.VoucherId,
                ExpiryDate      = model.ExpiryDate,
                Value           = model.Value,
                ResponseMessage = model.ResponseMessage,
                ResponseCode    = model.ResponseCode,
                Balance         = model.Balance
            };

            return(responseMessage);
        }
示例#9
0
        public void ModelFactory_ConvertFrom_VoucherModel_IsConverted()
        {
            ModelFactory modelFactory = new ModelFactory();
            Voucher      model        = TestData.GetVoucherAggregateWithRecipientMobile().GetVoucher();

            GetVoucherResponse dto = modelFactory.ConvertFrom(model);

            dto.ShouldNotBeNull();
            dto.TransactionId.ShouldBe(model.TransactionId);
            dto.IssuedDateTime.ShouldBe(model.IssuedDateTime);
            dto.Balance.ShouldBe(model.Balance);
            dto.IssuedDateTime.ShouldBe(model.IssuedDateTime);
            dto.ExpiryDate.ShouldBe(model.ExpiryDate);
            dto.GeneratedDateTime.ShouldBe(model.GeneratedDateTime);
            dto.IsGenerated.ShouldBe(model.IsGenerated);
            dto.IsIssued.ShouldBe(model.IsIssued);
            dto.IsRedeemed.ShouldBe(model.IsRedeemed);
            dto.RedeemedDateTime.ShouldBe(model.RedeemedDateTime);
            dto.Value.ShouldBe(model.Value);
            dto.VoucherCode.ShouldBe(model.VoucherCode);
            dto.Balance.ShouldBe(model.Balance);
        }