public void GetRates_ApplicationException_Test()
        {
            // Arrange
            var exception = new ApplicationException();
            var client = new Mock<IRateClient>();
            client.Setup(t => t.GetRate(DateTime.Today)).Throws(exception);
            var rateService = new RateService(client.Object);

            // Assert
            var ex = Assert.Throws<ApplicationException>(() => rateService.GetRates(Currency.RUB, new[] { DateTime.Today }));
            Assert.AreEqual(ex, exception);
        }
        public void GetRates_Test()
        {
            // Arrange
            var rate = Mock.Of<Rate>();
            var rateResponce = Mock.Of<RateSourceData>(t => t.Parse(Currency.RUB) == rate);
            var client = Mock.Of<IRateClient>(t => t.GetRate(DateTime.Today) == rateResponce);
            var rateService = new RateService(client);

            // Act
            var result = rateService.GetRates(Currency.RUB, new[] { DateTime.Today });

            // Assert
            Assert.AreEqual(result.Single(), rate);
        }
Ejemplo n.º 3
0
        public async void ByTeacherSkillId_Exists()
        {
            var mock    = new ServiceMockFacade <IRateService, IRateRepository>();
            var records = new List <Rate>();

            records.Add(new Rate());
            mock.RepositoryMock.Setup(x => x.ByTeacherSkillId(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult(records));
            var service = new RateService(mock.LoggerMock.Object,
                                          mock.MediatorMock.Object,
                                          mock.RepositoryMock.Object,
                                          mock.ModelValidatorMockFactory.RateModelValidatorMock.Object,
                                          mock.DALMapperMockFactory.DALRateMapperMock);

            List <ApiRateServerResponseModel> response = await service.ByTeacherSkillId(default(int));

            response.Should().NotBeEmpty();
            mock.RepositoryMock.Verify(x => x.ByTeacherSkillId(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>()));
        }
Ejemplo n.º 4
0
        public async void All_ShouldReturnRecords()
        {
            var mock    = new ServiceMockFacade <IRateService, IRateRepository>();
            var records = new List <Rate>();

            records.Add(new Rate());
            mock.RepositoryMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(Task.FromResult(records));
            var service = new RateService(mock.LoggerMock.Object,
                                          mock.MediatorMock.Object,
                                          mock.RepositoryMock.Object,
                                          mock.ModelValidatorMockFactory.RateModelValidatorMock.Object,
                                          mock.DALMapperMockFactory.DALRateMapperMock);

            List <ApiRateServerResponseModel> response = await service.All();

            response.Should().HaveCount(1);
            mock.RepositoryMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()));
        }
Ejemplo n.º 5
0
        public void GetAllTest()
        {
            //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);

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

            //Assert
            Assert.NotNull(_ratesDto);
            Assert.NotEmpty(_ratesDto);
            Assert.Equal(3, _ratesDto.Count());
        }
Ejemplo n.º 6
0
        public async void Delete()
        {
            var mock  = new ServiceMockFacade <IRateRepository>();
            var model = new ApiRateRequestModel();

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

            ActionResponse response = await service.Delete(default(int));

            response.Should().NotBeNull();
            mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <int>()));
            mock.ModelValidatorMockFactory.RateModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
        }
        protected override void RunCallback()
        {
            CompanyDTO company        = null;
            var        dbFactory      = new DbFactory();
            var        time           = new TimeService(dbFactory);
            var        log            = GetLogger();
            var        weightService  = new WeightService();
            var        messageService = new SystemMessageService(log, time, dbFactory);
            var        serviceFactory = new ServiceFactory();

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var actionService = new SystemActionService(log, time);
            var rateProviders = serviceFactory.GetShipmentProviders(log,
                                                                    time,
                                                                    dbFactory,
                                                                    weightService,
                                                                    company.ShipmentProviderInfoList,
                                                                    null,
                                                                    null,
                                                                    null,
                                                                    null);


            //var addressService = new AddressService(null, company.GetReturnAddressDto(), company.GetPickupAddressDto());
            //Checking email service, sent test message
            //var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            //var emailService = new EmailService(GetLogger(), emailSmtpSettings, addressService);

            var rateService = new RateService(dbFactory,
                                              log,
                                              time,
                                              weightService,
                                              messageService,
                                              company,
                                              actionService,
                                              rateProviders);

            rateService.RefreshAmazonRates();
            rateService.RefreshSuspiciousFedexRates();
        }
