Ejemplo n.º 1
0
        public RestaurantDetails(string idRest)
        {
            // Constructor.
            IModel model = (DataBaseModel)Application.Current.Properties["model"];

            DataContext = new ViewModelRestaurantDetails(model);

            var VMRestID      = "VM_RestID";
            var bindingRestID = new Binding(VMRestID)
            {
                Mode = BindingMode.TwoWay
            };

            this.SetBinding(RestIDProperty, bindingRestID);

            // Send model the rest id.
            RestID = idRest;

            var VMRestDetails      = "VM_RestDetails";
            var bindingRestDetails = new Binding(VMRestDetails)
            {
                Mode = BindingMode.OneWay
            };

            this.SetBinding(RestDetailsProperty, bindingRestDetails);

            var VMIsClient      = "VM_IsClient";
            var bindingIsClient = new Binding(VMIsClient)
            {
                Mode = BindingMode.OneWay
            };

            this.SetBinding(WhoIsItProperty, bindingIsClient);

            InitializeComponent();
            // Hides these objects until the visibility changes.
            noStyle.Visibility   = Visibility.Collapsed;
            noReviews.Visibility = Visibility.Collapsed;
            noURL.Visibility     = Visibility.Collapsed;

            bool isClient = WhoIsIt;

            // Checks who is it (clien/owner) for the correct view options.
            if (isClient)
            {
                // It's client.
                edit.Visibility = Visibility.Collapsed;
            }
            else
            {
                // It's rest owner.
                addNewReview.Visibility = Visibility.Collapsed;
            }


            if (idRest == null)
            {
                // Error handling
                Console.WriteLine("Error - No rest id exists");
            }
            else
            {
                // Fill view from the binding rest details.

                // Fill name view.
                if (RestDetails.Name == null || RestDetails.Name.Equals(""))
                {
                    restName.Content = "None";
                }
                else
                {
                    restName.Content = RestDetails.Name;
                }

                // Fill location view.
                if (RestDetails.City != null && !RestDetails.City.Equals("") &&
                    RestDetails.Country != null && !RestDetails.Country.Equals(""))
                {
                    location.Content = RestDetails.City + ", " + RestDetails.Country;
                }
                else if ((RestDetails.City == null || RestDetails.City.Equals("")) &&
                         RestDetails.Country != null && !RestDetails.Country.Equals(""))
                {
                    location.Content = "None, " + RestDetails.Country;
                }
                else if (RestDetails.City != null && !RestDetails.City.Equals("") &&
                         (RestDetails.Country == null || !RestDetails.Country.Equals("")))
                {
                    location.Content = RestDetails.City + ", None";
                }
                else
                {
                    location.Content = "None, None";
                }

                // Fill rating view.
                raitingNum.Content = RestDetails.Rate;

                // Fill stars view according to rating number.
                stp = (StackPanel)FindName("stars");
                StarsRaitingView str = new StarsRaitingView();
                stp.Children.Add(str);

                // Fill price view.
                priceValue.Content = RestDetails.PriceRange;

                // Fill list of styles.
                int styleNum = RestDetails.Types.Count;
                if (styleNum == 0)
                {
                    style.Visibility   = Visibility.Collapsed;
                    noStyle.Visibility = Visibility.Visible;
                }
                else
                {
                    // There is styles.
                    stp = (StackPanel)FindName("styleList");
                    for (int i = 0; i < styleNum; i++)
                    {
                        Style s = new Style(RestDetails.Types[i]);
                        stp.Children.Add(s);
                    }
                }

                // Fill list of reviews.
                List <UserReview> reviews = RestDetails.Reviews;
                if (reviews == null || reviews.Count == 0)
                {
                    review.Visibility    = Visibility.Collapsed;
                    noReviews.Visibility = Visibility.Visible;
                    if (isClient)
                    {
                        addNewReview.Background = Brushes.Yellow;
                    }
                }
                else
                {
                    // There is reviews.
                    stp = (StackPanel)FindName("reviewsList");
                    for (int i = 0; i < reviews.Count; i++)
                    {
                        Review r = new Review(i + 1, reviews[i]);
                        stp.Children.Add(r);
                    }
                }

                // Fill URL view.
                if (RestDetails.URL == null || RestDetails.URL.Equals(""))
                {
                    // No URL address.
                }
                else
                {
                    // Show URL address.
                    Uri hyperlink;
                    if (RestDetails.URL.Contains("http"))
                    {
                        hyperlink = new Uri(RestDetails.URL);
                    }
                    else
                    {
                        hyperlink = new Uri("https://www.tripadvisor.co.il" + RestDetails.URL);
                    }
                    urlAdd.NavigateUri = hyperlink;
                }
            }
        }
