CategoryTableViewModel.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Avalonia.Controls;
  2. using ReactiveUI;
  3. using FinancialManagement.Views;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using FinancialManagement.Models;
  10. namespace FinancialManagement.ViewModels
  11. {
  12. public class CategoryTableViewModel : ReactiveObject
  13. {
  14. ShmelevTeamContext ppContext;
  15. List<CategoryTableView> categores = new List<CategoryTableView>();
  16. private string categoryTitle;
  17. int indexCategory;
  18. public int IndexCategory { get => indexCategory; set => indexCategory = value; }
  19. public List<CategoryTableView> Categores { get => categores; set => this.RaiseAndSetIfChanged(ref categores, value); }
  20. public Category ItemCategory { get => ppContext.Categories.First(it => it.CategoryId == categores[IndexCategory].CategoryId); }
  21. public string CategoryTitle { get => categoryTitle; set => categoryTitle = value; }
  22. public CategoryTableViewModel(User currentUser, ShmelevTeamContext ppContext)
  23. {
  24. this.ppContext = ppContext;
  25. List<Category> categoriesList = ppContext.Categories
  26. .Where( c => c.IdUser == currentUser.UserId)
  27. .ToList();
  28. categoriesList.ForEach(it =>
  29. {
  30. CategoryTableView item = new CategoryTableView();
  31. item.CategoryId = it.CategoryId;
  32. item.CategoryTitle = it.Title;
  33. categores.Add(item);
  34. });
  35. }
  36. }
  37. public class CategoryTableView
  38. {
  39. public int CategoryId { get; set; }
  40. public string CategoryTitle { get; set; } = null!;
  41. }
  42. }