public async Task <string> RetornarInsertAsync(Dictionary <string, object> valores) { string query = string.Empty; var repositorio = new SqlClient.Repositorio(IdServidor); /* Monta cabeçalho */ query = string.Format("INSERT INTO {0}.{1}.{2} ( ", Database, Schema, Nome); for (int cont = 0; cont < Colunas.Count; cont++) { if (!Colunas[cont].IsChavePrimaria) { query += Colunas[cont].Nome + ", "; } else if (Colunas[cont].IsChaveEstrangeira) { query += Colunas[cont].Nome + ", "; } else if (!IsIdentity) { query += Colunas[cont].Nome + ", "; } } query = query.Substring(0, query.Length - 2); query += " ) VALUES ( "; /* Monta valores */ for (int cont = 0; cont < Colunas.Count; cont++) { if (!Colunas[cont].IsChavePrimaria) { string valorParametro = valores[Colunas[cont].Nome].ToString(); if (valorParametro.ToUpper() != "NULL") { if (Colunas[cont].Tipo.ToUpper() == "DATE" || Colunas[cont].Tipo.ToUpper() == "DATETIME" || Colunas[cont].Tipo.ToUpper() == "DATETIME2") { valorParametro = AjustarFormatoData(valorParametro); } if (Colunas[cont].Tipo.ToUpper() == "VARCHAR" || Colunas[cont].Tipo.ToUpper() == "CHAR" || Colunas[cont].Tipo.ToUpper() == "NVARCHAR" || Colunas[cont].Tipo.ToUpper() == "NCHAR" || Colunas[cont].Tipo.ToUpper() == "DATE" || Colunas[cont].Tipo.ToUpper() == "DATETIME" || Colunas[cont].Tipo.ToUpper() == "TIME" || Colunas[cont].Tipo.ToUpper() == "TIMESPAN" || Colunas[cont].Tipo.ToUpper() == "DATETIME2") { valorParametro = "'" + valorParametro + "'"; } else if (Colunas[cont].Tipo.ToUpper() == "BIT") { if (valorParametro.ToUpper() == bool.TrueString.ToUpper() || valorParametro.ToUpper() == "ON") { valorParametro = "1"; } else { valorParametro = "0"; } } } query += valorParametro + ", "; } else // Tratar chave primária { if (Colunas[cont].IsChaveEstrangeira) { string valorParametro = valores[Colunas[cont].Nome].ToString(); query += valorParametro + ", "; } else if (!IsIdentity) { string valorParametro = (await repositorio.RetornarProximaChavePrimaria(Database, Schema, Nome, Colunas[cont].Nome)).ToString(); query += valorParametro + ", "; } } } query = query.Substring(0, query.Length - 2); query += " )"; return(query); }