Ejemplo n.º 2
0
        public StarsRaitingView()
        {
            // Constructor.
            IModel model = (DataBaseModel)Application.Current.Properties["model"];

            DataContext = new ViewModelRestaurantDetails(model);

            var VMRestRating      = "VM_RestRating";
            var bindingRestRating = new Binding(VMRestRating)
            {
                Mode = BindingMode.OneWay
            };

            this.SetBinding(RestRatingProperty, bindingRestRating);

            InitializeComponent();

            // Hides these objects until the visibility changes.
            stat1E.Visibility = Visibility.Collapsed;
            stat2E.Visibility = Visibility.Collapsed;
            stat3E.Visibility = Visibility.Collapsed;
            stat4E.Visibility = Visibility.Collapsed;
            stat5E.Visibility = Visibility.Collapsed;

            stat1H.Visibility = Visibility.Collapsed;
            stat2H.Visibility = Visibility.Collapsed;
            stat3H.Visibility = Visibility.Collapsed;
            stat4H.Visibility = Visibility.Collapsed;
            stat5H.Visibility = Visibility.Collapsed;

            stat1F.Visibility = Visibility.Collapsed;
            stat2F.Visibility = Visibility.Collapsed;
            stat3F.Visibility = Visibility.Collapsed;
            stat4F.Visibility = Visibility.Collapsed;
            stat5F.Visibility = Visibility.Collapsed;

            // Get current rest raiting.
            double raiting = RestRating;
            int    rate    = (int)raiting;

            // Fill the view with full stars according to rate number.
            switch (rate)
            {
            case 1:
                stat1F.Visibility = Visibility.Visible;
                break;

            case 2:
                stat1F.Visibility = Visibility.Visible;
                stat2F.Visibility = Visibility.Visible;
                break;

            case 3:
                stat1F.Visibility = Visibility.Visible;
                stat2F.Visibility = Visibility.Visible;
                stat3F.Visibility = Visibility.Visible;
                break;

            case 4:
                stat1F.Visibility = Visibility.Visible;
                stat2F.Visibility = Visibility.Visible;
                stat3F.Visibility = Visibility.Visible;
                stat4F.Visibility = Visibility.Visible;
                break;

            case 5:
                stat1F.Visibility = Visibility.Visible;
                stat2F.Visibility = Visibility.Visible;
                stat3F.Visibility = Visibility.Visible;
                stat4F.Visibility = Visibility.Visible;
                stat5F.Visibility = Visibility.Visible;
                break;
            }

            // Fill the view with empty stars according to rate number.
            switch (rate)
            {
            case 4:
                stat5E.Visibility = Visibility.Visible;
                break;

            case 3:
                stat4E.Visibility = Visibility.Visible;
                stat5E.Visibility = Visibility.Visible;
                break;

            case 2:
                stat3E.Visibility = Visibility.Visible;
                stat4E.Visibility = Visibility.Visible;
                stat5E.Visibility = Visibility.Visible;
                break;

            case 1:
                stat2E.Visibility = Visibility.Visible;
                stat3E.Visibility = Visibility.Visible;
                stat4E.Visibility = Visibility.Visible;
                stat5E.Visibility = Visibility.Visible;
                break;

            case 0:
                stat1E.Visibility = Visibility.Visible;
                stat2E.Visibility = Visibility.Visible;
                stat3E.Visibility = Visibility.Visible;
                stat4E.Visibility = Visibility.Visible;
                stat5E.Visibility = Visibility.Visible;
                break;
            }

            // Checks if the raiting number is fraction.
            if (raiting % 1 != 0)
            {
                // Fill the view with half stars according to rate number.
                switch (rate)
                {
                case 4:
                    stat5H.Visibility = Visibility.Visible;
                    break;

                case 3:
                    stat4H.Visibility = Visibility.Visible;
                    stat5E.Visibility = Visibility.Visible;
                    break;

                case 2:
                    stat3H.Visibility = Visibility.Visible;
                    stat4E.Visibility = Visibility.Visible;
                    stat5E.Visibility = Visibility.Visible;
                    break;

                case 1:
                    stat2H.Visibility = Visibility.Visible;
                    stat3E.Visibility = Visibility.Visible;
                    stat4E.Visibility = Visibility.Visible;
                    stat5E.Visibility = Visibility.Visible;
                    break;

                case 0:
                    stat1H.Visibility = Visibility.Visible;
                    stat2E.Visibility = Visibility.Visible;
                    stat3E.Visibility = Visibility.Visible;
                    stat4E.Visibility = Visibility.Visible;
                    stat5E.Visibility = Visibility.Visible;
                    break;
                }
            }
        }