public Respuesta update([FromBody] Seguimiento seguimiento_actualizado, [FromUri] int id, [FromUri] int seguimiento_id) { Respuesta respuesta = new Respuesta(); respuesta.resultado = 0; respuesta.mensaje = Tools.VerifyToken(seguimiento_actualizado.sesion, Tools.crm_rol_id); if (respuesta.mensaje != "1") { return(respuesta); } try { using (MacEntities db = new MacEntities()) { //departamento id var tipo_seguimiento_id = (from s in db.tbl_seguimientos where s.nombre == seguimiento_actualizado.tipo_seguimiento select s.id).FirstOrDefault(); if (tipo_seguimiento_id == 0) { respuesta.mensaje = "Error, tipo de seguimiento no encontrado."; return(respuesta); } //departamento id var resultado_id = (from r in db.tbl_resultados where r.nombre == seguimiento_actualizado.resultado select r.id).FirstOrDefault(); if (resultado_id == 0) { respuesta.mensaje = "Error, tipo de resultado no encontrado."; return(respuesta); } var id_contacto = (from c in db.tbl_contactos where c.id == id select c.id).FirstOrDefault(); if (id_contacto == 0) { respuesta.mensaje = "Error, contacto no encontrado."; return(respuesta); } tbl_contactos_seguimientos seguimiento = db.tbl_contactos_seguimientos.Find(id); if (seguimiento == null) { respuesta.mensaje = "Error, seguimiento no encontrado."; return(respuesta); } seguimiento.id_seguimiento = tipo_seguimiento_id; seguimiento.id_resultado = resultado_id; seguimiento.id_contacto = id_contacto; seguimiento.observaciones = seguimiento_actualizado.observaciones; seguimiento.fecha = Tools.GetFullDateTimeObject(seguimiento_actualizado.fecha); db.Entry(seguimiento).State = System.Data.Entity.EntityState.Modified; db.tbl_contactos_seguimientos.Add(seguimiento); if (db.SaveChanges() < 1) { respuesta.mensaje = "Hubo un error con la actualizacion del seguimiento."; return(respuesta); } respuesta.mensaje = "Seguimiento actualizado exitosamente."; respuesta.resultado = 1; } //using } //try catch (DbEntityValidationException ex) { respuesta.mensaje = "Errores econtrados."; List <Error> error_list = new List <Error>(); foreach (var errors in ex.EntityValidationErrors) { foreach (var error in errors.ValidationErrors) { // get the error message error_list.Add(new Error(error.ErrorMessage)); } //inner foreach } //foreach respuesta.data = error_list; } //DbEntityValidationException ex catch (Exception e) { respuesta.mensaje = "Error, intente mas tarde."; respuesta.data = e; } return(respuesta); }//update
public Respuesta Index([FromUri] int id, [FromUri] string s, [FromUri] string s_type, [FromUri] string from, [FromUri] string to, [FromUri] string u, [FromUri] string t) { Search search = new Search { search_value = s, search_type = s_type, from = from, to = to, sesion = new Token() { usuario = u, token = t } }; //determinar si el campo del search es por id Respuesta respuesta = new Respuesta(); respuesta.resultado = 0; respuesta.mensaje = Tools.VerifyToken(search.sesion, Tools.crm_rol_id); if (respuesta.mensaje != "1") { return(respuesta); } if (search.search_value != null && search.search_value != "" && search.search_type != null && search.search_type != "") { string id_value = Tools.GetEntityId(search.search_type, search.search_value); if (id_value != "0") { search.search_value = id_value; } else if (search.search_type == "estatus") { if (search.search_value == "Completada") { search.search_value = "1"; } else { search.search_value = "0"; } } } //contacto Contacto contacto = new Contacto(); try { using (MacEntities db = new MacEntities()) { var estrategia_id = (from estrategia in db.tbl_contactos_estrategias where estrategia.id_contacto == id select estrategia.id_estrategia).FirstOrDefault(); var estrategia_nombre = (from estrategia in db.tbl_estrategias where estrategia.id == estrategia_id select estrategia.nombre).FirstOrDefault(); tbl_contactos contacto_db = db.tbl_contactos.Find(id); contacto.id_usuario_ejecutivo = contacto_db.id_usuario_ejecutivo; contacto.id = contacto_db.id; contacto.nombre = contacto_db.nombre; contacto.telefono = contacto_db.telefono; contacto.email = contacto_db.email; contacto.segundo_nombre = contacto_db.segundo_nombre; contacto.apellido = contacto_db.apellido; contacto.segundo_apellido = contacto_db.segundo_apellido; contacto.colonia = contacto_db.colonia; contacto.direccion = contacto_db.direccion; contacto.entre_calles = contacto_db.entre_calles; contacto.estrategia = estrategia_id.ToString(); contacto.estrategia_nombre = estrategia_nombre; //contacto.fecha_nacimiento = contacto_actualizado.fecha_nacimiento; /*contacto.sexo = contacto_db.sexo; * contacto.cod_postal = contacto_db.cod_postal; * contacto.ciudad.id = contacto_db.id_ciudad; * var ciudad = (from c in db.tbl_ciudades * where c.id == contacto_db.id * select c).FirstOrDefault(); * contacto.ciudad.nombre = ciudad.nombre; * contacto.colonia = contacto_db.colonia; * contacto.direccion = contacto_db.direccion; * contacto.entre_calles = contacto_db.entre_calles; * contacto.clave_unica = contacto_db.clave_unica; * * var ocupacion = (from o in db.tbl_ocupaciones * where o.id == contacto_db.id * select o).FirstOrDefault(); * contacto.ocupacion.id = ocupacion.id; * contacto.ocupacion.nombre = ocupacion.nombre; * contacto.empresa = contacto_db.empresa; * contacto.cod_postal_trabajo = contacto_db.cod_postal_trabajo; * contacto.telefono_trabajo = contacto_db.telefono_trabajo; * contacto.email_trabajo = contacto_db.email_trabajo; * contacto.colonia_trabajo = contacto_db.colonia_trabajo; * contacto.direccion_trabajo = contacto_db.direccion_trabajo; * contacto.celular = contacto_db.celular; * contacto.ciudad_trabajo.id = contacto_db.id_ciudad_trabajo;*/ }//using } catch (Exception e) { respuesta.mensaje = "Error, intente mas tarde."; respuesta.data = e; } try { using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["APIDB"].ConnectionString)) { //agregar fecha registro a la base de datos var query = "SELECT tbl_contactos_seguimientos.id, tbl_contactos_seguimientos.observaciones, tbl_contactos_seguimientos.fecha_registro, " + "tbl_seguimientos.nombre as seguimiento, tbl_resultados.nombre as resultado, tbl_seguimientos.icon, tbl_contactos_seguimientos.fecha, tbl_contactos_seguimientos.fecha_fin " + "FROM tbl_contactos_seguimientos inner join tbl_seguimientos on tbl_seguimientos.id = tbl_contactos_seguimientos.id_seguimiento " + "inner join tbl_resultados on tbl_resultados.id = tbl_contactos_seguimientos.id_resultado where id_contacto = @id_contacto " + "ORDER BY id desc OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY; "; if ((search.search_value != null && search.search_value != "") || (search.from != null && search.from != "")) { query = "SELECT tbl_contactos_seguimientos.id, tbl_contactos_seguimientos.observaciones, tbl_contactos_seguimientos.fecha_registro, " + "tbl_seguimientos.nombre as seguimiento, tbl_resultados.nombre as resultado , tbl_seguimientos.icon, tbl_contactos_seguimientos.fecha, tbl_contactos_seguimientos.fecha_fin " + "FROM tbl_contactos_seguimientos inner join tbl_seguimientos on tbl_seguimientos.id = tbl_contactos_seguimientos.id_seguimiento " + "inner join tbl_resultados on tbl_resultados.id = tbl_contactos_seguimientos.id_resultado where id_contacto = @id_contacto "; if (search.search_value != null && search.search_value != "") { query += " and " + search.search_type + " like @" + search.search_type + " "; } if (search.from != null && search.from != "" && (search.to == null || search.to == "")) { query += " and fecha_registro >= @desde "; } if (search.from != null && search.from != "" && search.to != null && search.to != "") { query += " and (fecha_registro >= @desde and fecha_registro <= @hasta) "; } query += " ORDER BY id desc OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY; "; } SqlCommand command = new SqlCommand(query, connection); command.Parameters.AddWithValue("@id_contacto", id); if (search.search_value != null && search.search_value != "") { command.Parameters.AddWithValue("@" + search.search_type, "%" + search.search_value + "%"); } if (search.from != null && search.from != "" && (search.to == null || search.to == "")) { command.Parameters.AddWithValue("@desde", Tools.GetFullDateTimeObject(search.from + " 00:00:00")); } if (search.from != null && search.from != "" && search.to != null && search.to != "") { command.Parameters.AddWithValue("@desde", Tools.GetFullDateTimeObject(search.from + " 00:00:00")); command.Parameters.AddWithValue("@hasta", Tools.GetFullDateTimeObject(search.to + " 23:59:59")); } connection.Open(); Seguimiento seguimiento; contacto.seguimientos = new List <Seguimiento>(); SqlDataReader rows = command.ExecuteReader(); while (rows.Read()) { seguimiento = new Seguimiento(); if (!rows.IsDBNull(0)) { seguimiento.id = rows.GetInt32(0); } else { seguimiento.id = 0; } if (!rows.IsDBNull(1)) { seguimiento.observaciones = rows.GetString(1); } else { seguimiento.observaciones = ""; } if (!rows.IsDBNull(2)) { seguimiento.fecha_registro = rows.GetDateTime(2).ToString(); } else { seguimiento.fecha_registro = ""; } if (!rows.IsDBNull(3)) { seguimiento.tipo_seguimiento = rows.GetString(3); } else { seguimiento.tipo_seguimiento = ""; } if (!rows.IsDBNull(4)) { seguimiento.resultado = rows.GetString(4); } else { seguimiento.resultado = ""; } if (!rows.IsDBNull(5)) { seguimiento.icon = rows.GetString(5); } else { seguimiento.icon = ""; } if (!rows.IsDBNull(6)) { seguimiento.fecha = rows.GetDateTime(6).ToString(); } else { seguimiento.fecha = ""; } if (!rows.IsDBNull(7)) { seguimiento.fecha = rows.GetDateTime(7).ToString(); } else { seguimiento.fecha = ""; } /* if (seguimiento != null) * { * respuesta.mensaje = "exito" + contacto.apellido; return respuesta; * } * else { respuesta.mensaje = "error"; return respuesta; }*/ contacto.seguimientos.Add(seguimiento); } rows.Close(); connection.Close(); if (contacto.seguimientos.Count < 1) { respuesta.mensaje = "Error, no se encontraton seguimientos para este contacto."; return(respuesta); } using (MacEntities db = new MacEntities()) { string estatus = ""; foreach (Seguimiento seguimiento_record in contacto.seguimientos) { tbl_contactos_tareas tarea_seg = (from seg in db.tbl_contactos_seguimientos join ta_seg in db.tbl_tareas_seguimientos on seg.id equals ta_seg.id_seguimiento join ta in db.tbl_contactos_tareas on ta_seg.id_tarea equals ta.id where seg.id == seguimiento_record.id select ta).FirstOrDefault(); seguimiento_record.tarea = new Tarea(); if (tarea_seg != null) { seguimiento_record.tarea.id = tarea_seg.id; seguimiento_record.tarea.id_evento = tarea_seg.id_evento; seguimiento_record.tarea.tarea = tarea_seg.tarea; if (tarea_seg.estatus == false) { estatus = "Pendiente"; } else { estatus = "Completada"; } seguimiento_record.tarea.estatus = estatus; seguimiento_record.tarea.fecha_agenda = tarea_seg.fecha_agenda.ToString(); seguimiento_record.tarea.fecha_registro = tarea_seg.fecha_registro.ToString(); seguimiento_record.tarea.fecha_fin = tarea_seg.fecha_fin.ToString(); } } }//using mac entities respuesta.mensaje = "Exito"; respuesta.resultado = 1; respuesta.data = contacto; } //using } //try catch (DbEntityValidationException ex) { respuesta.mensaje = "Errores econtrados."; List <Error> error_list = new List <Error>(); foreach (var errors in ex.EntityValidationErrors) { foreach (var error in errors.ValidationErrors) { // get the error message error_list.Add(new Error(error.ErrorMessage)); } //inner foreach } //foreach respuesta.data = error_list; } //DbEntityValidationException ex catch (Exception e) { respuesta.mensaje = "Error, intente mas tarde."; respuesta.data = e; } return(respuesta); }//index