Ejemplo n.º 1
0
 public ActionResult <ExpandoObject> Get(int?offset, int?limit, string filter)
 {
     if (offset != null)
     {
         _offset = (int)offset;
     }
     if (limit != null)
     {
         _limit = (int)limit;
     }
     _filter = filter;
     return(_service.Get(_limit, _offset, _filter));
 }
        public async Task <IActionResult> GetBudget([FromRoute] int Id)
        {
            try
            {
                Service.Username = User.Claims.Single(p => p.Type.Equals("username")).Value;
                Service.Token    = Request.Headers["Authorization"].First().Replace("Bearer ", "");

                await Service.GeneratePO(Id);

                var model         = Service.ReadModelById(Id).Result;
                var rateModel     = _rateService.Get().SingleOrDefault(x => x.Name == "THR"); //Get Default THR From Rate (Master Ongkos)
                var viewModel     = Service.MapToViewModel(model);
                var rateViewModel = _rateService.MapToViewModel(rateModel);
                viewModel.Thr = rateViewModel;

                CostCalculationRetailBudgetPdfTemplate PdfTemplate = new CostCalculationRetailBudgetPdfTemplate();
                MemoryStream stream = PdfTemplate.GeneratePdfTemplate(viewModel);

                return(new FileStreamResult(stream, "application/pdf")
                {
                    FileDownloadName = "CostCalculationRetailBudget_" + viewModel.RO + ".pdf"
                });
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
        public async Task Get_should_return_latest_default_rate()
        {
            var defaultRate = 3.668m;

            var currenciesList    = new List <CurrencyRate>();
            var currencyRatesMock = currenciesList.AsQueryable().BuildMockDbSet();

            var defaultCurrencyRatesMock = new List <DefaultCurrencyRate>
            {
                new DefaultCurrencyRate {
                    Rate = defaultRate + 0.1m, Source = "USD", Target = "AED", ValidFrom = DateTime.UtcNow.AddMinutes(-10)
                },
                new DefaultCurrencyRate {
                    Rate = defaultRate, Source = "USD", Target = "AED", ValidFrom = DateTime.UtcNow
                }
            }.AsQueryable().BuildMockDbSet();

            var contextMock = new Mock <CurrencyConverterContext>();

            contextMock.Setup(m => m.CurrencyRates)
            .Returns(currencyRatesMock.Object);
            contextMock.Setup(m => m.DefaultCurrencyRates)
            .Returns(defaultCurrencyRatesMock.Object);
            currencyRatesMock.Setup(d => d.AddRange(It.IsAny <IEnumerable <CurrencyRate> >()))
            .Callback <IEnumerable <CurrencyRate> >(currenciesList.AddRange);
            contextMock.Setup(m => m.SaveChangesAsync(It.IsAny <CancellationToken>()))
            .ReturnsAsync(0);

            var service = new RateService(new NullLoggerFactory(), GetCache(), GetHttpClientFactory(), _options,
                                          contextMock.Object);

            var(isSuccess, _, returnedValue) = await service.Get(Currencies.USD, Currencies.AED);

            Assert.Equal(defaultRate, returnedValue);
        }
        public async Task Get_should_return_the_last_value_when_pair_not_in_the_returned_list()
        {
            const decimal value             = 12.3456m;
            var           time              = DateTime.UtcNow;
            var           currencyRatesMock = new List <CurrencyRate>
            {
                new CurrencyRate {
                    Rate = value, Source = "USD", Target = "SAR", ValidFrom = time
                },
                new CurrencyRate {
                    Rate = value - 10m, Source = "USD", Target = "SAR", ValidFrom = time.AddMinutes(-10)
                }
            }.AsQueryable().BuildMockDbSet();
            var defaultCurrencyRatesMock = new List <DefaultCurrencyRate>().AsQueryable().BuildMockDbSet();

            var contextMock = new Mock <CurrencyConverterContext>();

            contextMock.Setup(m => m.CurrencyRates)
            .Returns(currencyRatesMock.Object);
            contextMock.Setup(m => m.DefaultCurrencyRates)
            .Returns(defaultCurrencyRatesMock.Object);
            contextMock.Setup(m => m.SaveChangesAsync(It.IsAny <CancellationToken>()))
            .ReturnsAsync(0);

            var service = new RateService(new NullLoggerFactory(), GetCache(), GetHttpClientFactory(), _options,
                                          contextMock.Object);

            var(isSuccess, _, returnedValue) = await service.Get(Currencies.USD, Currencies.SAR);

            Assert.True(isSuccess);
            Assert.Equal(value, returnedValue);
        }
Ejemplo n.º 5
0
        public async void Get_null_record()
        {
            var mock = new ServiceMockFacade <IRateRepository>();

            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <Rate>(null));
            var service = new RateService(mock.LoggerMock.Object,
                                          mock.RepositoryMock.Object,
                                          mock.ModelValidatorMockFactory.RateModelValidatorMock.Object,
                                          mock.BOLMapperMockFactory.BOLRateMapperMock,
                                          mock.DALMapperMockFactory.DALRateMapperMock);

            ApiRateResponseModel response = await service.Get(default(int));

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.Get(It.IsAny <int>()));
        }
