public async Task <IActionResult> Cadastrar([FromBody] PlanosViewModel plano)
 {
     try
     {
         var id = _planosService.Cadastrar(plano);
         return(Ok(ApiResult.Ok(id)));
     }
     catch (Exception e)
     {
         _logger.LogError(e.Message);
         return(UnprocessableEntity(ApiResult.Fail("Não foi possível cadastrar, favor comunicar administrador do sistema.")));
     }
 }
        public Guid Cadastrar(PlanosViewModel plano)
        {
            if (plano.DataFinalVigencia < plano.DataCadastro)
            {
                throw new Exception("Data da vigencia menor que a data do vinculo.");
            }

            if (plano.PermitePJ == 'N')
            {
                var cliente = _clientesService.ObterById(plano.ClienteId);
                if (cliente.TipoPessoa == "J")
                {
                    throw new Exception("O Plano não permite Pessoa Juridica.");
                }
            }

            return(_plano.Cadastrar(plano.ViewModelToEntity()));
        }
        public static Planos ViewModelToEntity(this PlanosViewModel plano)
        {
            if (plano == null)
            {
                return(null);
            }

            return(new Planos()
            {
                ClienteId = plano.ClienteId,
                DataCadastro = plano.DataCadastro,
                DataFinalVigencia = plano.DataFinalVigencia,
                DataInicioVigencia = plano.DataInicioVigencia,
                Id = plano.Id,
                PermitePJ = plano.PermitePJ,
                Plano = plano.Plano
            });
        }