using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Globalization; using System.Runtime.CompilerServices; using Gestor.Model.Attributes; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class Ramo : DomainBase, IDomain, INotifyPropertyChanged { private bool _selecionado; private string _nome; private string _ramoSusep; public bool Selecionado { get { return _selecionado; } set { if (value != _selecionado) { _selecionado = value; OnPropertyChanged("Selecionado"); } } } [Log(true)] [Name(true)] [Description("RAMO")] public string Nome { get { return _nome?.ToUpper(); } set { _nome = value; } } [Log(true)] public decimal Iof { get; set; } [Log(true)] public bool Ativo { get; set; } public bool Fatura { get; set; } public string RamoSusep { get { return _ramoSusep?.ToUpper(); } set { _ramoSusep = value; } } public long CodigoSusep { get; set; } [JsonIgnore] public Func>> ValidationEvent => Validate; public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public List> Validate() { return ValidationHelper.AddValue(); } public List Log(List listCoberturas) { List list = new List { new TupleList { Tuples = new ObservableCollection> { new Tuple("NOME", string.IsNullOrWhiteSpace(Nome) ? "" : Nome, ""), new Tuple("I.O.F.", (Iof / 100m).ToString("P", new CultureInfo("pt-BR", useUserOverride: false)), ""), new Tuple("ATIVO", Ativo ? "SIM" : "NÃO", "") } } }; ObservableCollection> observableCollection = new ObservableCollection> { new Tuple("COBERTURAS$", "", "") }; foreach (CoberturaPadrao listCobertura in listCoberturas) { observableCollection.Add(new Tuple($" COBERTURA {listCoberturas.IndexOf(listCobertura) + 1}$", "", "")); observableCollection.Add(new Tuple(" DESCRIÇÃO", string.IsNullOrWhiteSpace(listCobertura.Descricao) ? "" : listCobertura.Descricao.ToUpper(), "")); observableCollection.Add(new Tuple(" PADRÃO", listCobertura.Padrao ? "SIM" : "NÃO", "")); } list.Add(new TupleList { Tuples = observableCollection }); return list; } }