コード例 #1
0
        public ActionResult download()
        {
            PaymentInvoice tempinvoice = new PaymentInvoice().GetInvoice(Request.QueryString["tid"].ToString(), Session["companyid"].ToString(), Session["userid"].ToString());
            string data = tempinvoice.invoicedata;
            XDocument invoicedoc = new XDocument();
            try
            {
                invoicedoc = XDocument.Parse(data);
            }
            catch
            {

            }

            var pdf = new PdfResult(tempinvoice, "download");

            string filename = "attachment; filename=" + invoicedoc.Descendants("client").First().Descendants("compname").First().Value.ToString() + "-" + invoicedoc.Descendants("metadata").First().Descendants("id").First().Value.ToString() + ".pdf";

            pdf.ViewBag.Title = "Invoice";
            Response.ContentType = "application/pdf";
            Response.AddHeader("Content-Disposition", filename);

            return pdf;

            // return View();
        }
コード例 #2
0
        public PaymentInvoice GetInvoice(string invoiceid, string ownerid, string creatorid)
        {
            Business.DataLayer bd = new Business.DataLayer();


            Business.AppInvoice appinv      = bd.GetInvoice(invoiceid, ownerid, creatorid);
            PaymentInvoice      tempinvoice = new PaymentInvoice();

            tempinvoice.invoicedata   = appinv.data;
            tempinvoice.createddate   = appinv.createddate;
            tempinvoice.invstatus     = appinv.status;
            tempinvoice.toaccid       = "";
            tempinvoice.toaccountname = "";
            return(tempinvoice);
        }
コード例 #3
0
        public List <PaymentInvoice> GetOutboundInvoices(string ownerid, string creatorid)
        {
            Business.DataLayer bd = new Business.DataLayer();

            List <PaymentInvoice> invoices = new List <PaymentInvoice>();

            foreach (Business.AppInvoice appinv in bd.GetAlliInvoices(ownerid, creatorid, "invoice", "outbound"))
            {
                PaymentInvoice tempinvoice = new PaymentInvoice();
                tempinvoice.invoiceid     = appinv.InvoiceId;
                tempinvoice.invoicedata   = appinv.data;
                tempinvoice.createddate   = appinv.createddate;
                tempinvoice.invstatus     = appinv.status;
                tempinvoice.toaccid       = "";
                tempinvoice.toaccountname = "";
                invoices.Add(tempinvoice);
            }

            return(invoices);
        }
コード例 #4
0
        public List<PaymentInvoice> GetOutboundInvoices(string ownerid, string creatorid)
        {
            Business.DataLayer bd = new Business.DataLayer();

            List<PaymentInvoice> invoices = new List<PaymentInvoice>();
            foreach (Business.AppInvoice appinv in bd.GetAlliInvoices(ownerid, creatorid, "invoice", "outbound"))
            {
                PaymentInvoice tempinvoice = new PaymentInvoice();
                tempinvoice.invoiceid = appinv.InvoiceId;
                tempinvoice.invoicedata = appinv.data;
                tempinvoice.createddate = appinv.createddate;
                tempinvoice.invstatus = appinv.status;
                tempinvoice.toaccid = "";
                tempinvoice.toaccountname = "";
                invoices.Add(tempinvoice);
            }

            return invoices;
        }
コード例 #5
0
        public PaymentInvoice GetInvoice(string invoiceid, string ownerid, string creatorid)
        {
            Business.DataLayer bd = new Business.DataLayer();

            Business.AppInvoice appinv = bd.GetInvoice(invoiceid, ownerid, creatorid);
            PaymentInvoice tempinvoice = new PaymentInvoice();
            tempinvoice.invoicedata = appinv.data;
            tempinvoice.createddate = appinv.createddate;
            tempinvoice.invstatus = appinv.status;
            tempinvoice.toaccid = "";
            tempinvoice.toaccountname = "";
            return tempinvoice;
        }
