Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. using AircraftFactoryBusinessLogic.BindingModels;
  2. using AircraftFactoryBusinessLogic.Interfaces;
  3. using AircraftFactoryBusinessLogic.ViewModels;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9.  
  10. namespace AircraftFactoryFileImplement
  11. {
  12. public class OrderLogic : IOrderLogic
  13. {
  14. private readonly FileDataListSingleton source;
  15.  
  16. public OrderLogic()
  17. {
  18. source = FileDataListSingleton.GetInstance();
  19. }
  20.  
  21. public void CreateOrUpdate(OrderBindingModel model)
  22. {
  23. Order tempOrder = model.Id.HasValue ? null : new Order { Id = 1 };
  24.  
  25. if (!model.Id.HasValue)
  26. {
  27. tempOrder.Id = source.Orders.FirstOrDefault(rec => rec.Id >= tempOrder.Id).Id + 1;
  28. } else
  29. {
  30. tempOrder = source.Orders.FirstOrDefault(rec => rec.Id == model.Id);
  31. }
  32.  
  33. if (model.Id.HasValue)
  34. {
  35. if (tempOrder == null)
  36. {
  37. throw new Exception("Элемент не найден");
  38. }
  39. CreateModel(model, tempOrder);
  40. }
  41. else
  42. {
  43. source.Orders.Add(CreateModel(model, tempOrder));
  44. }
  45. }
  46.  
  47. public void Delete(OrderBindingModel model)
  48. {
  49. Order element = source.Orders.FirstOrDefault(rec => rec.Id == model.Id.Value);
  50.  
  51. if (element != null)
  52. {
  53. source.Orders.Remove(element);
  54. } else
  55. {
  56. throw new Exception("Элемент не найден");
  57. }
  58. }
  59.  
  60. public List<OrderViewModel> Read(OrderBindingModel model)
  61. {
  62. List<OrderViewModel> result = new List<OrderViewModel>();
  63.  
  64. if (model != null)
  65. {
  66. result.Add(CreateViewModel(source.Orders.FirstOrDefault(rec => rec.Id == model.Id)));
  67. } else
  68. {
  69. result.AddRange(source.Orders.Select(rec => CreateViewModel(rec)));
  70. }
  71. return result;
  72. }
  73.  
  74. private Order CreateModel(OrderBindingModel model, Order order)
  75. {
  76. Aircraft aircraft = source.Aircrafts.Where(rec => rec.Id == model.AircraftId).FirstOrDefault();
  77.  
  78. if (aircraft == null)
  79. {
  80. throw new Exception("Элемент не найден");
  81. }
  82.  
  83. order.AircraftId = model.AircraftId;
  84. order.Count = model.Count;
  85. order.Sum = model.Count * aircraft.Price;
  86. order.Status = model.Status;
  87. order.DateCreate = model.DateCreate;
  88. order.DateImplement = model.DateImplement;
  89.  
  90. return order;
  91. }
  92.  
  93. private OrderViewModel CreateViewModel(Order order)
  94. {
  95. Aircraft aircraft = source.Aircrafts.Where(rec => rec.Id == order.AircraftId).FirstOrDefault();
  96.  
  97. if (aircraft == null)
  98. {
  99. throw new Exception("Элемент не найден");
  100. }
  101.  
  102. return new OrderViewModel
  103. {
  104. Id = order.Id,
  105. AircraftId = order.AircraftId,
  106. AircraftName = aircraft.AircraftName,
  107. Count = order.Count,
  108. Sum = order.Sum,
  109. Status = order.Status,
  110. DateCreate = order.DateCreate,
  111. DateImplement = order.DateImplement
  112. };
  113. }
  114. }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement