/src/AppLogic/Presenters/Control/CarControlPresenter.cs

https://bitbucket.org/tkestowicz/solidworkshop · C# · 157 lines · 89 code · 26 blank · 42 comment · 2 complexity · e8ca459759531040c6b2df71878a6eed MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using AppLogic.Interfaces.Controls;
  6. namespace AppLogic.Presenters.Control
  7. {
  8. /// <summary>
  9. /// Klasa logiki dla kontrolki samochodu
  10. /// </summary>
  11. public class CarControlPresenter
  12. {
  13. ICarControlView _view;
  14. public CarControlPresenter(ICarControlView view)
  15. {
  16. _view = view;
  17. Initialize();
  18. }
  19. /// <summary>
  20. /// Metoda ładuje dane do list rozwijanych
  21. /// </summary>
  22. public void Initialize()
  23. {
  24. LoadBrands();
  25. LoadColors();
  26. LoadFuels();
  27. }
  28. #region Initial methods
  29. /// <summary>
  30. /// Metoda ładuje modele wybranej marki do listy rozwijanej
  31. /// </summary>
  32. /// <param name="brand">Identyfikator wybranej marki</param>
  33. public void LoadModelsByBrand(int brandId)
  34. {
  35. // Reset aktualnie wybranego modelu
  36. _view.ModelId = 0;
  37. // Szukamy miast tylko w przypadku podania województwa
  38. if (brandId <= 0) return;
  39. _view.Models = GetModelsByBrand(brandId);
  40. }
  41. /// <summary>
  42. /// Metoda ładuje marki samochodów
  43. /// </summary>
  44. public void LoadBrands()
  45. {
  46. _view.Brands = GetBrands();
  47. }
  48. /// <summary>
  49. /// Metoda ładuje kolory samochodów
  50. /// </summary>
  51. public void LoadColors()
  52. {
  53. _view.Colors = GetColors();
  54. }
  55. /// <summary>
  56. /// Metoda ładuje rodzaje paliwa
  57. /// </summary>
  58. public void LoadFuels()
  59. {
  60. _view.Fuels = GetFuels();
  61. }
  62. #endregion
  63. #region Static methods
  64. /// <summary>
  65. /// Metoda pobiera z bazy listę marek samochodów i zwraca je w postaci listy
  66. /// </summary>
  67. /// <returns>Lista marek samochodów</returns>
  68. public static List<Model.Projection.ComboBox> GetBrands()
  69. {
  70. // Pobranie uchwytu do bd
  71. var db = Core.ServiceManager.Database;
  72. return (from c in db.CarBrands
  73. orderby c.BrandName
  74. select new Model.Projection.ComboBox
  75. {
  76. Id = c.CarBrandId,
  77. Value = c.BrandName
  78. }).ToList();
  79. }
  80. /// <summary>
  81. /// Metoda pobiera z bazy listę modeli dla danej marki i zwaraca je w postaci listy
  82. /// </summary>
  83. /// <param name="brandId">Id marki</param>
  84. /// <returns>List modeli samochodów</returns>
  85. public static List<Model.Projection.ComboBox> GetModelsByBrand(int brandId)
  86. {
  87. // Pobranie uchwytu do bd
  88. var db = Core.ServiceManager.Database;
  89. return (from c in db.CarModels
  90. where c.CarBrandId == brandId
  91. select new Model.Projection.ComboBox
  92. {
  93. Id = c.CarModelId,
  94. Value = c.ModelName
  95. }).ToList();
  96. }
  97. /// <summary>
  98. /// Metoda pobiera z bazy listę kolorów i zwraca je w postaci listy
  99. /// </summary>
  100. /// <returns>Lista kolorów</returns>
  101. public static List<Model.Projection.ComboBox> GetColors()
  102. {
  103. // Pobranie uchwytu do bd
  104. var db = Core.ServiceManager.Database;
  105. return (from c in db.Colors
  106. orderby c.ColorName
  107. select new Model.Projection.ComboBox
  108. {
  109. Id = c.ColorId,
  110. Value = c.ColorName
  111. }).ToList();
  112. }
  113. /// <summary>
  114. /// Metoda pobiera z bazy listę rodzajów paliwa i zwraca je w postaci listy
  115. /// </summary>
  116. /// <returns>Lista rodzajów paliwa</returns>
  117. public static List<Model.Projection.ComboBox> GetFuels()
  118. {
  119. // Pobranie uchwytu do bd
  120. var db = Core.ServiceManager.Database;
  121. return (from c in db.Fuels
  122. orderby c.FuelName
  123. select new Model.Projection.ComboBox
  124. {
  125. Id = c.FuelId,
  126. Value = c.FuelName
  127. }).ToList();
  128. }
  129. #endregion
  130. }
  131. }