using Gestor.Application.Servicos.Generic; using Gestor.Application.Servicos.Seguros; using Gestor.Application.ViewModels.Generic; using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; using System; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace Gestor.Application.ViewModels.Seguros { public class TrocarClienteViewModel : BaseSegurosViewModel { private readonly ApoliceServico _apoliceServico; private readonly ClienteServico _clienteServico; private Documento _selectedDocumento; private Cliente _selectedCliente; public Cliente SelectedCliente { get { return this._selectedCliente; } set { base.OnPropertyChanged("SelectedCliente"); this._selectedCliente = value; } } public Documento SelectedDocumento { get { return this._selectedDocumento; } set { base.OnPropertyChanged("SelectedDocumento"); this._selectedDocumento = value; } } public TrocarClienteViewModel() { this._apoliceServico = new ApoliceServico(); this._clienteServico = new ClienteServico(); } public async Task Salvar() { bool flag; Cliente cliente; Documento selectedDocumento; if (this.SelectedCliente == null) { flag = false; } else if (this.SelectedCliente.get_Id() != this.SelectedDocumento.get_Controle().get_Cliente().get_Id()) { cliente = await this._clienteServico.BuscarCliente(this.SelectedDocumento.get_Controle().get_Cliente().get_Id()); selectedDocumento = this.SelectedDocumento; this._apoliceServico.Sucesso = true; await this._apoliceServico.Save(selectedDocumento.get_Controle(), this.SelectedCliente); if (this._apoliceServico.Sucesso) { base.RegistrarAcao(string.Format("TROCOU O CLIENTE DO DOCUMENTO DE ID {0}", this.SelectedDocumento.get_Id()), this.SelectedDocumento.get_Id(), new TipoTela?(41), string.Format("CLIENTE ANTIGO: {0}\nNOVO CLIENTE: {1} ({2})", cliente.get_Nome(), this.SelectedCliente.get_Nome(), this.SelectedCliente.get_Id())); this.SelectedCliente = selectedDocumento.get_Controle().get_Cliente(); this.SelectedDocumento = selectedDocumento; flag = true; } else { flag = false; } } else { flag = false; } cliente = null; selectedDocumento = null; return flag; } } }