| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- using System.Collections.Generic;
- using System.Linq;
- namespace ContractService.Views.Shared.Modals
- {
- public class ModalBodyViewModel
- {
- public ModalBodyViewModel()
- {
- FormId = "form";
- ModalId = "modal";
- LabelLayoutDefaultClass = "col-sm-3 col-md-2";
- InputLayoutDefaultClass = "col-sm-9 col-md-10";
- DivClass = "form-group row";
- }
- public ModalBodyViewModel(List<Input> inputs, string formId = "form", string modalId = "modal", string labelLayoutDefaultClass = "col-sm-3 col-md-2", string inputLayoutDefaultClass = "col-sm-9 col-md-10", string divClass = "form-group row", List<SpecialInputModel> specials = null)
- {
- FormId = formId;
- ModalId = modalId;
- _inputs = inputs;
- LabelLayoutDefaultClass = labelLayoutDefaultClass;
- InputLayoutDefaultClass = inputLayoutDefaultClass;
- Specials = specials;
- DivClass = divClass;
- }
- public string FormId { get; set; }
- public string ModalId { get; set; }
- public string DivClass { get; set; }
- public string LabelLayoutDefaultClass { get; set; }
- public string InputLayoutDefaultClass { get; set; }
- public List<ModalTabViewModel> Tabs { get; set; }
- public List<SpecialInputModel> Specials { get; set; }
- private List<Input> _inputs;
- public List<Input> Inputs => _inputs.Select(SetDefault).ToList();
- public ModalBodyViewModel SetInputs(List<Input> inputs)
- {
- _inputs = inputs;
- return this;
- }
- public ModalBodyViewModel AddInput(Input input)
- {
- if (_inputs == null)
- {
- _inputs = new List<Input>();
- }
- _inputs.Add(input);
- return this;
- }
- public ModalBodyViewModel AddInputs(List<Input> inputs)
- {
- _inputs = _inputs ?? new List<Input>();
- _inputs.AddRange(inputs);
- return this;
- }
- public ModalBodyViewModel AddTab(string tabId, string name, string content)
- {
- if (Tabs == null)
- {
- Tabs = new List<ModalTabViewModel>();
- }
- Tabs.Add(new ModalTabViewModel(tabId, name, content, this));
- return this;
- }
- public ModalBodyViewModel AddTab(string tabId, string name, List<Input> inputs)
- {
- if (Tabs == null)
- {
- Tabs = new List<ModalTabViewModel>();
- }
- Tabs.Add(new ModalTabViewModel(tabId, name, inputs, this));
- return this;
- }
- public ModalBodyViewModel AddTabs(List<ModalTabViewModel> tabs)
- {
- if (Tabs == null)
- {
- Tabs = new List<ModalTabViewModel>();
- }
- foreach (var tab in tabs)
- {
- tab.ModalId = ModalId;
- tab.DivClass = string.IsNullOrEmpty(tab.DivClass) ? DivClass : tab.DivClass;
- tab.LabelLayoutDefaultClass = string.IsNullOrEmpty(tab.LabelLayoutDefaultClass) ? DivClass : tab.LabelLayoutDefaultClass;
- tab.InputLayoutDefaultClass = string.IsNullOrEmpty(tab.InputLayoutDefaultClass) ? DivClass : tab.InputLayoutDefaultClass;
- tab.Parent = this;
- Tabs.Add(tab);
- }
- return this;
- }
- public ModalBodyViewModel SetId(string formId, string modalId)
- {
- FormId = formId;
- ModalId = modalId;
- return this;
- }
- public ModalBodyViewModel SetDivClass(string divClass)
- {
- DivClass = divClass;
- return this;
- }
- public ModalBodyViewModel SetLayoutClass(string labelLayoutDefaultClass, string inputLayoutDefaultClass)
- {
- LabelLayoutDefaultClass = labelLayoutDefaultClass;
- InputLayoutDefaultClass = inputLayoutDefaultClass;
- return this;
- }
- public ModalBodyViewModel SetSpecials(List<SpecialInputModel> specials)
- {
- Specials = specials;
- return this;
- }
- public Input SetDefault(Input input)
- {
- if (input.LayoutClassDefault)
- {
- if (string.IsNullOrEmpty(input.LabelLayoutClass))
- {
- input.LabelLayoutClass = LabelLayoutDefaultClass;
- }
- if (string.IsNullOrEmpty(input.InputLayoutClass))
- {
- input.InputLayoutClass = InputLayoutDefaultClass;
- }
- }
- if (input.DivClassDefault && string.IsNullOrEmpty(input.DivClass))
- {
- input.DivClass = DivClass;
- }
- input.DefaultTarget = $"#{ModalId}";
- return input;
- }
- }
- }
|