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); }
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>())); }
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>())); }
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()); }
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(); }
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); }
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(); }
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); }
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>())); }
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); }
/// <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); }
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); }
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); }
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); }
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()); }
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); }
public RateServiceTests() { var dir = AppContext.BaseDirectory; rateService = new RateService(new FileRatesProvider(dir)); }
public BillingController() { _rateService = new RateService(); }
public RateCommand(ITelegramBotClient botClient, BotLogger logger, RateService rateService) : base(botClient, logger) { RateService = rateService; }
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; }
static void Main(string[] args) { RateService newDisplay = new RateService(@"myNewDb6.db"); newDisplay.DisplayCurrent(); }
public CurrencyController() { rateService = new RateService(); }
public ApplicationRateService(ApiSettings settings, RateService rateService) { _currencyCodes = settings.CurrencyCodes; _rateService = rateService; }
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; }
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; }
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; }
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; }