Beispiel #1
0
        /// <summary>
        /// Realiza el proceso de creación de un usuario en la base de datos
        /// </summary>
        /// <param name="usuario">Información del usuario que se desea crear</param>
        public override void Crear(DTOUsuarios usuario)
        {
            try
            {
                String Message = String.Empty;

                Message = this.ValidaUsuario(usuario, usuario.Cliente);

                if (String.IsNullOrEmpty(Message))
                {
                    ManagerDb db = new ManagerDb();

                    DataTable tbl = db.ObtenerDatos("SELECT 1 FROM USUARIOS WHERE USU_USUARIO = @USUARIO", new SqlParameter("@USUARIO", usuario.Usuario));

                    if (tbl.Rows.Count > 0)
                    {
                        throw new CustomException("<li>El nombre de usuario ingresado ya se encuentra registrado en la base de datos, por favor corrigalo e intentelo de nuevo");
                    }
                    else
                    {
                        String query = "INSERT INTO USUARIOS (USU_USUARIO, USU_PASSWORD, USU_NOMBRES, USU_APELLIDOS, USU_CORREO, USU_ROL)";
                        query += "VALUES (@USU_USUARIO, @USU_PASSWORD, @USU_NOMBRES, @USU_APELLIDOS, @USU_CORREO, @USU_ROL);";
                        db.Ejecutar(query,
                                    new SqlParameter("@USU_USUARIO", usuario.Usuario),
                                    new SqlParameter("@USU_PASSWORD", Encriptar.EncriptaContrasena(usuario.Password)),
                                    new SqlParameter("@USU_NOMBRES", usuario.Nombres),
                                    new SqlParameter("@USU_APELLIDOS", usuario.Apellidos),
                                    new SqlParameter("@USU_CORREO", usuario.Correo),
                                    new SqlParameter("@USU_ROL", usuario.Rol));

                        if (usuario.Rol == 2)
                        {
                            int codigoUsuario = db.ObtenerDatos("SELECT IDENT_CURRENT('USUARIOS')").AsEnumerable().Select(x => Convert.ToInt32(x.Field <Object>(0))).FirstOrDefault();
                            query  = "INSERT INTO CLIENTES (CLI_DOCUMENTO, CLI_TIPODOCUMENTO, CLI_FECHANACIMIENTO, USU_CODIGO)";
                            query += "VALUES (@CLI_DOCUMENTO, @CLI_TIPODOCUMENTO, @CLI_FECHANACIMIENTO, @USU_CODIGO)";

                            db.Ejecutar(query,
                                        new SqlParameter("@CLI_DOCUMENTO", usuario.Cliente.Documento),
                                        new SqlParameter("@CLI_TIPODOCUMENTO", usuario.Cliente.TipoDocumento),
                                        new SqlParameter("@CLI_FECHANACIMIENTO", usuario.Cliente.FechaNacimiento),
                                        new SqlParameter("@USU_CODIGO", codigoUsuario));
                        }
                    }
                }
                else
                {
                    throw new CustomException("<ul>" + Message + "</ul>");
                }
            }
            catch (CustomException ex)
            {
                throw new CustomException(ex.Message);
            }
            catch (Exception ex)
            {
                Exception ex1 = ex;
                while (ex1.InnerException != null)
                {
                    ex1 = ex1.InnerException;
                }
                throw new Exception(ex1.Message);
            }
        }