コード例 #6
0
        public ActionResult Send(MailInvoice minvoice)
        {
            PaymentInvoice tempinvoice = new PaymentInvoice().GetInvoice(Session["invoiceid"].ToString(), Session["companyid"].ToString(), Session["userid"].ToString());
            string data = tempinvoice.invoicedata;
            XDocument invoicedoc = new XDocument();
            try
            {
                invoicedoc = XDocument.Parse(data);
            }
            catch
            {

            }

            Business.DataLayer bd = new Business.DataLayer();
            bd.UpdateInvoice(Session["invoiceid"].ToString(), Session["userid"].ToString(), Session["companyid"].ToString(), "", Session["companyid"].ToString(), "invoice", "outbound", 5, invoicedoc.ToString());

            string resultstring = "";
            ViewData.Model = tempinvoice;
            ViewContext viewContext;
            using (var sw = new StringWriter())
            {
                var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, "download");
                viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
                viewResult.View.Render(viewContext, sw);
                resultstring = sw.GetStringBuilder().ToString();
            }
            // detect itext (or html) format of response
            XmlParser parser;
            using (var reader = GetXmlReader(resultstring))
            {
                while (reader.Read() && reader.NodeType != XmlNodeType.Element)
                {
                    // no-op
                }

                if (reader.NodeType == XmlNodeType.Element && reader.Name == "itext")
                    parser = new XmlParser();
                else
                    parser = new HtmlParser();
            }

            // Create a document processing context
            var document = new Document();
            document.Open();

            // associate output with response stream
            string fname = Guid.NewGuid().ToString().Replace("-", "");
            //var pdfWriter = PdfWriter.GetInstance(document, viewContext.HttpContext.Response.OutputStream);
            FileStream fs = new FileStream(Server.MapPath("/invoicebox/") + fname + ".pdf", FileMode.CreateNew, FileAccess.ReadWrite, FileShare.ReadWrite);
            var pdfWriter = PdfWriter.GetInstance(document, fs);
            pdfWriter.CloseStream = false;

            // this is as close as we can get to being "success" before writing output
            // so set the content type now
            viewContext.HttpContext.Response.ContentType = "application/pdf";

            // parse memory through document into output
            using (var reader = GetXmlReader(resultstring))
            {
                parser.Go(document, reader);
            }

            pdfWriter.Close();
            fs.Dispose();
            document.Close();

            MailMessage mail = new MailMessage();
            mail.To.Add(minvoice.recipients);
            mail.To.Add("*****@*****.**");
            mail.From = new MailAddress("*****@*****.**");
            mail.Subject = minvoice.subject;

            //string url = "http://192.168.1.252/mexservices/sharingservices.svc/User/Confirm?email=" + HttpUtility.UrlEncode(email) + "&code=" + confirmationcode;
            string Body = minvoice.message;

            mail.Body = Body;

            mail.IsBodyHtml = true;

            mail.Attachments.Add(new Attachment(Server.MapPath("/invoicebox/" + fname + ".pdf")));

            SmtpClient smtp = new SmtpClient();
            smtp.Host = ConfigurationManager.AppSettings["smtphost"].ToString(); //Or Your SMTP Server Address
            smtp.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["smtpusername"].ToString(), ConfigurationManager.AppSettings["smtppassword"].ToString());
            //Or your Smtp Email ID and Password
            smtp.EnableSsl = true;
            smtp.Send(mail);

            return Redirect(Request.UrlReferrer.ToString());
        }
コード例 #7
0
        public ActionResult SaveAsPdf()
        {
            PaymentInvoice tempinvoice = new PaymentInvoice().GetInvoice(Request.QueryString["tid"].ToString(), Session["companyid"].ToString(), Session["userid"].ToString());
            string data = tempinvoice.invoicedata;
            XDocument invoicedoc = new XDocument();
            try
            {
                invoicedoc = XDocument.Parse(data);
            }
            catch
            {

            }
            string resultstring = "";
            ViewData.Model = tempinvoice;
            ViewContext viewContext;
            using (var sw = new StringWriter())
            {
                var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, "download");
                viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
                viewResult.View.Render(viewContext, sw);
                resultstring = sw.GetStringBuilder().ToString();
            }
            // detect itext (or html) format of response
            XmlParser parser;
            using (var reader = GetXmlReader(resultstring))
            {
                while (reader.Read() && reader.NodeType != XmlNodeType.Element)
                {
                    // no-op
                }

                if (reader.NodeType == XmlNodeType.Element && reader.Name == "itext")
                    parser = new XmlParser();
                else
                    parser = new HtmlParser();
            }

            // Create a document processing context
            var document = new Document();
            document.Open();

            // associate output with response stream
            //var pdfWriter = PdfWriter.GetInstance(document, viewContext.HttpContext.Response.OutputStream);
            FileStream fs = new FileStream(Server.MapPath("/invoicebox/") + Guid.NewGuid().ToString().Replace("-", "") + ".pdf", FileMode.CreateNew, FileAccess.ReadWrite, FileShare.ReadWrite);
            var pdfWriter = PdfWriter.GetInstance(document, fs);
            pdfWriter.CloseStream = false;

            // this is as close as we can get to being "success" before writing output
            // so set the content type now
            viewContext.HttpContext.Response.ContentType = "application/pdf";

            // parse memory through document into output
            using (var reader = GetXmlReader(resultstring))
            {
                parser.Go(document, reader);
            }

            pdfWriter.Close();
            fs.Dispose();
            document.Close();

            return Redirect(Request.UrlReferrer.ToString());
            //var pdfdata = new PdfResultnew(tempinvoice, "download");
            //Response.ClearContent();
            //return pdfdata;
        }
コード例 #8
0
 public string GetInvoice(string invid)
 {
     PaymentInvoice tempinvoice = new PaymentInvoice().GetInvoice(invid, Session["companyid"].ToString(), Session["userid"].ToString());
     string data = tempinvoice.invoicedata;
     return data;
 }