using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; using Gestor.Model.Attributes; using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Gestor.Model.Validation; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class Seguradora : DomainBase, IDomain, INotifyPropertyChanged { private bool _selecionado; private string _nome; private string _susep; private string _assistencia; private string _documento; private string _observacao; private string _codigo; private string _codigoSusep; private string _codigoSeguradora; private string _nomeSocial; private string _nomeSocialBanco; public bool Selecionado { get { return _selecionado; } set { if (value != _selecionado) { _selecionado = value; OnPropertyChanged("Selecionado"); } } } [Name(true)] [Log(true)] [Description("SEGURADORA")] public string Nome { get { return _nome?.ToUpper(); } set { _nome = value; } } [Log(true)] [Description("APELIDO")] public string NomeSocialBanco { get { return _nomeSocialBanco?.ToUpper(); } set { _nomeSocialBanco = value; } } public string NomeSocial { get { return _nomeSocial?.ToUpper(); } set { _nomeSocial = value; if (!string.IsNullOrWhiteSpace(value)) { NomeSocialBanco = ((NomeSocialBanco == " ") ? "" : value); return; } long id = base.Id; if (id <= 694) { if (id <= 678) { long num = id - 1; if ((ulong)num <= 606uL) { switch (num) { case 5L: case 6L: case 7L: case 19L: case 20L: case 21L: case 22L: case 23L: case 28L: case 29L: case 30L: case 31L: case 35L: case 36L: case 37L: case 38L: case 42L: case 43L: case 44L: case 45L: case 46L: case 47L: case 49L: case 50L: case 51L: case 57L: case 58L: case 61L: case 62L: case 66L: case 67L: case 68L: case 70L: case 71L: case 72L: case 73L: case 74L: case 75L: case 76L: case 77L: case 78L: case 79L: case 80L: case 81L: case 82L: case 83L: case 84L: case 85L: case 86L: case 87L: case 97L: case 101L: case 102L: case 103L: case 104L: case 109L: case 110L: case 113L: case 114L: case 118L: case 121L: case 122L: case 123L: case 124L: case 127L: case 131L: case 132L: case 133L: case 134L: case 135L: case 136L: case 137L: case 138L: case 139L: case 140L: case 141L: case 142L: case 143L: case 146L: case 147L: case 148L: case 149L: case 150L: case 153L: case 154L: case 155L: case 156L: case 157L: case 158L: case 159L: case 162L: case 163L: case 164L: case 165L: case 166L: case 167L: case 168L: case 169L: case 170L: case 171L: case 172L: case 173L: case 174L: case 175L: case 179L: case 182L: case 183L: case 186L: case 187L: case 189L: case 190L: case 191L: case 192L: case 193L: case 194L: case 195L: case 198L: case 199L: case 202L: case 203L: case 204L: case 207L: case 208L: case 209L: case 210L: case 211L: case 214L: case 219L: case 220L: case 223L: case 224L: case 227L: case 228L: case 229L: case 233L: case 234L: case 237L: case 238L: case 239L: case 240L: case 244L: case 245L: case 246L: case 247L: case 250L: case 252L: case 253L: case 256L: case 261L: case 262L: case 263L: case 270L: case 276L: case 277L: case 278L: case 279L: case 280L: case 281L: case 282L: case 286L: case 287L: case 288L: case 300L: case 301L: case 302L: case 303L: case 304L: case 305L: case 306L: case 312L: case 313L: case 314L: case 315L: case 316L: case 329L: case 331L: case 332L: case 333L: case 334L: case 335L: case 338L: case 339L: case 341L: case 342L: case 343L: case 344L: case 350L: case 357L: case 358L: case 359L: case 360L: case 361L: case 362L: case 363L: case 366L: case 367L: case 368L: case 369L: case 370L: case 371L: case 373L: case 376L: case 377L: case 381L: case 382L: case 383L: case 388L: case 389L: case 390L: case 391L: case 392L: case 393L: case 396L: case 397L: case 402L: case 403L: case 404L: case 405L: case 406L: case 407L: case 408L: case 409L: case 410L: case 413L: case 414L: case 415L: case 419L: case 420L: case 421L: case 422L: case 425L: case 433L: case 434L: case 442L: case 443L: case 444L: case 451L: case 452L: case 453L: case 454L: case 457L: case 460L: case 461L: case 462L: case 463L: case 464L: case 467L: case 468L: case 469L: case 470L: case 472L: case 473L: case 488L: case 495L: case 496L: case 502L: case 504L: case 505L: case 506L: case 510L: case 511L: case 512L: case 519L: case 524L: case 525L: case 526L: case 529L: case 530L: case 531L: case 532L: case 533L: case 534L: case 535L: case 536L: case 552L: case 555L: case 562L: case 563L: case 564L: case 565L: case 566L: case 567L: case 568L: case 575L: case 576L: case 577L: case 578L: case 580L: case 585L: case 586L: case 587L: case 588L: case 589L: case 592L: case 596L: case 598L: case 599L: case 600L: case 601L: goto IL_0ba0; case 1L: case 2L: case 3L: case 4L: NomeSocial = "ACE"; return; case 11L: case 12L: case 13L: NomeSocial = "ALFA"; return; case 17L: case 18L: goto IL_0be9; case 88L: case 89L: case 90L: case 91L: case 92L: case 583L: NomeSocial = "BRADESCO"; return; case 48L: case 243L: NomeSocial = "GENERALI"; return; case 257L: case 258L: case 259L: case 260L: case 569L: case 597L: NomeSocial = "HDI"; return; case 290L: case 291L: case 295L: case 296L: goto IL_0c19; case 307L: case 308L: case 309L: goto IL_0c25; case 317L: case 318L: case 319L: case 320L: case 321L: case 322L: case 323L: case 324L: case 325L: case 326L: case 327L: case 328L: goto IL_0c31; case 330L: case 542L: case 561L: NomeSocial = "YASUDA MARITIMA"; return; case 345L: case 346L: case 347L: NomeSocial = "MITSUI"; return; case 398L: case 399L: case 400L: case 401L: case 553L: case 554L: case 573L: goto IL_0c55; case 474L: case 475L: case 476L: case 477L: case 478L: case 479L: case 480L: case 481L: case 482L: case 483L: case 484L: case 485L: case 486L: case 487L: case 557L: case 579L: goto IL_0c61; case 497L: case 498L: case 499L: case 500L: case 501L: NomeSocial = "TOKIO"; return; case 543L: case 544L: case 545L: case 546L: case 547L: case 548L: case 549L: case 550L: case 551L: NomeSocial = "ZURICH"; return; case 471L: case 594L: goto IL_0c85; case 560L: case 570L: goto IL_0c91; case 178L: case 251L: NomeSocial = "GRALHA AZUL"; return; case 69L: NomeSocial = "AZUL"; return; case 215L: NomeSocial = "ESSOR"; return; case 130L: goto IL_0ccd; case 99L: NomeSocial = "BRASIL VEÍCULOS"; return; case 0L: NomeSocial = "ABSOLUTA"; return; case 8L: case 9L: case 517L: case 518L: NomeSocial = "AIG"; return; case 10L: NomeSocial = "AJAX"; return; case 14L: case 15L: case 16L: case 176L: case 177L: NomeSocial = "ALIANÇA"; return; case 32L: case 33L: case 34L: NomeSocial = "APLUB"; return; case 24L: case 25L: case 26L: case 180L: NomeSocial = "ALLSEG"; return; case 39L: case 40L: NomeSocial = "ARCH"; return; case 41L: NomeSocial = "ARGO"; return; case 52L: case 53L: case 54L: case 55L: case 56L: NomeSocial = "ATLANTICA"; return; case 59L: case 60L: NomeSocial = "AUSTRAL"; return; case 63L: case 64L: case 65L: case 602L: NomeSocial = "AXA"; return; case 93L: NomeSocial = "BRASIL LIBANO"; return; case 94L: NomeSocial = "BRASILCAP"; return; case 95L: case 96L: NomeSocial = "BRASILPREV"; return; case 98L: case 100L: NomeSocial = "BRASILUSITANA"; return; case 105L: case 106L: case 107L: case 108L: case 372L: NomeSocial = "CAIXA"; return; case 128L: case 129L: NomeSocial = "CHARTIS"; return; case 115L: case 116L: case 117L: NomeSocial = "CARDIF"; return; case 111L: case 112L: NomeSocial = "CAPEMISA"; return; case 119L: case 120L: NomeSocial = "CASTELLO"; return; case 125L: case 126L: NomeSocial = "CESCEBRASIL"; return; case 151L: case 152L: case 188L: case 416L: case 417L: case 418L: NomeSocial = "REAL"; return; case 160L: case 161L: NomeSocial = "URBANIA"; return; case 181L: NomeSocial = "EXCELSIOR"; return; case 144L: case 184L: case 185L: NomeSocial = "INTERNACIONAL"; return; case 196L: case 197L: NomeSocial = "CREDITO Y CAUCIAN"; return; case 200L: case 201L: NomeSocial = "CRUZEIRO DO SUL"; return; case 205L: case 206L: NomeSocial = "ECC"; return; case 212L: case 213L: NomeSocial = "EQUITATIVA"; return; case 216L: case 217L: case 218L: NomeSocial = "EULER HERMES"; return; case 221L: case 222L: NomeSocial = "EVEREST"; return; case 225L: case 226L: NomeSocial = "FACTORY"; return; case 230L: case 231L: case 232L: NomeSocial = "FEDERAL"; return; case 235L: case 236L: NomeSocial = "FINANCIAL"; return; case 241L: case 242L: NomeSocial = "GENERAL"; return; case 248L: case 249L: NomeSocial = "GNPP"; return; case 254L: case 255L: NomeSocial = "HANNOVER"; return; case 264L: case 265L: case 266L: case 267L: case 268L: case 269L: NomeSocial = "HSBC"; return; case 271L: case 272L: NomeSocial = "ICATU"; return; case 273L: case 274L: NomeSocial = "IF P&C INSURANCE"; return; case 275L: NomeSocial = "INDIANA"; return; case 283L: case 284L: case 285L: case 603L: NomeSocial = "KOVR"; return; case 145L: case 289L: case 292L: case 293L: case 294L: NomeSocial = "ITAÉ"; return; case 297L: case 298L: case 299L: NomeSocial = "J. MALUCELLI"; return; case 310L: case 311L: NomeSocial = "LIDERANÇA"; return; case 336L: case 337L: NomeSocial = "MBM"; return; case 348L: case 349L: NomeSocial = "MONGERAL"; return; case 351L: case 352L: case 353L: case 354L: case 355L: case 356L: NomeSocial = "MONTEPIO"; return; case 364L: case 365L: case 380L: NomeSocial = "NATIONAL"; return; case 374L: case 375L: NomeSocial = "NOVA YORK"; return; case 378L: case 379L: NomeSocial = "ODYSSEY"; return; case 384L: case 385L: NomeSocial = "PARANÁ"; return; case 386L: case 387L: NomeSocial = "PARIS"; return; case 394L: case 395L: NomeSocial = "PLANALTO"; return; case 411L: case 412L: NomeSocial = "PRUDENTIAL"; return; case 423L: case 424L: NomeSocial = "ROYAL & SUN ALLIANCE"; return; case 426L: case 427L: case 428L: NomeSocial = "SABEMI"; return; case 429L: case 430L: case 431L: case 432L: NomeSocial = "SAFRA"; return; case 435L: case 436L: case 437L: NomeSocial = "SANTANDER"; return; case 438L: case 439L: NomeSocial = "SANTOS"; return; case 440L: case 441L: NomeSocial = "SANTOS"; return; case 445L: case 446L: case 447L: case 448L: NomeSocial = "SCOR"; return; case 449L: case 450L: NomeSocial = "SDB"; return; case 455L: case 456L: NomeSocial = "MINEIRA"; return; case 458L: case 459L: NomeSocial = "PONTUAL"; return; case 465L: case 466L: NomeSocial = "SIRIUS"; return; case 489L: case 490L: case 491L: case 492L: case 493L: case 494L: NomeSocial = "SWISS"; return; case 503L: NomeSocial = "TOTAL"; return; case 507L: case 508L: case 509L: NomeSocial = "TREVO"; return; case 513L: case 514L: case 515L: case 516L: NomeSocial = "UNIÃO"; return; case 520L: case 521L: case 584L: case 595L: goto IL_102d; case 522L: case 523L: NomeSocial = "UNIVERSAL"; return; case 527L: case 528L: NomeSocial = "VALOR CAPITALIZAÇÃO"; return; case 537L: case 538L: case 539L: case 540L: case 541L: NomeSocial = "XL"; return; case 556L: NomeSocial = "SUHAI"; return; case 558L: NomeSocial = "SANCOR"; return; case 559L: NomeSocial = "AGROBRASIL"; return; case 571L: case 572L: case 574L: case 605L: case 606L: goto IL_1081; case 581L: NomeSocial = "SANTA CASA"; return; case 582L: NomeSocial = "AMEX"; return; case 27L: case 590L: case 591L: case 593L: goto IL_10a5; case 604L: NomeSocial = "BANCO DO BRASIL"; return; case 340L: goto IL_10bd; } } long num2 = id - 621; if ((ulong)num2 <= 57uL) { switch (num2) { case 14L: goto IL_0be9; case 29L: goto IL_0c25; case 57L: goto IL_0c31; case 20L: case 22L: case 53L: goto IL_0c55; case 43L: goto IL_0c61; case 21L: goto IL_0c91; case 9L: case 18L: NomeSocial = "ALIRO"; return; case 0L: case 3L: case 24L: case 32L: case 33L: case 34L: case 35L: case 36L: case 37L: case 41L: case 42L: goto IL_102d; case 55L: goto IL_1081; case 28L: goto IL_10a5; case 10L: goto IL_10bd; case 11L: NomeSocial = "VR"; return; case 15L: NomeSocial = "HS"; return; case 45L: NomeSocial = "AFFINITY"; return; case 46L: NomeSocial = "BR"; return; case 52L: NomeSocial = "YAMAHA"; return; case 56L: NomeSocial = "EMBRACON"; return; } } } else { if (id == 683) { goto IL_102d; } long num3 = id - 687; if ((ulong)num3 <= 3uL) { switch (num3) { case 1L: goto IL_0ba0; case 0L: goto IL_0c19; case 3L: goto IL_102d; case 2L: NomeSocial = "SÃO LUCAS"; return; } } if (id == 694) { goto IL_0c55; } } } else if (id <= 716) { long num4 = id - 703; if ((ulong)num4 <= 8uL) { switch (num4) { case 2L: case 3L: case 5L: case 7L: goto IL_0ba0; case 1L: case 4L: case 8L: goto IL_0c31; case 0L: case 6L: goto IL_102d; } } if (id == 716) { goto IL_102d; } } else { if (id == 717) { goto IL_0ccd; } if (id == 734) { NomeSocial = "RC"; return; } if (id == 741) { goto IL_0c85; } } goto IL_0ba0; IL_0c19: NomeSocial = "ITAÚ"; return; IL_0c85: NomeSocial = "SOMPO"; return; IL_0ccd: NomeSocial = "CHUBB"; return; IL_0c61: NomeSocial = "SULAMERICA"; return; IL_0ba0: NomeSocialBanco = ((base.Id == 0L) ? " " : NomeSocial); NomeSocial = Nome ?? ""; return; IL_0c91: NomeSocial = "SURA"; return; IL_0c25: NomeSocial = "YELUM"; return; IL_0c31: NomeSocial = "MAPFRE"; return; IL_0c55: NomeSocial = "PORTO SEGURO"; return; IL_1081: NomeSocial = "SÃO FRANCISCO"; return; IL_102d: NomeSocial = "UNIMED"; return; IL_0be9: NomeSocial = "ALLIANZ"; return; IL_10bd: NomeSocial = "METLIFE"; return; IL_10a5: NomeSocial = "AMIL"; } } [Log(true)] public string Susep { get { return _susep?.ToUpper(); } set { _susep = value; } } [Log(true)] public string Assistencia { get { return _assistencia?.ToUpper(); } set { _assistencia = value; } } [Log(true)] public string Documento { get { return _documento?.ToUpper(); } set { _documento = value; } } [Log(true)] public bool Ativo { get; set; } [Log(true)] public decimal? Tolerancia { get; set; } [Log(true)] public decimal? ToleranciaPremio { get; set; } [Log(true)] public string Observacao { get { return _observacao; } set { _observacao = value; } } [Log(true)] [Description("LINK APP ANDROID")] public string LinkAppAndroid { get; set; } [Log(true)] [Description("LINK APP IOS")] public string LinkAppIos { get; set; } public string Usuario { get; set; } public string Senha { get; set; } public string Codigo { get { return _codigo?.ToUpper(); } set { _codigo = value; } } public string CodigoSusep { get { return _codigoSusep?.ToUpper(); } set { _codigoSusep = value; } } public long? IdAggilizador { get; set; } public string CodigoSeguradora { get { return _codigoSeguradora?.ToUpper(); } set { _codigoSeguradora = value; } } public List Contatos { get; set; } public List Enderecos { get; set; } public string CustomId { 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() { List> list = ValidationHelper.AddValue(); if (!string.IsNullOrWhiteSpace(Documento) && !Documento.ValidacaoDocumento()) { list.AddValue("Documento", Messages.Invalido); } decimal? tolerancia = Tolerancia; decimal num = 999; if ((tolerancia.GetValueOrDefault() > num) & tolerancia.HasValue) { list.AddValue("Tolerancia", Messages.Invalido); } tolerancia = ToleranciaPremio; num = 999999; if ((tolerancia.GetValueOrDefault() > num) & tolerancia.HasValue) { list.AddValue("ToleranciaPremio", Messages.Invalido); } return list; } public List Log() { List list = new List { new TupleList { Tuples = new ObservableCollection> { new Tuple("SEGURADORA", string.IsNullOrWhiteSpace(Nome) ? "" : Nome, ""), new Tuple("CNPJ", string.IsNullOrWhiteSpace(Documento) ? "" : Documento, ""), new Tuple("ASSISTÊNCIA 24 HORAS", string.IsNullOrWhiteSpace(Assistencia) ? "" : Assistencia, ""), new Tuple("SUSEP", string.IsNullOrWhiteSpace(Susep) ? "" : Susep, ""), new Tuple("CÓDIGO COMPANHIA", string.IsNullOrWhiteSpace(Codigo) ? "" : Codigo, ""), new Tuple("TOLERÂNCIA DE COMISSÃO", (!Tolerancia.HasValue) ? "" : Tolerancia?.ToString(), ""), new Tuple("TOLERÂNCIA DE PRÊMIO", (!ToleranciaPremio.HasValue) ? "" : ToleranciaPremio?.ToString(), ""), new Tuple("SEGURADORA ATIVA", Ativo ? "SIM" : "NÃO", ""), new Tuple("OBSERVAÇÃO", string.IsNullOrWhiteSpace(Observacao) ? "" : Observacao, "") } } }; if (Contatos != null) { ObservableCollection> observableCollection = new ObservableCollection> { new Tuple("CONTATOS$", "", "") }; foreach (SeguradoraContato contato in Contatos) { observableCollection.Add(new Tuple($" CONTATO {Contatos.IndexOf(contato) + 1}$", "", "")); observableCollection.Add(new Tuple(" NOME", string.IsNullOrWhiteSpace(contato.NomeContato) ? "" : contato.NomeContato.ToUpper(), "")); object item; if (contato.Tipo.HasValue) { TipoTelefone? tipo = contato.Tipo; item = (tipo.HasValue ? tipo.GetValueOrDefault().GetDescription() : null); } else { item = ""; } observableCollection.Add(new Tuple(" TIPO TELEFONE", (string)item, "")); observableCollection.Add(new Tuple(" PREFIXO", string.IsNullOrWhiteSpace(contato.Prefixo) ? "" : contato.Prefixo, "")); observableCollection.Add(new Tuple(" TELEFONE", string.IsNullOrWhiteSpace(contato.Numero) ? "" : contato.Numero, "")); } list.Add(new TupleList { Tuples = observableCollection }); } if (Enderecos != null) { ObservableCollection> observableCollection2 = new ObservableCollection> { new Tuple("ENDEREÇOS$", "", "") }; foreach (SeguradoraEndereco endereco in Enderecos) { observableCollection2.Add(new Tuple($" ENDEREÇO {Enderecos.IndexOf(endereco) + 1}$", "", "")); observableCollection2.Add(new Tuple(" TIPO DO ENDEREÇO", endereco.Tipo.GetDescription(), "")); observableCollection2.Add(new Tuple(" CEP", string.IsNullOrWhiteSpace(endereco.Cep) ? "" : endereco.Cep, "")); observableCollection2.Add(new Tuple(" ENDEREÇO", string.IsNullOrWhiteSpace(endereco.Endereco) ? "" : endereco.Endereco, "")); observableCollection2.Add(new Tuple(" NÚMERO", string.IsNullOrWhiteSpace(endereco.Numero) ? "" : endereco.Numero, "")); observableCollection2.Add(new Tuple(" COMPLEMENTO", string.IsNullOrWhiteSpace(endereco.Complemento) ? "" : endereco.Complemento, "")); observableCollection2.Add(new Tuple(" BAIRRO", string.IsNullOrWhiteSpace(endereco.Bairro) ? "" : endereco.Bairro, "")); observableCollection2.Add(new Tuple(" CIDADE", string.IsNullOrWhiteSpace(endereco.Cidade) ? "" : endereco.Cidade, "")); observableCollection2.Add(new Tuple(" ESTADO", string.IsNullOrWhiteSpace(endereco.Estado) ? "" : endereco.Estado, "")); } list.Add(new TupleList { Tuples = observableCollection2 }); } return list; } }