public FretePorContaModel RecuperarPeloId(int id)
        {
            FretePorContaModel ret = null;

            Connection();

            using (SqlCommand command = new SqlCommand(" SELECT * " +
                                                       "   FROM FretePorConta " +
                                                       "  WHERE Id=@Id", con))
            {
                con.Open();

                command.Parameters.AddWithValue("@Id", SqlDbType.Int).Value = id;

                var reader = command.ExecuteReader();


                if (reader.Read())
                {
                    ret = new FretePorContaModel()
                    {
                        Id     = (int)reader["Id"],
                        Codigo = (string)reader["Codigo"],
                        Nome   = (string)reader["Nome"],
                        Ativo  = (bool)reader["Ativo"]
                    };
                }
            }
            return(ret);
        }
        public JsonResult SalvarFretePorConta(FretePorContaModel fretePorContaModel)
        {
            var resultado = "OK";
            var mensagens = new List <string>();
            var idSalvo   = string.Empty;

            if (!ModelState.IsValid)
            {
                resultado = "AVISO";
                mensagens = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage).ToList();
            }
            else
            {
                try
                {
                    fretePorContaRepositorio = new FretePorContaRepositorio();
                    var id = fretePorContaRepositorio.Salvar(fretePorContaModel);

                    if (id > 0)
                    {
                        idSalvo = id.ToString();
                    }
                    else
                    {
                        resultado = "ERRO";
                    }
                }
                catch (Exception ex)
                {
                    resultado = "ERRO";
                    throw new Exception(ex.Source);
                }
            }
            return(Json(new { Resultado = resultado, Mensagens = mensagens, IdSalvo = idSalvo }));
        }
        public int Salvar(FretePorContaModel fretePorContaModel)
        {
            var ret = 0;


            var model = RecuperarPeloId(fretePorContaModel.Id);

            if (model == null)
            {
                Connection();

                using (SqlCommand command = new SqlCommand("INSERT INTO FretePorConta( Codigo,  " +
                                                           "                           Nome,    " +
                                                           "                           Ativo    " +
                                                           "                         )          " +
                                                           "                   VALUES( @Codigo, " +
                                                           "                           @Nome,   " +
                                                           "                           @Ativo   " +
                                                           "                         ); select convert( int, scope_identity() ) ", con))
                {
                    con.Open();

                    command.Parameters.AddWithValue("@Codigo", SqlDbType.VarChar).Value = fretePorContaModel.Codigo;
                    command.Parameters.AddWithValue("@Nome", SqlDbType.VarChar).Value   = fretePorContaModel.Nome;
                    command.Parameters.AddWithValue("@Ativo", SqlDbType.Int).Value      = fretePorContaModel.Ativo;

                    ret = (int)command.ExecuteScalar();
                }
            }
            else
            {
                Connection();

                using (SqlCommand command = new SqlCommand(" UPDATE FretePorConta " +
                                                           "    SET Codigo=@Codigo," +
                                                           "        Nome=@Nome," +
                                                           "        Ativo=@Ativo" +
                                                           "  WHERE Id=@Id", con))
                {
                    con.Open();

                    command.Parameters.AddWithValue("@Codigo", SqlDbType.VarChar).Value = fretePorContaModel.Codigo;
                    command.Parameters.AddWithValue("@Nome", SqlDbType.VarChar).Value   = fretePorContaModel.Nome;
                    command.Parameters.AddWithValue("@Ativo", SqlDbType.Int).Value      = fretePorContaModel.Ativo;
                    command.Parameters.AddWithValue("@Id", SqlDbType.Int).Value         = fretePorContaModel.Id;

                    if (command.ExecuteNonQuery() > 0)
                    {
                        ret = fretePorContaModel.Id;
                    }
                }
            }
            return(ret);
        }