VmModalTabBodyBase.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using VberAdmin.Web.Models.Input;
  2. namespace VberAdmin.Web.Models.Modals;
  3. public class VmModalTabBodyBase
  4. {
  5. public VmModalTabBodyBase()
  6. {
  7. _inputGroups = new List<VmInputGroup>();
  8. }
  9. public VmModal Modal { get; set; }
  10. private List<VmInputGroup> _inputGroups;
  11. public List<VmInputGroup> InputGroups
  12. {
  13. get => _inputGroups.Select(SetGroupDefault).ToList();
  14. set => _inputGroups = value;
  15. }
  16. private VmInputGroup SetGroupDefault(VmInputGroup group)
  17. {
  18. group.Modal = Modal;
  19. return group;
  20. }
  21. public VmModalTabBodyBase AddInputs(List<VmInputBase> inputs)
  22. {
  23. foreach (var input in inputs)
  24. {
  25. AddInput(input);
  26. }
  27. return this;
  28. }
  29. public VmModalTabBodyBase AddGroups(List<VmInputGroup> groups)
  30. {
  31. _inputGroups.AddRange(groups);
  32. return this;
  33. }
  34. public VmModalTabBodyBase AddInput(VmInputBase input)
  35. {
  36. AddGroup(new VmInputGroup().AddInput(input));
  37. return this;
  38. }
  39. public VmModalTabBodyBase AddGroup(VmInputGroup group)
  40. {
  41. _inputGroups.Add(group);
  42. return this;
  43. }
  44. public VmModalTabBodyBase AddGroup(List<VmInputBase> inputs, int? count = null, string breakPoint = null)
  45. {
  46. var group = new VmInputGroup();
  47. if (count != null)
  48. {
  49. group.WithAverage(count.Value);
  50. }
  51. if (breakPoint != null)
  52. {
  53. group.WithBreakPoint(breakPoint);
  54. }
  55. group.AddInputs(inputs);
  56. _inputGroups.Add(group);
  57. return this;
  58. }
  59. }