public async Task <object> GetInicializacion([FromQuery] string guid) { guid = guid.ToLower(); var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, (string)Miscelanea.Configuracion.Get.api + "custom_fields.json"); request.Headers.Add("Authorization", "Basic YWRtaW46YW51bHZlaGU="); var respuesta = await client.SendAsync(request); dynamic payloadRespuesta = JObject.Parse(await respuesta.Content.ReadAsStringAsync()).ToObject(typeof(ExpandoObject)); var concesionarios = ((List <dynamic>)((List <dynamic>)payloadRespuesta.custom_fields) .Find(elem => elem.name == "Agencia").possible_values) .FindAll(elem => Miscelanea.Util.StringToSha1(elem.value).ToLower().StartsWith(guid)) .Select(elem => (string)elem.value) .ToList(); if (concesionarios.Count != 1) { return(new { id_agencia = 0, modulos = (object)null }); } var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); var ids = qb.Table("ma.concesionarios") .Where("nombre", concesionarios[0]) .Select("id") .ExecuteListDynamic(); if (ids.Count != 1) { return new { id_agencia = 0, modulos = (object)null } } ; return(new { id_agencia = ids[0].id, nombre_agencia = concesionarios[0], modulos = qb.Table("ma.modulos") .Select("id", "categoria", "modulo") .ExecuteListDynamic() }); }
public object CrearSolicitud([FromForm] CrearSolicitudModel payload) { var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); int id = 0; qb.Transaction(trx => { id = trx.Table("ma.solicitudes") .Insert(new { payload.id_agencia, payload.id_modulo, payload.asunto, payload.descripcion, payload.no_cita, payload.no_orden, payload.no_placas, fecha_registro = trx.Raw("getutcdate()"), fecha_actualizacion = trx.Raw("getutcdate()"), estado = "abierta" }, new string[] { "inserted.id" }) .ExecuteListDynamic()[0].id; if (payload.evidencias != null) { if (!Directory.Exists("wwwroot/img/" + DateTime.UtcNow.ToString("yyyy-MM-dd"))) { Directory.CreateDirectory("wwwroot/img/" + DateTime.UtcNow.ToString("yyyy-MM-dd")); } foreach (var elem in payload.evidencias) { var archivo = DateTime.UtcNow.ToString("yyyy-MM-dd") + "/" + Guid.NewGuid().ToString("N") + "." + HeyRed.Mime.MimeTypesMap.GetExtension(elem.ContentType); using (var fs = new FileStream("wwwroot/img/" + archivo, FileMode.Create)) elem.CopyTo(fs); trx.Table("ma.evidencias") .Insert(new { id_solicitud = id, ruta = archivo }) .Execute(); } } }); EnviarEmail(id, Miscelanea.Configuracion.Get.plantillasCorreo.solicitudRegistrada.asunto, Miscelanea.Configuracion.Get.plantillasCorreo.solicitudRegistrada.cuerpo, true); EnviarEmail(id, Miscelanea.Configuracion.Get.plantillasCorreo.solicitudRegistradaInterno.asunto, Miscelanea.Configuracion.Get.plantillasCorreo.solicitudRegistradaInterno.cuerpo, false); return(null); }
public object CrearAsunto([FromForm] CrearAsuntoModel payload) { var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); int id = 0; DateTime fecha_fin = DateTime.ParseExact(payload.fecha_fin, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); qb.Transaction(trx => { id = trx.Table("ma.asuntos") .Insert(new { payload.id_area, payload.id_departamento, payload.usuario_asignado, payload.usuario_creacion, payload.descripcion, payload.interno_externo, fecha_fin, payload.asunto, fecha_registro = trx.Raw("getutcdate()"), fecha_actualizacion = trx.Raw("getutcdate()"), estado = "abierta" }, new string[] { "inserted.id" }) .ExecuteListDynamic()[0].id; if (payload.evidencias != null) { if (!Directory.Exists("wwwroot/img/" + DateTime.UtcNow.ToString("yyyy-MM-dd"))) { Directory.CreateDirectory("wwwroot/img/" + DateTime.UtcNow.ToString("yyyy-MM-dd")); } foreach (var elem in payload.evidencias) { var archivo = DateTime.UtcNow.ToString("yyyy-MM-dd") + "/" + Guid.NewGuid().ToString("N") + "." + HeyRed.Mime.MimeTypesMap.GetExtension(elem.ContentType); using (var fs = new FileStream("wwwroot/img/" + archivo, FileMode.Create)) elem.CopyTo(fs); trx.Table("ma.evidencias") .Insert(new { id_solicitud = id, ruta = archivo }) .Execute(); } } }); return(null); }
public object loginConfig([FromQuery] string token) { var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); var bitesToken = Convert.FromBase64String(token); var strToken = System.Text.ASCIIEncoding.ASCII.GetString(bitesToken); var usuario = strToken.Split(':')[0]; var user = qb.Table("ma.usuario") .Where("usuario", usuario) .Where("token", token) .Select("id", "id_perfil", "id_area", "id_departamento", "nombre", "usuario") .ExecuteListDynamic(); if (user.Count != 1) { return new{ usuario = (object)null, usuarios = (object)null, departamentos = (object)null } } ; else { return new{ usuario = user, area = qb.Table("ma.area") .Where("id", user[0].id_area) .Select("id", "nombre") .ExecuteListDynamic(), usuarios = qb.Table("ma.usuario") .Where("id_area", user[0].id_area) .Select("id", "nombre", "id_departamento", "usuario") .ExecuteListDynamic(), departamentos = qb.Table("ma.departamento") .Select("id", "nombre") .ExecuteListDynamic(), areas = qb.Table("ma.area") .Select("id", "nombre") .ExecuteListDynamic() } }; }
public object ValidarToken([FromQuery] string token) { var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); var bitesToken = Convert.FromBase64String(token); var strToken = System.Text.ASCIIEncoding.ASCII.GetString(bitesToken); var usuario = strToken.Split(':')[0]; var user = qb.Table("ma.usuario") .Where("usuario", usuario) .Where("token", token) .Select("id") .ExecuteListDynamic(); if (user.Count != 1) { return(false); } else { return(true); } /*return null;*/ }
public object Solicitudes([FromBody] JObject payloadJO) { dynamic payload = payloadJO.ToObject(typeof(ExpandoObject)); var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); var qSolicitudes = qb.Table("ma.solicitudes as s") .Join("ma.concesionarios as c", "s.id_agencia", "c.id") .Join("ma.modulos as m", "s.id_modulo", "m.id") .Join("ma.solicitudes_estados as se", "s.id", "se.id_solicitud") .LeftJoin("usuarios.v_usuarios as u", "u.usuario", "s.usuario_asignado") .Select("s.id", "s.asunto", "se.estado", "s.id_agencia", "c.nombre as nombre_agencia", "m.id as id_modulo", "m.categoria as nombre_categoria", "m.modulo as nombre_modulo", "s.descripcion", "s.email", "s.fecha_registro", "se.id_peticion_redmine", "se.fecha_actualizacion", "s.no_orden", "s.no_placas", "s.no_cita", "s.motivo_cierre", "s.detalle_cierre", "s.usuario_asignado", "u.nombre as nombre_usuario_asignado", "se.fecha_fin"); if (((IDictionary <string, object>)payload).ContainsKey("idAgencia") && payload.idAgencia != 0) { qSolicitudes.Where("s.id_agencia", (object)payload.idAgencia); } DateTime?fechaInicio = !string.IsNullOrWhiteSpace((string)payload.fechaInicio) ? DateTime.ParseExact(payload.fechaInicio, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture) : null; DateTime?fechaFin = !string.IsNullOrWhiteSpace((string)payload.fechaFin) ? DateTime.ParseExact(payload.fechaFin, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture) : null; if (fechaInicio == null && fechaFin != null) { fechaInicio = fechaFin; fechaFin = null; } if (fechaInicio != null && fechaFin != null) { qSolicitudes.WhereRaw("cast(?? as date) between ? and ?", "s.fecha_registro", fechaInicio, fechaFin); } else if (fechaInicio != null && fechaFin == null) { qSolicitudes.WhereRaw("cast(?? as date) = ?", "s.fecha_registro", fechaInicio); } else { qSolicitudes.Limit(100); } if (!string.IsNullOrWhiteSpace((string)payload.pais)) { qSolicitudes.Where("c.pais", (string)payload.pais); } if (!string.IsNullOrWhiteSpace((string)payload.marca)) { qSolicitudes.Where("c.marca", (string)payload.marca); } if (!string.IsNullOrWhiteSpace((string)payload.grupo)) { qSolicitudes.Where("c.grupo", (string)payload.grupo); } if (!string.IsNullOrWhiteSpace((string)payload.estado)) { qSolicitudes.Where("se.estado", (string)payload.estado); } var solicitudes = qSolicitudes.ExecuteListDynamic(); foreach (var solicitud in solicitudes) { var ds = (IDictionary <string, object>)solicitud; ds["contactos"] = qb.Table("ma.concesionarios_contactos") .Where("id_concesionario", ds["id_agencia"]) .Select("rv", "nombre", "cargo", "telefono", "email") .ExecuteListDynamic(); ds["evidencias"] = qb.Table("ma.evidencias") .Where("id_solicitud", ds["id"]) .Select("id", "ruta") .ExecuteListDynamic(); } return(new { solicitudes, motivosCierre = db.Table("ma.motivos_cierre") .Select("id", "descripcion") .ExecuteDataTable(), usuarios = db.Table("usuarios.v_usuarios") .Select("usuario", "nombre") .ExecuteDataTable() }); }
public object GetSolicitudesPendientes([FromBody] JObject payloadJO) { dynamic payload = payloadJO.ToObject(typeof(ExpandoObject)); var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); var qSolicitudes = qb.Table("ma.solicitudes as s") .Join("ma.concesionarios as c", "s.id_agencia", "c.id") .Join("ma.modulos as m", "s.id_modulo", "m.id") .Join("ma.solicitudes_estados as se", "s.id", "se.id_solicitud") .LeftJoin("usuarios.v_usuarios as u", "u.usuario", "s.usuario_asignado") .Select("s.id", "s.asunto", "se.estado", "s.id_agencia", "c.nombre as nombre_agencia", "m.id as id_modulo", "m.categoria as nombre_categoria", "m.modulo as nombre_modulo", "s.descripcion", "s.email", "s.fecha_registro", "se.fecha_actualizacion", "se.id_peticion_redmine", "s.no_orden", "s.no_placas", "s.no_cita", "s.motivo_cierre", "s.detalle_cierre", "s.usuario_asignado", "u.nombre as nombre_usuario_asignado", "se.fecha_fin") .Where("s.estado", "abierta"); if ((int)payload.idAgencia != 0) { qSolicitudes.Where("s.id_agencia", payload.idAgencia); } if (!string.IsNullOrWhiteSpace((string)payload.usuario)) { qSolicitudes.Where("s.usuario_asignado", (string)payload.usuario); } var solicitudes = qSolicitudes.ExecuteListDynamic(); foreach (var solicitud in solicitudes) { var ds = (IDictionary <string, object>)solicitud; ds["contactos"] = qb.Table("ma.concesionarios_contactos") .Where("id_concesionario", ds["id_agencia"]) .Select("rv", "nombre", "cargo", "telefono", "email") .ExecuteListDynamic(); ds["evidencias"] = qb.Table("ma.evidencias") .Where("id_solicitud", ds["id"]) .Select("id", "ruta") .ExecuteListDynamic(); } return(new { solicitudes, motivosCierre = db.Table("ma.motivos_cierre") .Select("id", "descripcion") .ExecuteDataTable(), usuarios = db.Table("usuarios.v_usuarios") .Select("usuario", "nombre") .ExecuteDataTable() }); }
public object GetAsuntosPendientes([FromBody] JObject payloadJO) { dynamic payload = payloadJO.ToObject(typeof(ExpandoObject)); var qb = new QueryBuilder.QueryBuilder((string)Miscelanea.Configuracion.Get.connections.capnet); // var estados = new String[]{"cancelado","suspendido","validado"}; var qAsuntos = qb.Table("ma.asuntos as asu") .Join("ma.departamento as de", "asu.id_departamento", "de.id") .Join("ma.area as ar", "asu.id_area", "ar.id") .Select( "asu.id", "asu.id_area", "ar.nombre as nombre_area", "asu.id_departamento", "de.nombre as nombre_departamento", "asu.usuario_asignado", "asu.motivo_cierre", "asu.descripcion", "asu.interno_externo", "asu.fecha_registro", "asu.fecha_fin", "asu.fecha_suspencion", "asu.fecha_actualizacion", "asu.estado", "asu.asunto", "asu.email", "asu.detalle_suspension", "asu.fecha_cancelacion", "asu.detalle_cancelado", "asu.fecha_validacion", "asu.detalle_rechazo", "asu.usuario_rechazo", "asu.usuario_creacion") .WhereRaw("asu.estado not in ('cancelado','suspendido','validado')"); DateTime?fecha_desde = !string.IsNullOrWhiteSpace((string)payload.fecha_desde) ? DateTime.ParseExact(payload.fecha_desde, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture) : null; DateTime?fecha_hasta = !string.IsNullOrWhiteSpace((string)payload.fecha_hasta) ? DateTime.ParseExact(payload.fecha_hasta, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture) : null; if (fecha_desde == null && fecha_hasta != null) { fecha_desde = fecha_hasta; fecha_hasta = null; } if (fecha_desde != null && fecha_hasta != null) { qAsuntos.WhereRaw("cast(?? as date) between ? and ?", "asu.fecha_registro", fecha_desde, fecha_hasta); } else if (fecha_desde != null && fecha_hasta == null) { qAsuntos.WhereRaw("cast(?? as date) = ?", "asu.fecha_registro", fecha_desde); } else { qAsuntos.Limit(100); } if (!string.IsNullOrWhiteSpace((string)payload.usuario)) { qAsuntos.Where("asu.usuario_asignado", (string)payload.usuario); } //Console.WriteLine(qAsuntos.ToString()); var asuntos = qAsuntos.ExecuteListDynamic(); foreach (var asunto in asuntos) { var ds = (IDictionary <string, object>)asunto; ds["contactos"] = (object)null; /*qb.Table("ma.concesionarios_contactos") * .Where("id_concesionario", ds["id_agencia"]) * .Select("rv", "nombre", "cargo", "telefono", "email") * .ExecuteListDynamic();*/ ds["evidencias"] = qb.Table("ma.evidencias") .Where("id_solicitud", ds["id"]) .Select("id", "ruta") .ExecuteListDynamic(); } return(new { asuntos, motivos_cierre = db.Table("ma.motivos_cierre") .Select("id", "descripcion") .ExecuteDataTable(), todos_usuarios = db.Table("ma.usuario") .Select("usuario", "nombre", "id_area", "id_departamento", "id") .ExecuteDataTable() }); }