Ejemplo n.º 8
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.º 9
0
        public async void Update()
        {
            var mock  = new ServiceMockFacade <IRateRepository>();
            var model = new ApiRateRequestModel();

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

            UpdateResponse <ApiRateResponseModel> response = await service.Update(default(int), model);

            response.Should().NotBeNull();
            mock.ModelValidatorMockFactory.RateModelValidatorMock.Verify(x => x.ValidateUpdateAsync(It.IsAny <int>(), It.IsAny <ApiRateRequestModel>()));
            mock.RepositoryMock.Verify(x => x.Update(It.IsAny <Rate>()));
        }
        public void Setup()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ParkingDbContext>().UseInMemoryDatabase("integrationTestDB");

            contexto            = new ParkingDbContext(optionsBuilder.Options);
            entryRepository     = new Repository <EntryEntity>(contexto);
            cellRepository      = new Repository <CellEntity>(contexto);
            departureRepository = new Repository <DepartureEntity>(contexto);
            rateRepository      = new Repository <RateEntity>(contexto);
            placaRepository     = new Repository <PlacaEntity>(contexto);
            picoPlacarepository = new Repository <PicoPlacaDigits>(contexto);

            cellService  = new CellService(cellRepository);
            rateService  = new RateService(rateRepository);
            placaService = new PlacaService(placaRepository, picoPlacarepository);

            departureService = new DepartureService(departureRepository, entryRepository, rateService, cellService);
            contexto.Database.EnsureCreated();
        }
Ejemplo n.º 11
0
        public async Task TwoCurrencyCodeParam_Returns_ReturnsReply()
        {
            //arrange
            var currencyProfile = new CurrencyProfile {
                Rates =
                    new Dictionary <string, decimal> {
                    { "GBP", (decimal)1 }
                }
            };

            _currencyProfileMock.Setup(currencyProfileService => currencyProfileService.CurrencyProfile("GBP"))
            .ReturnsAsync(currencyProfile);
            var rateService = new RateService(_currencyProfileMock.Object);

            //act
            var rateReturn = await rateService.Rate("GBP", "GBP");

            //assert
            Assert.IsInstanceOf <decimal>(rateReturn);
        }
        public void SetUp()
        {
            videoData   = DataCollection.Videos;
            commentData = DataCollection.Comments;
            rateData    = DataCollection.Rates;
            userData    = DataCollection.Users;
            var videoRepo = MockRepository <Video> .Initialize(videoData);

            var commentRepo = MockRepository <Comment> .Initialize(commentData);

            var rateRepo = MockRepository <Rate> .Initialize(rateData);

            var userRepo = MockUserRepository <ApplicationUser> .Initialize(userData);

            var rateService    = new RateService(rateRepo);
            var commentService = new CommentService(commentRepo);
            var videoService   = new VideoService(videoRepo, commentService, rateService);

            userService = new AccountService(userRepo, videoService, commentService, rateService);
        }
Ejemplo n.º 13
0
        public async void Delete_NoErrorsOccurred_ShouldReturnResponse()
        {
            var mock  = new ServiceMockFacade <IRateService, IRateRepository>();
            var model = new ApiRateServerRequestModel();

            mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.CompletedTask);
            var service = new RateService(mock.LoggerMock.Object,
                                          mock.MediatorMock.Object,
                                          mock.RepositoryMock.Object,
                                          mock.ModelValidatorMockFactory.RateModelValidatorMock.Object,
                                          mock.DALMapperMockFactory.DALRateMapperMock);

            ActionResponse response = await service.Delete(default(int));

            response.Should().NotBeNull();
            response.Success.Should().BeTrue();
            mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <int>()));
            mock.ModelValidatorMockFactory.RateModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
            mock.MediatorMock.Verify(x => x.Publish(It.IsAny <RateDeletedNotification>(), It.IsAny <CancellationToken>()));
        }
