コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public CanHaveSourcesNode(ITreeNode trueNode, ITreeNode falseNode, GetPrice getPrice, IMapController map)
     : base(trueNode, falseNode, null)
 {
     this.getPrice = getPrice;
     condition = Condition;
     this.map = map;
 }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
ファイル: GetPriceTest.cs プロジェクト: ledacskbogi/fodraszat
        public void ExecuteTest()
        {
            //Arrange
            var getPrice = new GetPrice();

            //Act
            var result = getPrice.Execute(ServiceKey.Hajvagas);

            //Assert
            Assert.AreEqual(10000, result);
        }
コード例 #7
0
        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.");
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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.");
        }
コード例 #11
0
        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?");
        }
コード例 #12
0
        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?");
        }
コード例 #13
0
        //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.");
        }
コード例 #14
0
        //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.");
        }
コード例 #15
0
        //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.");
        }
コード例 #16
0
        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");
        }
コード例 #17
0
        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();
        }
コード例 #18
0
 /// <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);
     }
 }
コード例 #19
0
        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");
        }
コード例 #20
0
ファイル: Divergency.cs プロジェクト: zhangjiayin/TradeSharp
        /// <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);
        }
コード例 #21
0
ファイル: Divergency.cs プロジェクト: zhangjiayin/TradeSharp
        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);
        }
コード例 #22
0
ファイル: ActionSource.cs プロジェクト: alenkacz/Expanze
 public ActionSource(DelAction action, GetPrice getPrice)
 {
     this.action = action;
     this.getPrice = getPrice;
     state = new ActiveState();
 }
コード例 #23
0
ファイル: PricePurchase.cs プロジェクト: Skillpolice/Task
 public virtual string[] GetData()
 {
     string[] data = { GetName, GetPrice.ToString(), GetCount.ToString(), GetCost().ToString(), "" };
     return(data);
 }
コード例 #24
0
ファイル: Store.cs プロジェクト: ishan115/C-Sharp-stuff
        public Store()
        {
            GetPrice getPrice = BasePrice;

            getPrice += FluctPrice;
        }
コード例 #25
0
ファイル: Adress.xaml.cs プロジェクト: MikolaGil/SushiApp
        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;
        }