Это мой последний код, и он работает нормально.
Сначала я получаю ответ от своей БД, затем я редактирую свои ответы и отправляю его обратно в конце ASP. Ответственен NET чтобы узнать, нужно ли обновить, удалить или вставить ответ.
Большое спасибо.
[Route("api/configuracorreo")]
public void Post([FromBody]ModeloEditarCorreo correo)
{
try
{
ModeloEditarCorreo correo_recibido = correo;
correo_recibido.id = correo.id;
correo_recibido.remitente = correo.remitente;
correo_recibido.nombre_proveedor = correo.nombre_proveedor;
correo_recibido.destinatario = correo.destinatario;
correo_recibido.mensaje = correo.mensaje;
correo_recibido.correos_copia = correo.correos_copia;
using (Certificados_UVM_DEVEntities dba = new Certificados_UVM_DEVEntities())
{
Models.Conf_Correo correoExistente = dba.Conf_Correo.FirstOrDefault();
if (correoExistente == null)
{
string insertCorreo = string.Format("INSERT INTO Conf_Correo (remitente, nombre_proveedor, destinatario, mensaje) VALUES ('{0}', '{1}', '{2}', '{3}')", correo.remitente, correo.nombre_proveedor, correo.destinatario, correo.mensaje);
dba.Database.ExecuteSqlCommand(insertCorreo);
foreach (string correoUnico in correo.correos_copia)
{
Models.Conf_Correo correoCreado = dba.Conf_Correo.FirstOrDefault();
string insertEmails = string.Format("Insert INTO Conf_Correo_Destinatarios (id_conf_correo, correo_copia) VALUES ('{0}', '{1}')", '1', correoCreado.id);
dba.Database.ExecuteSqlCommand(insertEmails);
}
} else
{
string queryStoreString = string.Format("UPDATE Conf_Correo SET nombre_proveedor = '{0}', destinatario = '{1}', mensaje = '{2}' WHERE id = '{3}'", correo.nombre_proveedor, correo.destinatario, correo.mensaje, correo.id);
dba.Database.ExecuteSqlCommand(queryStoreString);
string deleteEmails = string.Format("DELETE FROM Conf_Correo_Destinatarios WHERE id_conf_correo = '{0}'", correo.id);
dba.Database.ExecuteSqlCommand(deleteEmails);
foreach( string correoUnico in correo.correos_copia)
{
string insertEmails = string.Format("Insert INTO Conf_Correo_Destinatarios (id_conf_correo, correo_copia) VALUES ('{0}', '{1}')", correo.id, correoUnico);
dba.Database.ExecuteSqlCommand(insertEmails);
}
}
}
}
catch (Exception ex)
{
}
}
public class ModeloEditarCorreo
{
public int id { get; set; }
public string remitente { get; set; }
public string nombre_proveedor { get; set; }
public string destinatario { get; set; }
public string mensaje { get; set; }
public string[] correos_copia { get; set; }
}
$http.get(DIR.hostSelected + 'api/configuracioncorreo').
then(function(response) {
var correos = response.data.correos_copia.map(function(e){
return e["correo_copia"];
});
var correos_copia = correos.join(", ");
$scope.isRemitenteDisabled = response.data.remitente ? true : false;
$scope.datosOriginales = {
id: response.data.id,
remitente: response.data.remitente,
proveedor: response.data.nombre_proveedor,
correoDestinatario: response.data.destinatario,
copia: correos_copia,
mensaje: response.data.mensaje
};
});
$scope.validarCorreo = function() {
if ($scope.correoDestinatario != $scope.confirmaCorreo) {
$scope.IsMatch=true;
return false;
}
$scope.IsMatch=false;
};
$scope.cancelar = function() {
$window.location.reload();
};
$scope.actualizaDatos = function(){
var ccActual = [];
ccActual = $scope.datosOriginales.copia.split(", ");
$scope.editaDatos = {};
$scope.editaDatos = angular.copy($scope.datosOriginales);
$scope.datosActualizados = $scope.editaDatos;
var datosActuales = {
'id': $scope.datosActualizados.id,
'remitente': $scope.datosActualizados.remitente,
'nombre_proveedor': $scope.datosActualizados.proveedor,
'destinatario': $scope.datosActualizados.correoDestinatario,
'correos_copia': ccActual,
'mensaje': $scope.datosActualizados.mensaje
};
$scope.isDisabled = true;
console.log($scope.datosActualizados);
console.log(ccActual)
var config = { headers: {'Content-Type': 'application/json;charset=utf-8'}}
$http.post(DIR.hostSelected + 'api/configuracorreo', datosActuales, config)
.then(function (response) {
console.log(response);
}, function (response) {
console.log("error..");
});
};