Ejemplo n.º 14
0
        public void RemoveTest()
        {
            //Arange
            bool isRemoved = false;
            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());
            repositoryMock.Setup(repo => repo.Remove(It.IsAny <Rate>())).Callback(() => isRemoved = true);
            unitOfWorkMock.Setup(getRepo => getRepo.GetRepository <Rate>()).Returns(repositoryMock.Object);
            RateService _rateService = new RateService(unitOfWorkMock.Object);

            //Act
            _rateService.Remove(_rates[0].Id);

            //Assert
            Assert.True(isRemoved);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// RateServiceExample constructor, create the example class and initializes varibales
        /// </summary>
        /// <param name="host">The Rate Service Host to connect to</param>
        /// <param name="port">The Rate Service Port to connect to</param>
        /// <param name="key">The Key to use for authentication</param>
        RateServiceExample(String host, int port, String key)
        {
            // Store parameters in members
            _host = host;
            _port = port;
            _key  = key;

            // Create a new Rate Service Object, this object should last the lifetime of the class
            // as the object maintains connection count information which is initialised to 0
            // on construction only.  We create the object once so we can use this information when deciding
            // our reconnect policy
            _rateService = new RateService();

            // Hook up the event handler to our callback methods
            _rateService.OnRateServiceConnected        += new RateService.OnRateServiceConnectedEventHandler(this.OnRateServiceConnected);
            _rateService.OnRateServiceDisconnected     += new RateService.OnRateServiceDisconnectedEventHandler(this.OnRateServiceDisconnected);
            _rateService.OnRateServiceConnectionFailed += new RateService.OnRateServiceConnectionFailedEventHandler(this.OnRateServiceConnectionFailed);
            _rateService.OnRateServiceConnectionLost   += new RateService.OnRateServiceConnectionLostEventHandler(this.OnRateServiceConnectionLost);
            _rateService.OnRateServiceRate             += new RateService.OnRateServiceRateEventHandler(this.OnRateServiceRate);
        }
Ejemplo n.º 16
0
        public void ImportData_CR()
        {
            Assert.Fail("不要乱运行这个方法");
            return;

            string username = "******";
            string conStr = "Data Source=211.99.2.167;Initial Catalog=m_antaeus_temp;Persist Security Info=True;User ID=ans;Password=123456";

            DBTempDataContext con = new DBTempDataContext(conStr);

            var crs = from cr in con.TEMP_CRs
                      orderby cr.QUES_ID descending
                      select cr;
            QuestionModel qm = new QuestionModel();

            foreach (var cr in crs)
            {
                string categoryIDString = "3";
                string source = cr.QUES_SOURCE;
                Dictionary<string,string> dic = new Dictionary<string,string>();
                dic.Add("Content",cr.QUES_CONTENT);
                dic.Add("OptionA",cr.QUES_A);
                dic.Add("OptionB",cr.QUES_B);
                dic.Add("OptionC",cr.QUES_C);
                dic.Add("OptionD",cr.QUES_D);
                dic.Add("OptionE",cr.QUES_E);
                dic.Add("CorrectMark", cr.QUES_CORRECT);
                dic.Add("Question",cr.QUES_QUESTION);
                dic.Add("IsQuestionInFront",cr.QUES_PLACE?"1":"2");

                MetaData meta = new MetaData(dic);
                Question q;
                var res = qm.CreateQuestion(categoryIDString, source, username, meta, out q);
                Assert.IsTrue(res.IsSuccess, res.ErrorMessage);

                int rate = Convert.ToInt32(cr.QUES_RATE);
                res = new RateService().Rate(username, new KEYID("Question", q.QuestionID), rate);

                Assert.IsTrue(res.IsSuccess, res.ErrorMessage);
            }
        }
    public void Given_ValidId_GetById_Should_Return_Dto()
    {
        //Arrange
        var validId = 1;
        var fakes   = new List <Rates>()
        {
            new Rates {
                RateId = validId
            }
        }
        var mock = new Mock <IDbContext>();

        //Assuming IDbContext.Rates.GetAll() returns an IEnumerable<Rates>
        mock.Setup(m => m.Rates.GetAll()).Returns(fakes);
        var sut = new RateService(mock.Object);
        //Act
        var result = sut.GetById(validId);

        //Assert
        Assert.IsNotNull(result);
    }
