using Gestor.Model.Attributes; using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; using Gestor.Model.Helper; using Gestor.Model.Resources; using Gestor.Model.Validation; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; namespace Gestor.Model.Domain.Financeiro { public class Planos : DomainBase, IDomain { private string _descricao; private Gestor.Model.Common.Sinal _sinal; private string _nome; [Log(true)] public bool Ativo { get; set; } [Description("DESCRIÇÃO")] [Log(true)] [Name(true)] public string Descricao { get { string str = this._descricao; if (str != null) { return str.ToUpper(); } return null; } set { this._descricao = value; string str = (this.Sinal == Gestor.Model.Common.Sinal.Credito ? "(+)" : "(-)"); this.Nome = string.Concat(value.ToUpper(), " ", str); } } [Log(true)] public string Nome { get { return this._nome.ToUpper(); } set { this._nome = value; } } [Log(true)] public Gestor.Model.Domain.Financeiro.Plano Plano { get; set; } public bool Selecionado { get; set; } [Log(true)] public Gestor.Model.Common.Sinal Sinal { get { return this._sinal; } set { this._sinal = value; string str = (value == Gestor.Model.Common.Sinal.Credito ? "(+)" : "(-)"); this.Nome = string.Concat(this.Descricao, " ", str); } } [Description("TIPO CONTA")] [Log(true)] public Gestor.Model.Domain.Financeiro.TipoConta TipoConta { get; set; } [JsonIgnore] public Func>> ValidationEvent { get { Planos plano = this; return new Func>>(plano.Validate); } } public Planos() { } public List Log() { string descricao; List tupleLists = new List(); TupleList tupleList = new TupleList(); ObservableCollection> observableCollection = new ObservableCollection>() { new Tuple("NOME", (string.IsNullOrWhiteSpace(this.Nome) ? "" : this.Nome), "") }; if (this.Plano == null) { descricao = ""; } else { Gestor.Model.Domain.Financeiro.Plano plano = this.Plano; if (plano != null) { descricao = plano.Descricao; } else { descricao = null; } } observableCollection.Add(new Tuple("PLANO", descricao, "")); observableCollection.Add(new Tuple("ATIVO", (this.Ativo ? "SIM" : "NÃO"), "")); Gestor.Model.Common.Sinal sinal = this.Sinal; observableCollection.Add(new Tuple("SINAL", this.Sinal.GetDescription(), "")); tupleList.Tuples = observableCollection; tupleLists.Add(tupleList); return tupleLists; } public List> Validate() { List> keyValuePairs = ValidationHelper.AddValue(); if (string.IsNullOrWhiteSpace(this.Descricao)) { keyValuePairs.AddValue("Descricao", Messages.Obrigatorio, true); } if (this.Plano == null) { keyValuePairs.AddValue("Plano", Messages.Obrigatorio, true); } return keyValuePairs; } } }