Ejemplo n.º 1
0
        public Usuario datosUsuario(List<string> infoCookie)
        {
            string loginUsuario = infoCookie[0].ToUpper();
            Usuario user = new Usuario();
            if(loginUsuario != "ANONYMOUS")
            {
                miControlador.RutaFichero = "~/ficheros/usuarios.txt";
                miControlador.AbrirFichero("ruta", "leer");
                user = miControlador.recuperaUsuario(loginUsuario);

                //Dictionary<string, List<Libro>> comprasUsuarioDicc = new Dictionary<string, List<Libro>>();
                //user.comprasUsuario = comprasUsuarioDicc;
                //string fechaCompra = infoCookie[2];
                //List<Libro> librosCompra = fabricaLibro(recuperaLibros(infoCookie[3]));
                //comprasUsuarioDicc.Add(fechaCompra, librosCompra);

                //Task generarPDF = new Task(() => controladorPDF.CrearDocPDF(user, comprasUsuarioDicc));
                //generarPDF.Start();
            }else
            {
                //Registrate
            }

            return user;
        }
Ejemplo n.º 2
0
        //public PdfDocument CrearDocPDF(string rutaFichero, Usuario user, Dictionary<string, List<Libro>> coleccionLibrosCarrito)
        //{
        //    String facturaHTML = GenerarFacturaEnHTML(rutaFichero + "imagenes/", coleccionLibrosCarrito.Values.ElementAt(0));
        //    //PdfDocument miFactura = new PdfDocument();
        //    System.Threading.Thread thread = new System.Threading.Thread(() =>
        //    {
        //        PdfDocument fact = new PdfDocument();
        //        fact.LoadFromHTML(facturaHTML, true, true, false);
        //        fact.SaveToFile("C:/Users/karol/Desktop/facturas/" + user.loginUsuario + "_" + coleccionLibrosCarrito.Keys.ToString() + ".pdf");
        //    });
        //    thread.SetApartmentState(System.Threading.ApartmentState.STA);
        //    thread.Start();
        //    return null;
        //    /*
        //    Task<PdfDocument> generadorPDF = Task.Factory.StartNew<PdfDocument>((stringHTML) =>
        //    {
        //        string factHTML = (string)stringHTML;
        //        PdfDocument fact = new PdfDocument();
        //        fact.LoadFromHTML(factHTML,true,true,false);
        //        return fact;
        //    }, facturaHTML,
        //       System.Threading.CancellationToken.None,
        //       TaskCreationOptions.None ,
        //       TaskScheduler.FromCurrentSynchronizationContext());
        //    //generadorPDF.Start();
        //    generadorPDF.Wait(); //...nos aseguramos que el hilo acabe
        //    generadorPDF.Result.SaveToFile("C:/Users/karol/Desktop/facturas/" + user.loginUsuario + "_" + coleccionLibrosCarrito.Keys.ToString() + ".pdf"); //("CAROLINA_13/11/2015_15:10:25.pdf")
        //    //si en el pdf lo quiero grabar en un fichero en el servidor llamaria a miFactura.SaveToFile("nombre_fichero.pdf")
        //    return generadorPDF.Result;
        //    */
        //}
        public PdfDocument CrearDocPDF(string rutaFichero, Usuario user, Dictionary<string, List<Libro>> coleccionLibrosCarrito, string infoCookieLibros)
        {
            PdfDocument miFactura = new PdfDocument();

            PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();

            htmlLayoutFormat.IsWaiting = false;

            PdfPageSettings setting = new PdfPageSettings();
            setting.Size = PdfPageSize.A4;

            //String facturaHTML = File.ReadAllText(rutaFichero + "PlantillaFactura.html");
            String facturaHTML = GenerarFacturaEnHTML(rutaFichero + "imagenes/", coleccionLibrosCarrito.Values.ElementAt(0), user, infoCookieLibros);

            List<string> nombreKey = coleccionLibrosCarrito.Keys.ToList();
            string keyString = "";
            foreach (string key in nombreKey)
            {
                keyString = key;
                keyString = keyString.Replace('/', '_').Replace(' ', '_').Replace(':', '_');
            }

            Thread thread = new Thread(() =>
            {
                miFactura.LoadFromHTML(facturaHTML, false, setting, htmlLayoutFormat);
                //miFactura.LoadFromHTML(facturaHTML, false, true, true);
            });

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();

            //string filePath = rutaFichero + "facturas/" + user.loginUsuario + keyString + ".pdf";

            //if (!File.Exists(filePath))
            //{
            //    FileStream f = File.Create(filePath);
            //    f.Close();
            //}
            try
            {
                miFactura.SaveToFile(rutaFichero + "facturas/" + user.loginUsuario + keyString + ".pdf");
            }
            catch (Exception e)
            {

            }

            //System.Diagnostics.Process.Start(rutaFichero + "facturas/" + user.loginUsuario + keyString + ".pdf");

            return miFactura;
        }
