using System.Collections.Generic;
using System.Linq;
namespace ContractService.Views.Shared.Modals
{
public class ModalTabViewModel
{
public ModalTabViewModel()
{
}
public ModalTabViewModel(string tabId, string tabName) : this()
{
TabId = tabId;
TabName = tabName;
}
public ModalTabViewModel(string tabId, string tabName, string tabContent) : this(tabId, tabName)
{
TabContent = tabContent;
}
public ModalTabViewModel(string tabId, string tabName, List inputs) : this(tabId, tabName)
{
_inputs = inputs;
}
public ModalTabViewModel(string tabId, string tabName, string tabContent, ModalBodyViewModel parent) : this(tabId, tabName, tabContent)
{
Parent = parent;
ModalId = parent.ModalId;
}
public ModalTabViewModel(string tabId, string tabName, List inputs, ModalBodyViewModel parent) : this(tabId, tabName, inputs)
{
Parent = parent;
ModalId = parent.ModalId;
}
public ModalTabViewModel(string tabId, string tabName, string labelLayoutDefaultClass, string inputLayoutDefaultClass, string divClass) : this(tabId, tabName)
{
DivClass = divClass;
LabelLayoutDefaultClass = labelLayoutDefaultClass;
InputLayoutDefaultClass = inputLayoutDefaultClass;
}
public ModalBodyViewModel Parent { get; set; }
public string TabId { get; set; }
public string TabName { get; set; }
public string TabContent { get; set; }
private List _inputs;
public List Inputs => Parent != null
? _inputs?.Select(Parent.SetDefault).ToList()
: _inputs?.Select(SetDefault).ToList();
public string ModalId { get; set; }
public string DivClass { get; set; }
public string LabelLayoutDefaultClass { get; set; }
public string InputLayoutDefaultClass { get; set; }
public ModalTabViewModel SetInputs(List inputs)
{
_inputs = inputs;
return this;
}
public ModalTabViewModel AddInput(Input input)
{
if (_inputs == null)
{
_inputs = new List();
}
_inputs.Add(input);
return this;
}
public ModalTabViewModel AddInputs(List inputs)
{
_inputs = _inputs ?? new List();
_inputs.AddRange(inputs);
return this;
}
public ModalTabViewModel SetModalId(string modalId)
{
ModalId = modalId;
return this;
}
public ModalTabViewModel SetDivClass(string divClass)
{
DivClass = divClass;
return this;
}
public ModalTabViewModel SetLayoutClass(string labelLayoutDefaultClass, string inputLayoutDefaultClass)
{
LabelLayoutDefaultClass = labelLayoutDefaultClass;
InputLayoutDefaultClass = inputLayoutDefaultClass;
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;
}
}
}