using VberAdmin.Web.Models.Input; namespace VberAdmin.Web.Models.Modals; public class VmModalTabBodyBase { public VmModalTabBodyBase() { _inputGroups = new List(); } public VmModal Modal { get; set; } private List _inputGroups; public List InputGroups { get => _inputGroups.Select(SetGroupDefault).ToList(); set => _inputGroups = value; } private VmInputGroup SetGroupDefault(VmInputGroup group) { group.Modal = Modal; return group; } public VmModalTabBodyBase AddInputs(List inputs) { foreach (var input in inputs) { AddInput(input); } return this; } public VmModalTabBodyBase AddGroups(List groups) { _inputGroups.AddRange(groups); return this; } public VmModalTabBodyBase AddInput(VmInputBase input) { AddGroup(new VmInputGroup().AddInput(input)); return this; } public VmModalTabBodyBase AddGroup(VmInputGroup group) { _inputGroups.Add(group); return this; } public VmModalTabBodyBase AddGroup(List inputs, int? count = null, string breakPoint = null) { var group = new VmInputGroup(); if (count != null) { group.WithAverage(count.Value); } if (breakPoint != null) { group.WithBreakPoint(breakPoint); } group.AddInputs(inputs); _inputGroups.Add(group); return this; } }