123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- using Avalonia.Threading;
- using AvaloniaApplicationTest.Models;
- using ReactiveUI;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace AvaloniaApplicationTest.ViewModels
- {
- public class ShowHotelsPageViewModel : ReactiveObject
- {
- public List<Hotel> LBHotels
- {
- get => lBHotels;
- set => this.RaiseAndSetIfChanged(ref lBHotels, value);
- }
- public string HowManyShow
- {
- get
- {
- return GetShowed();
- }
- set => this.RaiseAndSetIfChanged(ref text1, value);
- }
- public string PageNumber
- {
- get
- {
- return GetPages();
- }
- set => this.RaiseAndSetIfChanged(ref text2, value);
- }
-
- public int UserCount
- {
- get => user_count;
- set {
- this.RaiseAndSetIfChanged(ref user_count, value);
- try
- {
- all_page_number = Convert.ToInt32(Math.Round((double)MainWindowViewModel.myConnection.Hotels.Count() / user_count, MidpointRounding.ToPositiveInfinity));
- LBHotels = MainWindowViewModel.myConnection.Hotels.Take(value).ToList();
- }
- catch { }
- }
- }
- public bool CanBack
- {
- get => visibility_b;
- set => this.RaiseAndSetIfChanged(ref visibility_b, value);
- }
- public bool CanNext
- {
- get => visibility_n;
- set => this.RaiseAndSetIfChanged(ref visibility_n, value);
- }
- int page_number = 1;
- int all_page_number = Convert.ToInt32(Math.Round((double)MainWindowViewModel.myConnection.Hotels.Count()/ 10, MidpointRounding.ToPositiveInfinity));
-
- int all_count = MainWindowViewModel.myConnection.Hotels.Count();
- List<Hotel> lBHotels = MainWindowViewModel.myConnection.Hotels.Take(10).ToList();
- bool visibility_b = false;
- bool visibility_n = true;
- string text1 = "";
- string text2 = "";
- int user_count = 10;
- int count_showed = 10;
- string GetShowed()
- {
- string text = count_showed + " / " + all_count + " отелей";
- return text;
- }
- string GetPages()
- {
- all_page_number = Convert.ToInt32(Math.Round((double)MainWindowViewModel.myConnection.Hotels.Count() / user_count, MidpointRounding.ToPositiveInfinity));
- string text = page_number + " / " + all_page_number;
- return text;
- }
- public void Next()
- {
- CanBack = true;
- int count = (all_count - count_showed);
- if (count<= user_count)
- {
- CanNext = false;
- }
- else
- {
- count = user_count;
- }
- page_number++;
- LBHotels = MainWindowViewModel.myConnection.Hotels.Skip(count_showed).Take(count).ToList();
- count_showed += count;
- HowManyShow = GetShowed();
- PageNumber = GetPages();
- }
- public void Back()
- {
- CanNext = true;
- if (page_number == 2)
- {
- CanBack = false;
- }
- int count = user_count;
- if (page_number == all_page_number)
- {
- count = all_count - (page_number - 1)* user_count + user_count;
- }
- page_number--;
- count_showed = page_number * user_count;
- HowManyShow = GetShowed();
- PageNumber = GetPages();
- LBHotels = MainWindowViewModel.myConnection.Hotels.Skip(count_showed-count).Take(user_count).ToList();
- }
- }
- }
|