示例#1
0
        public IActionResult CreateDonationDeclaration(CreateDeclarationRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var validationResult = ValidateOperation(request.DonationAmount);

            if (validationResult.StatusCode != 200)
            {
                return(validationResult);
            }

            var donationDeclaration = new DonationDeclaration
            {
                Name           = request.Name,
                PostCode       = request.PostCode,
                DonationAmount = request.DonationAmount
            };

            var response = new CreateDeclarationResponse
            {
                DeclarationId = _donationDeclarationService.Insert(donationDeclaration).ToString(),
                GiftAidAmount = _giftAidCalculator.CalculateGiftAid(request.DonationAmount)
            };

            return(Ok(response));
        }
示例#2
0
        public string Insert(DonationDeclaration donationDeclaration)
        {
            ObjectId id;

            lock (_liteDb)
            {
                id = _liteDb.GetCollection <DonationDeclaration>("DonationDeclaration").Insert(donationDeclaration);
            }

            return(id.ToString());
        }
示例#3
0
        public void ShouldInsertSuccessfully()
        {
            var testDeclarationRequest = new DonationDeclaration
            {
                Name           = "Nerijus",
                PostCode       = "12345",
                DonationAmount = 800,
            };

            var expectedObjectId = "5fc74923d9392f07c47d1b87";

            _liteDbMock.Setup(x => x.Database.GetCollection <DonationDeclaration>(It.IsAny <string>(), BsonAutoId.ObjectId).Insert(testDeclarationRequest))
            .Returns(new ObjectId("5fc74923d9392f07c47d1b87"));

            _donationService = new DonationDeclarationService(_liteDbMock.Object);

            var response = _donationService.Insert(testDeclarationRequest);

            Assert.AreEqual(expectedObjectId, response);
        }
示例#4
0
        public void ShouldGetDonationDeclaration()
        {
            var testObjectId = new ObjectId("5fc74923d9392f07c47d1b87");

            var expectedDonationDeclarationResponse = new DonationDeclaration
            {
                Id             = testObjectId,
                Name           = "Nerijus",
                PostCode       = "12345",
                DonationAmount = 800,
            };

            _liteDbMock.Setup(x => x.Database.GetCollection <DonationDeclaration>(It.IsAny <string>(), BsonAutoId.ObjectId).FindOne(x => x.Id == testObjectId))
            .Returns(new DonationDeclaration {
                Id = testObjectId, Name = "Nerijus", PostCode = "12345", DonationAmount = 800
            });

            _donationService = new DonationDeclarationService(_liteDbMock.Object);

            var response = _donationService.Get(testObjectId);

            Assert.AreEqual(expectedDonationDeclarationResponse.ToString(), response.ToString());
        }