  We reformed the tensor product theory of vertex operator algebras developed
by Huang and Lepowsky so that we could apply it to all vertex operator algebras
satisfying C_2-cofiniteness. We also showed that the tensor product theory
develops naturally if we include not only ordinary modules, but also weak
modules with a composition series of finite length (we call it an Artin
module). In particular, we don't assume the semisimplicity of the weight
operator L(0). Actually, without the assumption of rationality, a
C_2-cofiniteness on V is enough to obtain the existence of a tensor product of
two Artin modules and natural associativity of tensor products. Namely, the
category of Artin modules becomes a braided tensor category.
  As an application of the tensor product theory under C_2-cofiniteness, we
proved the rationality of some orbifold models. For example, if a vertex
operator algebra V has a finite automorphism group and the fixed point vertex
operator subalgebra V^G is C_2-cofinite, then for any irreducible
V^{<g>}-module W, there is an element h\in <g> such that W is contained in some
h-twisted V-module. Furthermore, if V^G is rational, then V^{<g>} is also
rational for any g\in G.