Ejemplo n.º 18
0
        public void GetAllRates_With_Service_Available()
        {
            // Arrenge
            const string ratesUrl = "http://quiet-stone-2094.herokuapp.com/rates.json";
            var          options  = new DbContextOptionsBuilder <GNBContext>()
                                    .UseInMemoryDatabase(databaseName: "GNBTestDB")
                                    .Options;

            var mockLogger = new Mock <ILogger <RateService> >();
            var logger     = mockLogger.Object;

            var context        = new GNBContext(options);
            var rateRepository = new RateRepository(context);
            var rateService    = new RateService(rateRepository, logger);

            // Act
            var rates = rateService.GetAllAsync(ratesUrl).Result;

            // Assertion
            Assert.True(rates.Any()); // Checks if all ratess  were fetched from server.
        }
        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);
        }
        public async Task Get_should_return_default_rate_and_log_correction()
        {
            var defaultRate = 3.668m;
            var correction  = 3.672982m - defaultRate;

            var currenciesList = new List <CurrencyRate>
            {
                new CurrencyRate {
                    Rate = 4, Source = "USD", Target = "AED", ValidFrom = DateTime.UtcNow
                }
            };
            var currencyRatesMock = currenciesList.AsQueryable().BuildMockDbSet();

            var defaultCurrencyRatesMock = new List <DefaultCurrencyRate>
            {
                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.True(isSuccess);
            Assert.Equal(defaultRate, returnedValue);
        }
Ejemplo n.º 22
0
        public async Task <IActionResult> Create([Bind("RateServiceId,DonateServiceId,Date,Rating,Description")] RateService rateService, int id, Partner partner)
        {
            if (ModelState.IsValid)
            {
                var donateService = _context.DonateServices.FindAsync(id).Result;
                var partnerId     = _context.Partners.Where(p => p.PartnerId == donateService.PartnerId).FirstOrDefault();


                rateService.DonateServiceId    = id;
                rateService.PartnerId          = partnerId.PartnerId;
                rateService.ServiceDescription = donateService.Description;
                rateService.PartnerName        = donateService.PartnerName;
                rateService.PartnerLat         = donateService.PartnerLat;
                rateService.PartnerLong        = donateService.PartnerLong;

                _context.Add(rateService);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(rateService));
        }
        public RateResponse CallUPSRateRequest(string serviceCode, int Qty, int nrBoxes, int itemsInLastBox, string fullBoxWeight, int valuePerFullBox, int valuePerPartialBox, string partialBoxWeight, inv_detl details, string packagingTypeCode, string currencyCode, decimal unitPrice, bool isResidentialAddress)//, out string requestXML)
        {
            var upsService   = new RateService();
            var rateResponse = new RateResponse();
            var rateRequest  = new RateRequest();

            AddCustomerClassification(rateRequest);
            AddUpsSecurity(upsService);
            var request = new RequestType();

            String[] requestOption = { "Rate" };
            request.RequestOption = requestOption; //this can be Rate or Shop
            rateRequest.Request   = request;
            var shipment = new UPSRateService.ShipmentType();

            AddShipper(shipment);
            AddShipFromAddress(shipment);
            AddShipToAddress(shipment, isResidentialAddress);
            var service = new CodeDescriptionType();

            service.Code     = serviceCode;
            shipment.Service = service;
            var optype = new UPSRateService.ShipmentRatingOptionsType();

            optype.NegotiatedRatesIndicator = string.Empty;
            shipment.ShipmentRatingOptions  = optype;
            AddPackageArray(nrBoxes, itemsInLastBox, fullBoxWeight, partialBoxWeight, valuePerFullBox, valuePerPartialBox, details, packagingTypeCode, currencyCode, shipment);
            AddInvoiceTotalType(Qty, unitPrice, shipment);
            rateRequest.Shipment = shipment;
            //var serializer = new XmlSerializer(typeof(RateRequest));
            //using (var writer = new StringWriter())
            //{
            //  serializer.Serialize(writer, rateRequest);
            //  requestXML = writer.ToString();
            //}
            rateResponse = upsService.ProcessRate(rateRequest);
            return(rateResponse);
        }
Ejemplo n.º 24
0
        public async void Delete_ErrorsOccurred_ShouldReturnErrorResponse()
        {
            var mock          = new ServiceMockFacade <IRateService, IRateRepository>();
            var model         = new ApiRateServerRequestModel();
            var validatorMock = new Mock <IApiRateServerRequestModelValidator>();

            validatorMock.Setup(x => x.ValidateDeleteAsync(It.IsAny <int>())).Returns(Task.FromResult(new FluentValidation.Results.ValidationResult(new List <ValidationFailure>()
            {
                new ValidationFailure("text", "test")
            })));
            var service = new RateService(mock.LoggerMock.Object,
                                          mock.MediatorMock.Object,
                                          mock.RepositoryMock.Object,
                                          validatorMock.Object,
                                          mock.DALMapperMockFactory.DALRateMapperMock);

            ActionResponse response = await service.Delete(default(int));

            response.Should().NotBeNull();
            response.Success.Should().BeFalse();
            validatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
            mock.MediatorMock.Verify(x => x.Publish(It.IsAny <RateDeletedNotification>(), It.IsAny <CancellationToken>()), Times.Never());
        }
Ejemplo n.º 25
0
        public Attempt <IShipmentRateQuote> CalculatePrice(IShipment shipment, IShipMethod shipMethod, decimal totalWeight, int quantity, IShipProvince province)
        {
            // First sum up the total weight for the shipment.
            // We're assumning that a custom order line property
            // was set on the order line prior when the product was added to the order line.

            var shippingPrice = 0M;

            try
            {
                var service = new RateService {
                    Url = "https://wsbeta.fedex.com:443/web-services/rate"
                };

                var reply = service.getRates(RateRequest(shipment, totalWeight, quantity));

                if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING)
                {
                    var collection = BuildDeliveryOptions(reply, shipment);

                    var firstCarrierRate = collection.FirstOrDefault(option => option.Service.Contains(shipMethod.ServiceCode.Split('-').First()));
                    if (firstCarrierRate != null)
                    {
                        shippingPrice = firstCarrierRate.Rate;
                    }
                }
            }
            catch (Exception ex)
            {
                return(Attempt <IShipmentRateQuote> .Fail(
                           new Exception("An error occured during your request : " +
                                         ex.Message +
                                         " Please contact your administrator or try again.")));
            }

            return(Attempt <IShipmentRateQuote> .Succeed(new ShipmentRateQuote(shipment, shipMethod) { Rate = shippingPrice }));
        }
        public async Task Get_should_return_the_last_value_within_a_limited_time_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.AddDays(-2)
                },
                new CurrencyRate {
                    Rate = value, Source = "USD", Target = "SAR", ValidFrom = time
                },
                new CurrencyRate
                {
                    Rate = value - 10m, Source = "USD", Target = "SAR", ValidFrom = time.AddDays(-2).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.º 27
0
        public RateServiceTests()
        {
            var dir = AppContext.BaseDirectory;

            rateService = new RateService(new FileRatesProvider(dir));
        }
 public BillingController()
 {
     _rateService = new RateService();
 }
Ejemplo n.º 29
0
 public RateCommand(ITelegramBotClient botClient, BotLogger logger, RateService rateService)
     : base(botClient, logger)
 {
     RateService = rateService;
 }
Ejemplo n.º 30
0
        private RateRequest CreateRateRequest(RateService rate)
        {
            RateRequest rateRequest = new RateRequest();
            UPSSecurity upss = new UPSSecurity();
            UPSSecurityServiceAccessToken upssSvcAccessToken = new UPSSecurityServiceAccessToken();
            upssSvcAccessToken.AccessLicenseNumber = AccessKey;
            upss.ServiceAccessToken = upssSvcAccessToken;

            UPSSecurityUsernameToken upssUsrNameToken = new UPSSecurityUsernameToken();
            upssUsrNameToken.Username = UserName;
            upssUsrNameToken.Password = Password;
            upss.UsernameToken = upssUsrNameToken;
            rate.UPSSecurityValue = upss;

            RequestType request = new RequestType();
            String[] requestOption = { "Shop" };
            request.RequestOption = requestOption;
            rateRequest.Request = request;

            ShipmentType shipment = new ShipmentType();

            ShipperType shipper = new ShipperType();
            //shipper.ShipperNumber = "ISUS01";
            AddressType shipperAddress = new AddressType();
            String[] addressLine = { "Shipper\'s address line" };
            shipperAddress.AddressLine = addressLine;
            shipperAddress.City = "Shipper\'s city";
            shipperAddress.PostalCode = PostalCodeFrom;
            //shipperAddress.StateProvinceCode = UpsItem.CountryCode;
            shipperAddress.CountryCode = CountryCodeFrom;
            shipperAddress.AddressLine = addressLine;
            shipper.Address = shipperAddress;
            shipment.Shipper = shipper;

            ShipFromType shipFrom = new ShipFromType();
            AddressType shipFromAddress = new AddressType();
            shipFromAddress.AddressLine = addressLine;
            shipFromAddress.City = "ShipFrom city";
            shipFromAddress.PostalCode = PostalCodeFrom;
            //shipFromAddress.StateProvinceCode = "GA";
            shipFromAddress.CountryCode = CountryCodeFrom;
            shipFrom.Address = shipFromAddress;
            shipment.ShipFrom = shipFrom;

            ShipToType shipTo = new ShipToType();
            ShipToAddressType shipToAddress = new ShipToAddressType();
            String[] addressLine1 = { AddressTo };
            shipToAddress.AddressLine = addressLine1;
            shipToAddress.City = CityTo;
            shipToAddress.PostalCode = PostalCodeTo;
            shipToAddress.StateProvinceCode = StateTo;
            shipToAddress.CountryCode = CountryCodeTo;
            shipTo.Address = shipToAddress;
            shipment.ShipTo = shipTo;

            //CodeDescriptionType service = new CodeDescriptionType();
            //service.Code = "02";
            //shipment.Service = service;
            float weight = MeasureUnits.ConvertWeight(ShoppingCart.TotalShippingWeight, MeasureUnits.WeightUnit.Kilogramm, MeasureUnits.WeightUnit.Pound);

            var data = new List<PackageType>();
            if (!IsPackageTooHeavy(weight))
            {

                PackageType package = new PackageType();
                PackageWeightType packageWeight = new PackageWeightType();
                packageWeight.Weight = weight.ToString("F3").Replace(',', '.');

                CodeDescriptionType uom = new CodeDescriptionType();
                uom.Code = "LBS";
                uom.Description = "Pounds";
                packageWeight.UnitOfMeasurement = uom;
                package.PackageWeight = packageWeight;

                CodeDescriptionType packType = new CodeDescriptionType();
                packType.Code = "02";
                package.PackagingType = packType;
                data.Add(package);
            }
            else
            {
                int totalPackages = 1;
                int totalPackagesWeights = 1;
                if (IsPackageTooHeavy(weight))
                {
                    totalPackagesWeights = SQLDataHelper.GetInt(Math.Ceiling(weight / MaxPackageWeight));
                }

                totalPackages = totalPackagesWeights;
                if (totalPackages == 0)
                    totalPackages = 1;

                float weight2 = weight / totalPackages;

                if (weight2 < 1)
                    weight2 = 1;
                for (int i = 0; i < totalPackages; i++)
                {
                    PackageType package = new PackageType();
                    PackageWeightType packageWeight = new PackageWeightType();
                    packageWeight.Weight = weight2.ToString("F3");

                    CodeDescriptionType uom = new CodeDescriptionType();
                    uom.Code = "LBS";
                    uom.Description = "Pounds";
                    packageWeight.UnitOfMeasurement = uom;
                    package.PackageWeight = packageWeight;

                    CodeDescriptionType packType = new CodeDescriptionType();
                    packType.Code = GetPackagingTypeCode(PackagingType);
                    package.PackagingType = packType;
                    data.Add(package);
                }
            }

            PackageType[] pkgArray = data.ToArray();
            shipment.Package = pkgArray;
            rateRequest.Shipment = shipment;

            CodeDescriptionType pckup = new CodeDescriptionType() { Code = GetPickupTypeCode(PickupType) };
            rateRequest.PickupType = pckup;

            CodeDescriptionType ccustomer = new CodeDescriptionType() { Code = GetCustomerClassificationCode(CustomerType) };
            rateRequest.CustomerClassification = ccustomer;

            System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();

            return rateRequest;
        }
Ejemplo n.º 31
0
        static void Main(string[] args)
        {
            RateService newDisplay = new RateService(@"myNewDb6.db");

            newDisplay.DisplayCurrent();
        }
Ejemplo n.º 32
0
 public CurrencyController()
 {
     rateService = new RateService();
 }
 public ApplicationRateService(ApiSettings settings, RateService rateService)
 {
     _currencyCodes = settings.CurrencyCodes;
     _rateService   = rateService;
 }
Ejemplo n.º 34
0
        public decimal GetPrice(Delivery delivery, string currencyCode)
        {
            decimal decRate = 0;
            try
            {
                ServiceType stType = new ServiceType();
                switch (delivery.ShippingOption.ShippingOptionName)
                {
                    case "FedExPriorityOvernight":
                        stType = ServiceType.PRIORITY_OVERNIGHT;
                        break;
                    case "FedExStandardOvernight":
                        stType = ServiceType.STANDARD_OVERNIGHT;
                        break;
                }

                CurrentUserInfo uinfo = MembershipContext.AuthenticatedUser;

                RateReply reply = new RateReply();
                // Cache the data for 10 minutes with a key
                using (CachedSection<RateReply> cs = new CachedSection<RateReply>(ref reply, 60, true, null, "FexExRatesAPI-" + stType.ToString().Replace(" ", "-") + uinfo.UserID + "-" + delivery.DeliveryAddress.AddressZip + "-" + ValidationHelper.GetString(delivery.Weight, "")))
                {
                    if (cs.LoadData)
                    {
                        //Create the request
                        RateRequest request = CreateRateRequest(delivery, stType);
                        //Create the service
                        RateService service = new RateService();
                        // Call the web service passing in a RateRequest and returning a RateReply
                        reply = service.getRates(request);
                        cs.Data = reply;
                    }
                    reply = cs.Data;
                }

                if (reply.HighestSeverity == NotificationSeverityType.SUCCESS)
                {
                    foreach (RateReplyDetail repDetail in reply.RateReplyDetails)
                    {
                        foreach (RatedShipmentDetail rsd in repDetail.RatedShipmentDetails)
                        {
                            //Add an offset to handle the differencse in the testing envinronment
                            decRate = ValidationHelper.GetDecimal(rsd.ShipmentRateDetail.TotalNetFedExCharge.Amount * 1.08m, 0);
                        }
                    }
                }
                else
                {
                    //Clean up the cached value so the next time the value is pulled again
                    CacheHelper.ClearCache("FexExRatesAPI-" + stType.ToString().Replace(" ", "-") + uinfo.UserID + "-" + delivery.DeliveryAddress.AddressZip + "-" + ValidationHelper.GetString(delivery.Weight, ""));
                }
            }
            catch (Exception ex)
            {
                //Log the error
                EventLogProvider.LogException("FedExCarrier - GetPrice", "EXCEPTION", ex);
                //Set some base rate for the shipping
                decRate = 10;
            }
            return decRate;
        }
Ejemplo n.º 35
0
        public List<ShippingOption> GetShippingOptions()
        {
            var shippingOptions = new List<ShippingOption>();
            RateRequest request = CreateRateRequest();
            //
            var service = new RateService(); // Initialize the service
            try
            {
                // Call the web service passing in a RateRequest and returning a RateReply
                RateReply reply = service.getRates(request);

                if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) // check if the call was successful
                {
                    shippingOptions = ParseAnswer(reply);
                }
                else
                {
                    Debug.LogError(new Exception(reply.Notifications[0].Message), false);
                }
            }
            catch (SoapException e)
            {
                Debug.LogError(e);
            }
            catch (Exception e)
            {
                Debug.LogError(e);
            }
            return shippingOptions;
        }
