public bool CrearArchivo(MODArchivo prmArchivo, List <IDictionary <string, object> > prmDatos, ref string rutaDestino) { var rutaBase = Configuraciones.ObtenerConfiguracion("FileRoutes", "Url:RutaBaseArchivosSalida"); rutaBase += $"{DateTime.Now.Year}\\\\{DateTime.Now.Month}\\\\{DateTime.Now.Day}"; if (!Directory.Exists(rutaBase)) { Directory.CreateDirectory(rutaBase); } var rutaFinal = rutaBase + $"\\\\{prmArchivo.Nombre}_{prmArchivo.Periodo.ToString("yyyyMM")}_{DateTime.Now.ToString("ddMMyyyyHHmmss")}.{prmArchivo.Extension}"; using (FileStream fs = File.Create(rutaFinal)) { using (var sr = new StreamWriter(fs)) { string firstLine = String.Join(prmArchivo.ValorSeparador, prmArchivo.Campos.Select(x => x.Nombre.ToUpper()).ToArray()); sr.WriteLine(firstLine); foreach (var item in prmDatos) { string line = String.Join(prmArchivo.ValorSeparador, item.Values.Select(x => x.ToString().Replace(",", "."))); sr.WriteLine(line); } } } rutaDestino = rutaFinal; return(true); }
public MODResultado ProbarConeccion(MODOrigenDatos origen) { EnumBaseDatosOrigen dbtype = (EnumBaseDatosOrigen)origen.TipoOrigen; string coneccion = ""; SqlConnectionStringBuilder builder = null; Object parametros = null; switch (dbtype) { case EnumBaseDatosOrigen.Oracle: coneccion = Configuraciones.ObtenerConfiguracion("Conexiones", "ORA"); builder = new SqlConnectionStringBuilder(coneccion); builder.DataSource = string.Format("{0}{1}{2}", origen.Servidor, (string.IsNullOrEmpty(origen.Puerto) && origen.Puerto != "0" ? ":" + origen.Puerto.ToString() : ""), (!string.IsNullOrEmpty(origen.Sid) ? "/" + origen.Sid : "")); builder.UserID = origen.UsuarioBD; builder.Password = origen.ClaveBD; break; case EnumBaseDatosOrigen.SqlServer: coneccion = Configuraciones.ObtenerConfiguracion("Conexiones", EnumBaseDatos.SIR.ToString()); builder = new SqlConnectionStringBuilder(coneccion); builder.DataSource = string.Format("{0}{1}", origen.Servidor, (string.IsNullOrEmpty(origen.Puerto) && origen.Puerto != "0" ? ":" + origen.Puerto.ToString() : "")); builder.InitialCatalog = origen.Sid; builder.UserID = origen.UsuarioBD; builder.Password = origen.ClaveBD; break; } MODResultado resultado = new MODResultado(); try { IDbConnection con = this.ObtenerConexion(builder.ConnectionString, dbtype); if (!string.IsNullOrEmpty(origen.consulta)) { var consulta = (CommandType.Text == (CommandType)origen.tipoMando) ? origen.consulta.ToLower().Replace("where", "where rownum = 1 and") : origen.consulta; consulta = consulta.Replace("@periodo", "'" + DateTime.Now.ToString("yyyyMMdd") + "'"); var reader = con.ExecuteReader(consulta, parametros, commandType: (CommandType)origen.tipoMando); var schema = reader.GetSchemaTable(); reader.Close(); List <MODCampos> campos = new List <MODCampos>(); foreach (DataRow row in schema.Rows) { campos.Add(new MODCampos { Nombre = row["ColumnName"].ToString(), Largo = row["ColumnSize"].ToString(), Ordinal = Convert.ToInt32(row["ColumnOrdinal"]) }); } resultado.DatosAdicionales.Add("campos", JsonConvert.SerializeObject(campos)); } } catch (Exception exp) { resultado.Errores.Add(exp.Message); Log.WriteLog(exp, this.GetType().FullName + "-" + nameof(ProbarConeccion), String.Format(@"origen:{0}", System.Text.Json.JsonSerializer.Serialize(origen)), ErrorType.Error); } return(resultado); }
public async Task <MODRespuestaAPI <bool> > ValidarUsuarioServicioExterno(string prmUsuario) { MODRespuestaAPI <bool> respuesta = null; string codigoMensaje = "COMUNES.ERRORSERVICIO"; bool _validarExterna = Convert.ToBoolean(Configuraciones.ObtenerConfiguracion("Contexto", "AutenticacionSCP")); try { if (String.IsNullOrEmpty(prmUsuario)) { respuesta = new MODRespuestaAPI <bool>(HttpStatusCode.BadRequest, "USUARIO.VALIDADORES.VAL001"); } else { string codigoAplicacion = Configuraciones.ObtenerConfiguracion("Keys", "CodigoAplicacion"); bool existeUsuario = false; IUsuarioNegocio usuarioNegocio = FabricaNegocio.CrearUsuarioNegocio; var usuarioBD = usuarioNegocio.ObtenerUsuario(prmUsuario); if (usuarioBD != null) { codigoMensaje = "USUARIO.RESPUESTAS.RTA002"; respuesta = new MODRespuestaAPI <bool>(HttpStatusCode.BadRequest, codigoMensaje); } else { var usuarioExterno = await usuarioNegocio.ValidarUsuarioServicioExterno(prmUsuario, String.Empty, true); bool usuarioOk = usuarioExterno.Item1; codigoMensaje = usuarioExterno.Item2; if (usuarioOk) { existeUsuario = true; codigoMensaje = "USUARIO.RESPUESTAS.RTA000"; respuesta = new MODRespuestaAPI <bool>(existeUsuario, codigoMensaje); } else { codigoMensaje = "USUARIO.RESPUESTAS.RTA001"; respuesta = new MODRespuestaAPI <bool>(HttpStatusCode.BadRequest, codigoMensaje); } } } } catch (Exception ex) { Log.WriteLog(ex, "UsuarioController.ValidarUsuarioServicioExterno", JsonSerializer.Serialize(new { Usuario = prmUsuario }), ErrorType.Error); respuesta = new MODRespuestaAPI <bool>(HttpStatusCode.InternalServerError, codigoMensaje); } finally { //Auditoria } return(respuesta); }
public async Task <Tuple <bool, string> > ValidarUsuarioServicioExterno(string prmUsuario, string prmPassword, bool prmValidarExiste = false) { string codigoAplicacion = Configuraciones.ObtenerConfiguracion("Keys", "CodigoAplicacion"); string codigoMensaje = "COMUNES.ERRORSERVICIO"; bool usuarioOk = false; bool _validarExterna = Convert.ToBoolean(Configuraciones.ObtenerConfiguracion("Contexto", "AutenticacionSCP")); byte[] newBytes = Convert.FromBase64String(prmPassword); prmPassword = System.Text.Encoding.UTF8.GetString(newBytes); using (WCFAutenticacionExterna.AuthenticationClient serviceAuth = new WCFAutenticacionExterna.AuthenticationClient()) { var user = _validarExterna ? await serviceAuth.loginAsync(prmUsuario, prmPassword, codigoAplicacion) : "Ok"; if (prmValidarExiste) { if (user.ToUpper().Equals("OK") || user.ToUpper().Contains("CONTRASEÑA INCORRECTA")) { usuarioOk = true; codigoMensaje = "USUARIO.RESPUESTAS.RTA000"; } else if (user.Contains("Usuario no existe")) { codigoMensaje = "USUARIO.RESPUESTAS.RTA001"; } } else { if (user.Equals("Ok")) { usuarioOk = true; } else if (user.Contains("Contraseña incorrecta")) { codigoMensaje = "LOGIN.RTA001"; } else if (user.Contains("Usuario no existe")) { codigoMensaje = "LOGIN.RTA002"; } else if (user.Contains("Cuenta Bloqueada")) { codigoMensaje = "LOGIN.RTA008"; } else if (user.Contains("no tiene acceso")) { codigoMensaje = "LOGIN.RTA009"; } } } return(new Tuple <bool, string>(usuarioOk, codigoMensaje)); }
public static bool SessionUsuario(MODLoginUsuario registro, EnumSession peticion) { List <MODLoginUsuario> actual = new List <MODLoginUsuario>(); actual.AddRange(Logueos); switch (peticion) { case EnumSession._inicio: int _tiempo = Convert.ToInt32(Configuraciones.ObtenerConfiguracion("Contexto", "TiempoSession")); if ((Logueos.Any(y => y.UserName == registro.UserName && (DateTime.Now - y.Fecha).TotalMinutes > _tiempo)) || (Logueos.Any(y => y.UserName == registro.UserName && y.IP == registro.IP))) { registro.Fecha = DateTime.Now; actual.Remove(Logueos.FirstOrDefault(y => y.UserName == registro.UserName)); actual.Add(registro); } else if (!Logueos.Any(y => y.UserName == registro.UserName)) { registro.Fecha = DateTime.Now; actual.Add(registro); } else { return(false); } break; case EnumSession._peticion: if (Logueos.Any(y => y.UserName == registro.UserName)) { actual.FirstOrDefault(y => y.UserName == registro.UserName).Fecha = DateTime.Now; } else { return(false); } break; case EnumSession._cierre: Logueos.Remove(Logueos.FirstOrDefault(y => y.UserName == registro.UserName)); break; default: break; } ConfiguracionNegocio.Logueos = actual; return(true); }
private static string ObtenerNombre(EnumBaseDatos _baseDatos) { return(Configuraciones.ObtenerConfiguracion("Conexiones", _baseDatos.ToString())); }