public async System.Threading.Tasks.Task GetPrice_Euro_Match() { var bookList = new PriceRequest() { BookList = new BookList { Book1 = 0, Book2 = 0, Book3 = 0, Book4 = 0, Book5 = 0 } }; var priceResponse = new PriceResponse { GBP = 0m, Euro = 0m }; var request = new GetPrice(bookList); var cancellationToken = new CancellationToken(); var expected = new GetPriceResponse(priceResponse).PriceResponse.Euro; var actual = await _getPriceHandler.Handle(request, cancellationToken).ConfigureAwait(false); Assert.AreEqual(actual.PriceResponse.Euro, expected); }
public async System.Threading.Tasks.Task GetPrice_GBP_Books_Cost_Match() { var bookList = new PriceRequest() { BookList = new BookList { Book1 = 2, Book2 = 2, Book3 = 2, Book4 = 1, Book5 = 1 } }; var priceResponse = new PriceResponse { GBP = 51.20m, Euro = 56.32m }; var request = new GetPrice(bookList); var cancellationToken = new CancellationToken(); var expected = new GetPriceResponse(priceResponse).PriceResponse.GBP; var actual = await _getPriceHandler.Handle(request, cancellationToken).ConfigureAwait(false); Assert.AreEqual(actual.PriceResponse.GBP, expected); }
public CanHaveSourcesNode(ITreeNode trueNode, ITreeNode falseNode, GetPrice getPrice, IMapController map) : base(trueNode, falseNode, null) { this.getPrice = getPrice; condition = Condition; this.map = map; }
/// <summary> /// Gets the final price of the specified product price in the current shopping context. /// </summary> public static decimal GetFinalPrice(int productId, int variantId, decimal originalPrice, ShoppingContext shoppingContext) { // TODO: Avoid using Current var @event = new GetPrice(productId, variantId, originalPrice, shoppingContext); Event.Raise(@event, CommerceInstance.Current); return(@event.FinalPrice); }
/// <summary> /// Sum Product Price In Order /// </summary> /// <param name="models"></param> /// <returns>sum price</returns> private decimal SumProductPriceInOrder(IList <ShoppingCartDetailModel> models) { decimal sum = 0; foreach (var item in models) { var pro = _productVariationService.GetById(item.ProductVariation_Id); sum += GetPrice.GetProductPrice(pro); } return(sum); }
public void ExecuteTest() { //Arrange var getPrice = new GetPrice(); //Act var result = getPrice.Execute(ServiceKey.Hajvagas); //Assert Assert.AreEqual(10000, result); }
public void getCarPriceTest_noresponse() { AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "A new 2002 Toyota Camry has a starting price of 23700."); }
public IEnumerable <Result> GetPrices(IEnumerable <PcPart> pcParts, IEnumerable <Website> websites) { var results = new List <Result>(); //Kijk wat de prijs is van elke pcpart in elke gegeven webshop foreach (var pcPart in pcParts) { var prices = new List <WebsitePrice>(); foreach (var website in websites) { var priceSubpaths = website.Pathdetails.Split(',').ToList(); var titleSubpaths = website.Pathtitle.Split(';').ToList(); //Pak de prijzen en titels van een pcpart var price = new GetPrice( new PriceUrlBuilder(website._Url, pcPart._Name, "+").GetUrl(), new PricePathBuilder(priceSubpaths[0], priceSubpaths[1], priceSubpaths[2]).GetPath(), titleSubpaths ).Get(); if (price != null) { List <string> partSubNames = pcPart._Name.Split(' ').ToList(); //Hij kijkt naar elke title die hij binnenkrijgt for (int i = 0; i < price.Title.Count; i++) { //Daarna kijkt hij of alle title onderdelen van de gegeven pcpart in de titel zit foreach (string subName in partSubNames) { if (price.Title[i].InnerText.IndexOf(subName, StringComparison.CurrentCultureIgnoreCase) == -1) { goto Breakloop; //De titel bevat niet alle onderdelen dus pak de volgende titel } } //De titel bevat wel alle onderdelen dus voeg hem toe en break de loop prices.Add(new WebsitePrice(website._Name, Convert.ToDecimal(price.Prices[i].InnerText.Replace("\n", "").Replace(" ", "").Replace("-", "")))); break; Breakloop :; } } } results.Add(new Result(prices, pcPart)); } return(results); }
private void cmdCreateInvoice_Click(object sender, EventArgs e) { var customerManager = new CustomerManager(); var fileUtil = new FileUtil(); var usedServiceRepository = new UsedServiceRepository(fileUtil); var getUsedServices = new GetUsedServices(usedServiceRepository, customerManager); var getPrice = new GetPrice(); var preview = new Preview(txtInvoice); var createInvoice = new CreateInvoice(customerManager, getUsedServices, getPrice, preview); var customerId = ((ComboBoxItem)cmbUgyfel.SelectedItem).Value; createInvoice.Execute(customerId); }
public void getCarPriceTest_nonsense() { AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "jhgfjh", "University of the Texas at Arlington" }, } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "Hmm. I can't seem to find the price at this time."); }
public void getCarPriceTest_onlymodel() { AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Model", "Camry" }, } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "What's the make of the car?"); }
public void getCarPriceTest_2nonmandatory() { AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Make", "Toyota" }, { "Year", "2012" }, } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "What's the model of the car?"); }
//Get Price - all 3 parameters provided - missing full year (Year, Make, Model) - 2002 public void getCarPriceTest_3notfullyear() { AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Make", "Toyota" }, { "Model", "Camry" }, { "Year", "02" } } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "The 2002 Toyota Camry has a starting price of 23700."); }
//Get Price - all 3 parameters provided - missing full model info (Year, Make, Model) - //SHOULD WE ASK FOR MODIFIED MODELS? public void getCarPriceTest_3notfullmodel() { AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Make", "Mazda" }, { "Model", "CX" }, { "Year", "2014" } } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "Hmm. I can't seem to find the price at this time."); }
//Get Price - all 3 parameters provided - hyphenated make (Year, Make, Model) public void getCarPriceTest_3hyphen() { // User says Mercedes Benz. Should match against mercedes-benz AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Make", "Mercedes Benz" }, { "Model", "S Class" }, { "Year", "2012" } } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "The 2012 Mercedes-Benz S Class has a starting price of 158050."); }
public void getCarPriceTest_3good() { // Arrange AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Make", "BMW" }, { "Model", "5 Series" }, { "Year", "2014" } } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "A new 2014 BMW 5 Series has a starting price of 63900"); }
public void getCarPriceTest() { // Arrange AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Make", "Dodge" }, { "Model", "Dart" }, { "Year", "2013" } } ); var intent = new GetPrice(); var edmundsURL = intent.GenEdmundsURL(); Assert.AreEqual("https://api.edmunds.com/api/vehicle/v2/Dodge/Dart/2013/styles?view=full&fmt=json&api_key=67t7jtrnvz8wyzgfpwgcqa3y", edmundsURL); var edmundsResponse = intent.GetEdmundsResponse(); var AlexaResponse = intent.GetAlexaResponse(); }
/// <summary> /// Add OrderDetail /// </summary> /// <param name="models"></param> /// <param name="orderId"></param> private void AddOrderDetails(IList <ShoppingCartDetailModel> models, Guid orderId) { foreach (var item in models) { var cartDetail = _shoppingCartDetailService.GetById(item.Id); var oderDetail = new OrderDetail() { Id = Guid.NewGuid(), IsActive = true, CreatedDate = DateTime.Now, ProductVariation_ID = cartDetail.ProductVariation_Id, Quantity = cartDetail.Quantity, Oder_Id = orderId, TotalPrice = GetPrice.GetProductPrice(cartDetail.ProductVariation) }; _orderDetailServicecs.Insert(oderDetail); } }
public void getCarPriceTest_2nonmandatory2() { AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Model", "Camry" }, { "Year", "2002" }, } ); var intent = new GetPrice(); var AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "What's the make of the car?"); AlexaService.Cache.CacheManager.AddSlots(new Dictionary <string, string>() { { "Make", "Toyota" } } ); AlexaResponse = intent.GetAlexaResponse(); Assert.AreEqual(AlexaResponse.response.outputSpeech.text, "A new 2002 Toyota Camry has a starting price of 25405"); }
/// <summary> /// /// </summary> /// <param name="sourceDataCount"></param> /// <param name="periodExtremum"></param> /// <param name="maxPastExtremum"></param> /// <param name="getSourcePrice"></param> /// <param name="getIndexPrice"></param> /// <param name="waitOneBar">ждать одного бара перед отрисовкой стрелки, закрывающегося ниже (для макс) или выше (для мин)</param> /// <param name="divergenceSign">поиск дивергенции? или - конвергенции?</param> /// <returns></returns> public static List <DiverSpan> FindDivergencePointsClassic( int sourceDataCount, int periodExtremum, int maxPastExtremum, GetPrice getSourcePrice, GetPrice getIndexPrice, bool waitOneBar, DivergenceSign divergenceSign) { var diverPairs = new List <DiverSpan>(); var srcCount = sourceDataCount; // найти экстремумы var extremums = new List <Point>(); // index - sign for (var i = periodExtremum; i < srcCount - periodExtremum - 1; i++) { bool isPeak = true, isLow = true; var price = getSourcePrice(i); for (var j = i - periodExtremum; j <= i + periodExtremum; j++) { if (j == i) { continue; } var priceNear = getSourcePrice(j); if (priceNear > price) { isPeak = false; } if (priceNear < price) { isLow = false; } if (!isPeak && isLow == false) { break; } } if (isPeak) { extremums.Add(new Point(i, 1)); } if (isLow) { extremums.Add(new Point(i, -1)); } } // от каждого экстремума поиск вперед до M баров - поиск экстремума на интервале [i-N...i+1] foreach (var extr in extremums) { var signExtr = extr.Y; var indexExtr = extr.X; var priceExtr = getSourcePrice(indexExtr); //for (var i = extr.X + 1; i <= (extr.X + MaxPastExtremum); i++) for (var i = extr.X + periodExtremum; i <= (extr.X + maxPastExtremum); i++) { // не выйти за пределы интервала, если нужен бар подтверждения - остановиться за бар до конца интервала if (i > (srcCount - 1) || (waitOneBar && i == (srcCount - 1))) { break; } // новый "экстремум" должен быть выше старого var price = getSourcePrice(i); if ((signExtr > 0 && price <= priceExtr) || (signExtr < 0 && price >= priceExtr)) { continue; } // за новым "экстремумом" должна следовать точка ниже (выше для минимума) if (waitOneBar) { var nextPrice = getSourcePrice(i + 1); if ((signExtr > 0 && price <= nextPrice) || (signExtr < 0 && price >= nextPrice)) { continue; } } // сравнение с дельтой индекса // !! смещение индекса var indexPriceI = getIndexPrice(i); var indexPriceEx = getIndexPrice(indexExtr); var deltaIndex = (double.IsNaN(indexPriceI) || double.IsNaN(indexPriceEx)) ? 0 : indexPriceI - indexPriceEx; var signDelta = double.IsNaN(deltaIndex) ? 0 : Math.Sign(deltaIndex); if ((divergenceSign == DivergenceSign.Divergence && signExtr == signDelta) || (divergenceSign == DivergenceSign.Convergence && signExtr != signDelta)) { continue; } // экстремум найден priceExtr = price; diverPairs.Add(new DiverSpan(indexExtr, i, -signExtr)); } } return(diverPairs); }
public static List <DiverSpan> FindDivergencePointsQuasi( int sourceDataCount, double marginUpper, double marginLower, GetPrice getSourcePrice, GetPrice getIndexPrice, DivergenceSign divergenceSign) { var divers = new List <DiverSpan>(); var srcCount = sourceDataCount; double?lastPeak = null; var peakPrice = 0.0; var extremumSign = 0; var startIndex = 0; for (var i = 0; i < srcCount; i++) { var index = getIndexPrice(i); var indexNext = i < srcCount?getIndexPrice(i + 1) : index; // если находимся в зоне перекупленности / перепроданности, // если след. точка ниже (выше для перепроданности), // если текущая точка выше последнего максимума (ниже минимума...) var margUp = index >= marginUpper; var margDn = index <= marginLower; if ((margUp && indexNext < index && index > (lastPeak.HasValue ? lastPeak.Value : double.MinValue)) || (margDn && indexNext > index && index < (lastPeak.HasValue ? lastPeak.Value : double.MaxValue))) {// + или - экстремум peakPrice = getSourcePrice(i); extremumSign = margUp ? 1 : -1; startIndex = i; lastPeak = index; continue; } if (!margUp && margDn == false) {// конец отсчета экстремума extremumSign = 0; lastPeak = null; continue; } // отсчет экстремума - сравнить дельту цены и дельту индекса var deltaPrice = getSourcePrice(i) - peakPrice; var deltaIndex = index - lastPeak; if (divergenceSign == DivergenceSign.Convergence) { deltaIndex = -deltaIndex; } if (extremumSign > 0) { if (deltaPrice > 0 && deltaIndex < 0) // медвежий дивер { divers.Add(new DiverSpan(startIndex, i, -1)); peakPrice = getSourcePrice(i); } } if (extremumSign < 0) { if (deltaPrice < 0 && deltaIndex > 0) // бычий дивер { divers.Add(new DiverSpan(startIndex, i, 1)); peakPrice = getSourcePrice(i); } } } return(divers); }
public ActionSource(DelAction action, GetPrice getPrice) { this.action = action; this.getPrice = getPrice; state = new ActiveState(); }
public virtual string[] GetData() { string[] data = { GetName, GetPrice.ToString(), GetCount.ToString(), GetCost().ToString(), "" }; return(data); }
public Store() { GetPrice getPrice = BasePrice; getPrice += FluctPrice; }
public Adress(Sushi data) { InitializeComponent(); Label label = new Label { Text = "Adress", HorizontalOptions = LayoutOptions.Center, FontSize = 22, TextColor = Color.FromHex("#a20025") }; Picker cityPicker = new Picker { Title = "Choose your city" }; List <string> cityList = new List <string>(); cityList.Add("Minsk"); cityList.Add("Moscow"); cityList.Add("Kiyv"); cityPicker.ItemsSource = cityList; Entry district = new Entry { Placeholder = "District" }; Entry street = new Entry { Placeholder = "Street", PlaceholderColor = Color.Olive }; Entry phone = new Entry { Placeholder = "Phone", PlaceholderColor = Color.Olive, Keyboard = Keyboard.Telephone, Margin = new Thickness(0, 20) }; Button confirm = new Button { Text = "Confirm Order", FontSize = 16, TextColor = Color.White, BackgroundColor = Color.FromHex("6a00ff"), Margin = new Thickness(45, 0), HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Center }; confirm.Clicked += ConfirmQuestion; async void ConfirmQuestion(object sender, EventArgs e) { string message = MakeMessage(); bool answer = await DisplayAlert("Confirm", message, "Yes", "No"); if (answer) { await Navigation.PushAsync(new Notify()); } } StackLayout layout = new StackLayout { Children = { label, cityPicker, street, phone, confirm } }; string MakeMessage() { try { StringBuilder message = new StringBuilder("All data correct ?\n\n"); var total = new GetPrice(FullPrice); message.Append("Sushi: "); message.Append(data.Name + "\n"); message.Append("Price: "); message.Append(total(data.Price, 3) + "$\n"); message.Append("City: "); message.Append(cityPicker.SelectedItem); return(message.ToString()); } catch (Exception ex) { return("Error to get data"); } } double FullPrice(double sushiPrice, double deliveryPrice) { double price = sushiPrice + deliveryPrice; return(price); } Content = layout; }