Ejemplo n.º 36
0
        public static ShippingResponse GetRate(string dataType = "json")
        {
            try {
                if (dataType.ToUpper() == "JSON" || dataType.ToUpper() == "JSONP") {
                    ValidateJSON();
                } else {
                    ValidateXML();
                }

                RateRequest standardRequest = CreateRateRequest(_auth);
                RateRequest freightRequest = CreateRateRequest(_auth);
                standardRequest.RequestedShipment.FreightShipmentDetail = null;
                freightRequest.RequestedShipment.RequestedPackageLineItems = null;
                RateService service = new RateService(_environment); // Initializes the service
                try {
                    // Call the web service passing in a RateRequest and returing a RateReply
                    decimal totalweight = standardRequest.RequestedShipment.RequestedPackageLineItems.Sum(x => x.Weight.Value);
                    RateReply reply = new RateReply();
                    if (totalweight < 90) {
                        reply = service.getRates(standardRequest);
                    } else if (totalweight >= 150) {
                        //reply = service.getRates(freightRequest);
                        reply = service.getRates(standardRequest);
                    } else {
                        // make both calls
                        reply = service.getRates(standardRequest);
                        /*RateReply freightreply = service.getRates(freightRequest);

                        List<Notification> allnotifications = new List<Notification>();
                        List<RateReplyDetail> alldetails = new List<RateReplyDetail>();

                        if (standardreply.HighestSeverity == NotificationSeverityType.SUCCESS || standardreply.HighestSeverity == NotificationSeverityType.NOTE || standardreply.HighestSeverity == NotificationSeverityType.WARNING) {
                            reply.HighestSeverity = standardreply.HighestSeverity;
                            allnotifications.AddRange(standardreply.Notifications.ToList<Notification>());
                            alldetails.AddRange(standardreply.RateReplyDetails.ToList<RateReplyDetail>());
                            reply.TransactionDetail = standardreply.TransactionDetail;
                            reply.Version = standardreply.Version;
                        }

                        if (freightreply.HighestSeverity == NotificationSeverityType.SUCCESS || freightreply.HighestSeverity == NotificationSeverityType.NOTE || freightreply.HighestSeverity == NotificationSeverityType.WARNING) {
                            reply.HighestSeverity = freightreply.HighestSeverity;
                            allnotifications.AddRange(freightreply.Notifications.ToList<Notification>());
                            alldetails.AddRange(freightreply.RateReplyDetails.ToList<RateReplyDetail>());
                            reply.TransactionDetail = freightreply.TransactionDetail;
                            reply.Version = freightreply.Version;
                        }
                        reply.Notifications = allnotifications.ToArray<Notification>();
                        reply.RateReplyDetails = alldetails.ToArray<RateReplyDetail>();*/

                    }

                    ShippingResponse resp = new ShippingResponse();

                    // Check if the call was successful
                    if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) {
                        List<ShipmentRateDetails> details = new List<ShipmentRateDetails>();
                        details = GetRateDetails(reply);
                        resp = new ShippingResponse {
                            Status = "OK",
                            Status_Description = "",
                            Result = details
                        };
                    } else {
                        List<ShipmentRateDetails> details = new List<ShipmentRateDetails>();
                        ShipmentRateDetails detail = new ShipmentRateDetails();
                        detail.Notifications = ShowNotifications(reply);
                        details.Add(detail);
                        resp = new ShippingResponse {
                            Status = "ERROR",
                            Status_Description = "",
                            Result = details
                        };
                    }
                    return resp;
                } catch (SoapException e) {
                    throw new Exception(e.Detail.InnerText);
                } catch (Exception e) {
                    throw new Exception(e.Message);
                }
            } catch (Exception e) {
                ShippingResponse resp2 = new ShippingResponse {
                    Status = "ERROR",
                    Status_Description = e.Message,
                    Result = null
                };
                return resp2;
            }
        }
 public RequestTelemetryController(RateService service, FetchService fetchService)
 {
     _service      = service;
     _fetchService = fetchService;
 }
Ejemplo n.º 38
0
        public List<ShippingOption> GetShippingOptions()
        {
            var shippingOptions = new List<ShippingOption>();

            try
            {
                var service = new RateService();
                RateRequest request = CreateRateRequest(service);
                RateResponse rateResponse = service.ProcessRate(request);
                shippingOptions = ParseAnswer(rateResponse);
            }
            catch (System.Web.Services.Protocols.SoapException ex)
            {
                Debug.LogError(ex, false);
            }
            catch (System.ServiceModel.CommunicationException ex)
            {
                Debug.LogError(ex, false);
            }
            catch (Exception ex)
            {
                Debug.LogError(ex);
            }
            return shippingOptions;
        }