Ejemplo n.º 6
0
        public void GetByIdTest()
        {
            //Arange
            Mock <IUnitOfWork>         unitOfWorkMock = new Mock <IUnitOfWork>();
            Mock <IRepository <Rate> > repositoryMock = new Mock <IRepository <Rate> >();

            repositoryMock.Setup(repo => repo.Get(It.IsAny <Expression <Func <Rate, bool> > >()))
            .Returns <Expression <Func <Rate, bool> > >(predicate =>
                                                        _rates.Where(predicate.Compile()).AsQueryable());
            unitOfWorkMock.Setup(getRepo => getRepo.GetRepository <Rate>()).Returns(repositoryMock.Object);
            RateService _rateService = new RateService(unitOfWorkMock.Object);

            //Act
            RateDTO _rateDto = _rateService.Get("id1");

            //Assert
            Assert.NotNull(_rateDto);
            Assert.Equal(1, _rateDto.Value);
        }
Ejemplo n.º 7
0
        public void GetByFilterByBookIdTest()
        {
            //Arange
            Mock <IUnitOfWork>         unitOfWorkMock = new Mock <IUnitOfWork>();
            Mock <IRepository <Rate> > repositoryMock = new Mock <IRepository <Rate> >();

            repositoryMock.Setup(repo => repo.Get(It.IsAny <Expression <Func <Rate, bool> > >())).Returns(_rates.AsQueryable);
            unitOfWorkMock.Setup(getRepo => getRepo.GetRepository <Rate>()).Returns(repositoryMock.Object);
            RateService        _rateService = new RateService(unitOfWorkMock.Object);
            RateFilterByBookId _rateFilter  = new RateFilterByBookId();

            //Act
            IEnumerable <RateDTO> _ratesDto = _rateService.Get(_rateFilter);

            //Assert
            Assert.NotNull(_ratesDto);
            Assert.NotEmpty(_ratesDto);
            Assert.Equal(3, _ratesDto.Count());
        }
        public async Task Get_should_return_value()
        {
            var currencyRatesMock        = new List <CurrencyRate>().AsQueryable().BuildMockDbSet();
            var defaultCurrencyRatesMock = new List <DefaultCurrencyRate>().AsQueryable().BuildMockDbSet();

            var contextMock = new Mock <CurrencyConverterContext>();

            contextMock.Setup(m => m.CurrencyRates)
            .Returns(currencyRatesMock.Object);
            contextMock.Setup(m => m.DefaultCurrencyRates)
            .Returns(defaultCurrencyRatesMock.Object);
            contextMock.Setup(m => m.SaveChangesAsync(It.IsAny <CancellationToken>()))
            .ReturnsAsync(0);

            var service = new RateService(new NullLoggerFactory(), GetCache(), GetHttpClientFactory(), _options,
                                          contextMock.Object);

            var(isSuccess, _, _) = await service.Get(Currencies.USD, Currencies.AED);

            Assert.True(isSuccess);
        }
        public async Task Get_should_return_problem_details_when_pair_not_in_the_returned_list_and_not_in_the_database()
        {
            var currencyRatesMock        = new List <CurrencyRate>().AsQueryable().BuildMockDbSet();
            var defaultCurrencyRatesMock = new List <DefaultCurrencyRate>().AsQueryable().BuildMockDbSet();

            var contextMock = new Mock <CurrencyConverterContext>();

            contextMock.Setup(m => m.CurrencyRates)
            .Returns(currencyRatesMock.Object);
            contextMock.Setup(m => m.DefaultCurrencyRates)
            .Returns(defaultCurrencyRatesMock.Object);
            contextMock.Setup(m => m.SaveChangesAsync(It.IsAny <CancellationToken>()))
            .ReturnsAsync(0);

            var service = new RateService(new NullLoggerFactory(), GetCache(), GetHttpClientFactory(), _options,
                                          contextMock.Object);

            var(_, isFailure, _, error) = await service.Get(Currencies.USD, Currencies.NotSpecified);

            Assert.True(isFailure);
            Assert.Equal(400, error.Status);
        }
Ejemplo n.º 10
0
 public ActionResult <List <Rate> > Get() =>
 _rateService.Get();