Ejemplo n.º 3
0
 public Boolean GrabarDatos(Usuario nuevoUsuario)
 {
     try
     {
         //esto se puede generalizar y pasarlo al método en cuestion MIRARRRRR!!!!
         __escritorFichero.WriteLine(nuevoUsuario.nombreUsuario.ToUpper() + ":" +
                                     nuevoUsuario.apellidoUsuario.ToUpper() + ":" +
                                     nuevoUsuario.emailUsuario.ToUpper() + ":" +
                                     nuevoUsuario.loginUsuario.ToUpper() + ":" +
                                     nuevoUsuario.passwordUsuario.ToUpper());
         __escritorFichero.Flush();
         __escritorFichero.Close();
         return true;
     }
     catch (IOException e)
     {
         return false;
     }
 }
Ejemplo n.º 4
0
        public Usuario recuperaUsuario(string login)
        {
            string infoUsuario = (from unaLinea in this.__lectorFichero.ReadToEnd().Split(new char[] { '\r', '\n' }).Where(linea => !new System.Text.RegularExpressions.Regex("^$").Match(linea).Success)
                                  let loginUsuario = unaLinea.Split(new char[] { ':' })[3]
                                  where login == loginUsuario
                                  select unaLinea).SingleOrDefault();

            Usuario user = new Usuario();

            List<string> argumentosUsuario = infoUsuario.Split(new char[] { ':' }).ToList();
            user.nombreUsuario = argumentosUsuario[0].ToString();
            user.apellidoUsuario = argumentosUsuario[1].ToString();
            user.emailUsuario = argumentosUsuario[2].ToString();
            user.loginUsuario = argumentosUsuario[3].ToString();
            user.passwordUsuario = argumentosUsuario[4].ToString();
            //string compras = argumentosUsuario[5].ToString();//-->NULL XQ NO EXISTEN COMPRAS EN EL FICHERO

            //comprasUsuario =  public Dictionary <string, List<CarritoCompra>>
            //user.comprasUsuario =

            return user;
        }
Ejemplo n.º 5
0
        private String GenerarFacturaEnHTML(string ruta, List<Libro> coleccionLibrosCarrito, Usuario user, string infoCookieLibros)
        {
            string filas = "";
            StringBuilder midocHTML = new StringBuilder();

            midocHTML.Append("<img src='" + ruta + "encabezado_inicio.png'/>" + "<br/>");

            midocHTML.Append("LIBRERÍA AGAPEA" + "<br/>");
            midocHTML.Append("FACTURA DEL CLIENTE: " + user.nombreUsuario + "<br/>");
            midocHTML.Append("Libros comprados:" + @"<br/>");
            midocHTML.Append("------------------------------------" + "<br/>");
            midocHTML.Append("<table style='border-top: solid blue; width:595px; heigh:842px; text-align:center'>");
            midocHTML.Append("<th>TITULO</th><th>AUTOR</th><th>PRECIO</th><th>CANTIDAD</th><th>TOTAL</th>");
            foreach (Libro lib in coleccionLibrosCarrito)
            {
                midocHTML.Append("<tr>");
                midocHTML.Append("<td style='width:30%'>" + lib.titulo + "</td>");
                midocHTML.Append("<td>" + lib.autor + "</td>");
                decimal precio = lib.precio;
                midocHTML.Append("<td>" + precio + "</td>");
                decimal cantidad = Convert.ToDecimal(recuperaCantidad(infoCookieLibros, lib.isbn10.ToString()));
                midocHTML.Append("<td>" + cantidad + "</td>");
                midocHTML.Append("<td>" + (precio * cantidad).ToString() + "</td>");
                midocHTML.Append("</tr>");
            }
            midocHTML.Append("</table>");

            return midocHTML.ToString();
        }