Exemplo n.º 1
0
        static void Main(string[] args)
        {
            using (AuctionDBContext _context = new AuctionDBContext())
            {
                IAuctionReport report = new GrandTotalsReport();
                report.GenerateReport(_context);

                report = new OutstandingBalanceReport();
                report.GenerateReport(_context);

                report = new DonorInfoReport();
                report.GenerateReport(_context);

                report = new GuestPassReport();
                report.GenerateReport(_context);

                report = new BidderReceiptReport();
                report.GenerateReport(_context);

                report = new DonationsTotalReport();
                report.GenerateReport(_context);
            }
        }
Exemplo n.º 2
0
        public Art UpdateToAuction(int id, Auction au)
        {
            using (AuctionDBContext db = new AuctionDBContext())
            {
                Art aTemp = db.Arts.SingleOrDefault(x => x.Id == id);

                aTemp.Auction = au;

                try
                {
                    db.Arts.Attach(aTemp);
                    var entry = db.Entry(aTemp);
                    entry.State = EntityState.Modified;
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    throw e;
                }

                return(RetrieveById(id));
            }
        }
Exemplo n.º 3
0
        public void Initialize()
        {
            this.userProfile = FakeEntityFactory.CreateUserProfile();
            this.person      = FakeEntityFactory.CreatePerson();
            this.seller      = FakeEntityFactory.CreateSeller();
            this.auction     = FakeEntityFactory.CreateAuction();
            this.bidder      = FakeEntityFactory.CreateBidder();
            this.product     = FakeEntityFactory.CreateProduct();
            this.category    = FakeEntityFactory.CreateCategory();

            this.userProfileServices = new UserProfileService(new UserProfileRepository());
            this.personServices      = new PersonService(new PersonRepository());
            this.bidderServices      = new BidderService(new BidderRepository());
            this.sellerServices      = new SellerService(new SellerRepository());
            this.categoryServices    = new CategoryService(new CategoryRepository());
            this.bidServices         = new BidService(new BidRepository());
            this.productServices     = new ProductService(new ProductRepository());
            this.auctionServices     = new AuctionService(new AuctionRepository());

            using (var auctionDBContext = new AuctionDBContext())
            {
                auctionDBContext.Database.Delete();
            }
        }
 public PaddlesController(AuctionDBContext context)
 {
     _context = context;
 }
Exemplo n.º 5
0
 public ModuleProduct(AuctionDBContext context)
 {
     this._context = context;
 }
Exemplo n.º 6
0
 public BasicFunciton(AuctionDBContext context)
 {
     this._context = context;
     modulecate    = new Module.ModuleCategory(this._context);
     moduleuser    = new Module.ModuleUser(this._context);
 }
Exemplo n.º 7
0
        public void GenerateReport(AuctionDBContext context)
        {
            var writer   = new PdfWriter("GrandTotalReport.pdf");
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            var font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);


            var title = new Paragraph();

            title.SetFontSize(30)
            .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
            .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
            .Add(new Text("Grand Total Report"));

            var subtitle = new Paragraph().SetFontSize(15)
                           .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
                           .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
                           .Add(new Text("Report Time: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString()));

            decimal gtotal = context.Bid.Sum(o => o.TotalCost);

            var grandTotal = new Paragraph().SetFontSize(15)
                             .SetTextAlignment(iText.Layout.Properties.TextAlignment.LEFT)
                             .Add(new Text("Grand Total Bids: " + gtotal.ToString("C2")));

            decimal pTotal = context.Bidder.Sum(o => o.AmountPaid);

            var paidTotal = new Paragraph().SetFontSize(15)
                            .SetTextAlignment(iText.Layout.Properties.TextAlignment.LEFT)
                            .Add(new Text("Grand Total Paid Bids: " + pTotal.ToString("C2")));

            var table = new Table(5);

            table.AddHeaderCell(new Cell().Add(new Paragraph("Paddle Number").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Name").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Bidding Total").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Amount Paid").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Amount Outstanding").SetFont(font).SetPadding(1)));

            using (TextWriter tw = new StreamWriter("GrandTotalReport.csv"))
            {
                tw.WriteLine("Paddle Number,Name,Bidding Total,Amount Paid,Amount Outstanding");

                var bidderList   = context.Bidder.ToList();
                var paddleNumber = context.Paddle.ToDictionary(o => o.BidderId);
                var bidList      = context.Bid.ToList();

                decimal bidTotal  = 0;
                decimal pdTotal   = 0;
                decimal amtOTotal = 0;


                foreach (Bidder bidder in bidderList)
                {
                    if (!paddleNumber.ContainsKey(bidder.BidderId))
                    {
                        continue;                                             //If they don't have a paddle, we skip them (no bids)
                    }
                    var paddle = paddleNumber[bidder.BidderId];
                    var bids   = bidList.Where(o => o.PaddleId == paddle.PaddleId).ToList();

                    var tmpTotal       = bids.Sum(o => o.TotalCost);
                    var amtOutstanding = tmpTotal - bidder.AmountPaid;
                    if (amtOutstanding < 0)
                    {
                        amtOutstanding = 0;
                    }

                    bidTotal  += tmpTotal;
                    pdTotal   += bidder.AmountPaid;
                    amtOTotal += amtOutstanding;

                    table.AddCell(new Cell().Add(new Paragraph(paddle.PaddleNumber.ToString()).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(bidder.FullName).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(tmpTotal.ToString("C2")).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(bidder.AmountPaid.ToString("C2")).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(amtOutstanding.ToString("C2")).SetFont(font).SetPadding(1)));

                    tw.WriteLine(String.Format(CSVFormat
                                               , paddle.PaddleNumber.ToString()
                                               , bidder.FullName.Replace(",", " ", StringComparison.CurrentCulture)
                                               , tmpTotal
                                               , bidder.AmountPaid
                                               , amtOutstanding));
                }

                table.AddCell(new Cell().Add(new Paragraph(" ").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("Grand Totals:").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(bidTotal.ToString("C2")).SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(pdTotal.ToString("C2")).SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(amtOTotal.ToString("C2")).SetFont(font).SetPadding(1)));

                tw.Flush();
                tw.Close();
            }

            document.Add(title);
            document.Add(subtitle);
            document.Add(grandTotal);
            document.Add(paidTotal);
            document.Add(table);
            document.Close();
        }
        public void GenerateReport(AuctionDBContext context)
        {
            var writer   = new PdfWriter("GuestPassReport.pdf");
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            var font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);

            var donations = context.Donation.ToList();


            int count = 0;

            foreach (var donation in donations)
            {
                var donor = context.Donor.Where(o => o.DonorID == donation.DonorID).FirstOrDefault();
                if (donor is null)
                {
                    continue;
                }

                int passCount = context.Bid.Where(o => o.DonationId == donation.DonationID).Count(m => m.IsGuestPass);
                if (passCount <= 0)
                {
                    continue;
                }

                if (count > 0)
                {
                    document.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                }

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("Donation: " + donation.FullTitle);
                sb.AppendLine("Donor: " + donor.FullID);
                sb.AppendLine("Donor Phone: " + donor.PhoneNumber);
                sb.AppendLine("Donor Email: " + donor.EmailAddress);
                sb.AppendLine("Description: ");
                sb.AppendLine(donation.Description);
                sb.AppendLine();

                var header = new Paragraph();
                header.SetFontSize(16)
                .SetTextAlignment(iText.Layout.Properties.TextAlignment.LEFT)
                .Add(new Text(sb.ToString()));

                sb.Clear();

                var table = new Table(2);

                table.AddHeaderCell(new Cell().Add(new Paragraph("Type").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Total Count").SetFont(font).SetPadding(1)));

                var totalGuest = context.Bid.Where(o => o.DonationId == donation.DonationID).Where(m => m.IsGuestPass).Sum(n => n.Units);

                table.AddCell(new Cell().Add(new Paragraph("Guest Passes").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(totalGuest.ToString()).SetFont(font).SetPadding(1)));

                document.Add(header);
                document.Add(table);

                count++;
            }

            document.Close();
        }
        public void GenerateReport(AuctionDBContext context)
        {
            var writer   = new PdfWriter("OutstandingBalance.pdf");
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            var font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);



            var title = new Paragraph();

            title.SetFontSize(30)
            .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
            .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
            .Add(new Text("Outstanding Balance Report"));

            var subtitle = new Paragraph().SetFontSize(15)
                           .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
                           .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
                           .Add(new Text("Report Time: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString()));

            var table = new Table(5);

            table.AddHeaderCell(new Cell().Add(new Paragraph("Paddle Number").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Name").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Bidding Total").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Amount Paid").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Amount Outstanding").SetFont(font).SetPadding(1)));

            var infoList     = new List <Bidder>();
            var bidderList   = context.Bidder.ToList();
            var paddleNumber = context.Paddle.ToDictionary(o => o.BidderId);
            var bidList      = context.Bid.ToList();

            using (TextWriter tw = new StreamWriter("OutstandingBalance.csv"))
            {
                tw.WriteLine("Paddle Number,Name,Bidding Total,Amount Paid,Amount Outstanding");



                decimal bidTotal  = 0;
                decimal pdTotal   = 0;
                decimal amtOTotal = 0;


                foreach (Bidder bidder in bidderList)
                {
                    if (!paddleNumber.ContainsKey(bidder.BidderId))
                    {
                        continue;                                             //If they don't have a paddle, we skip them (no bids)
                    }
                    var paddle = paddleNumber[bidder.BidderId];
                    var bids   = bidList.Where(o => o.PaddleId == paddle.PaddleId).ToList();

                    var tmpTotal       = bids.Sum(o => o.TotalCost);
                    var amtOutstanding = tmpTotal - bidder.AmountPaid;
                    if (amtOutstanding <= 0)
                    {
                        continue;
                    }

                    infoList.Add(bidder);

                    bidTotal  += tmpTotal;
                    pdTotal   += bidder.AmountPaid;
                    amtOTotal += amtOutstanding;

                    table.AddCell(new Cell().Add(new Paragraph(paddle.PaddleNumber.ToString()).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(bidder.FullName).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(tmpTotal.ToString("C2")).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(bidder.AmountPaid.ToString("C2")).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(amtOutstanding.ToString("C2")).SetFont(font).SetPadding(1)));

                    tw.WriteLine(String.Format(CSVFormat
                                               , paddle.PaddleNumber.ToString()
                                               , bidder.FullName.Replace(",", " ", StringComparison.CurrentCulture)
                                               , tmpTotal
                                               , bidder.AmountPaid
                                               , amtOutstanding));
                }

                table.AddCell(new Cell().Add(new Paragraph(" ").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("Grand Totals:").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(bidTotal.ToString("C2")).SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(pdTotal.ToString("C2")).SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(amtOTotal.ToString("C2")).SetFont(font).SetPadding(1)));

                tw.Flush();
                tw.Close();
            }

            document.Add(title);
            document.Add(subtitle);
            document.Add(table);


            foreach (Bidder bidder in infoList)
            {
                document.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));

                var paddle = paddleNumber[bidder.BidderId];
                var bids   = bidList.Where(o => o.PaddleId == paddle.PaddleId).ToList();

                var tmpTotal       = bids.Sum(o => o.TotalCost);
                var amtOutstanding = tmpTotal - bidder.AmountPaid;

                StringBuilder sb = new StringBuilder();
                sb.AppendLine("Bidder Name: " + bidder.FullName);
                if (!String.IsNullOrWhiteSpace(bidder.SecondaryFirstName))
                {
                    sb.AppendLine("Second Name: " + bidder.SecondaryFirstName + " " + bidder.SecondaryLastName);
                }
                sb.AppendLine("Paddle Number: " + paddle.PaddleNumber.ToString());
                sb.AppendLine("Amount Bid: " + tmpTotal.ToString("C2"));
                sb.AppendLine("Amount Paid: " + bidder.AmountPaid.ToString("C2"));
                sb.AppendLine("Amount Owed: " + amtOutstanding.ToString("C2"));
                sb.AppendLine();
                sb.AppendLine("Phone Number: " + bidder.PhoneNumber);
                sb.AppendLine("Email Address: " + bidder.EmailAddress);
                sb.AppendLine("Address: ");
                sb.AppendLine(bidder.AddressLine1);
                sb.AppendLine(bidder.AddressLine2);
                sb.AppendFormat("{0}, {1} {2}", bidder.City, bidder.State, bidder.ZipCode);
                sb.AppendLine();


                var bidderInfo = new Paragraph();
                bidderInfo.SetFontSize(12)
                .Add(new Text(sb.ToString()));

                document.Add(bidderInfo);
            }


            document.Close();
        }
Exemplo n.º 10
0
 public ModuleCategory(AuctionDBContext context)
 {
     this._context = context;
 }
Exemplo n.º 11
0
 public UserController(AuctionDBContext context)
 {
     this._context      = context;
     userfunction       = new ModuleUser(this._context);
     this.errorResquest = new ErrorResquest();
 }
        public void GenerateReport(AuctionDBContext context)
        {
            var writer   = new PdfWriter("BidderReceiptReport.pdf");
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            var font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);

            var bidders = context.Bidder.ToList();

            int count = 0;

            foreach (var bidder in bidders)
            {
                var paddle = context.Paddle.Where(o => o.BidderId == bidder.BidderId).FirstOrDefault();
                if (paddle == null)
                {
                    continue;                  //No Paddle, No receipt
                }
                var bids = context.Bid.Where(o => o.PaddleId == paddle.PaddleId).ToList();
                if (bids.Count <= 0)
                {
                    continue;                  //No Bids, No receipt
                }
                if (count > 0)
                {
                    document.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                }

                var subtitle = new Paragraph().SetFontSize(15)
                               .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
                               .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
                               .Add(new Text("Bidder Receipt"));

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("Primary Bidder: " + bidder.FullName);
                sb.AppendLine("Secondary Bidder: " + bidder.SecondaryFirstName + " " + bidder.SecondaryLastName);
                sb.AppendLine("Paddle Number: " + paddle.PaddleNumber);
                sb.AppendLine();

                var header = new Paragraph();
                header.SetFontSize(16)
                .SetTextAlignment(iText.Layout.Properties.TextAlignment.LEFT)
                .Add(new Text(sb.ToString()));


                var table = new Table(7);

                table.AddHeaderCell(new Cell().Add(new Paragraph("Item Name").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Donor Name").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Donor Phone").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Donor Email").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Cost Per Unit").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Unit Count").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Total Cost").SetFont(font).SetPadding(1)));

                decimal totalCost = 0;


                // Info Lines
                foreach (var bid in bids)
                {
                    var donation = context.Donation.Where(o => o.DonationID == bid.DonationId).First();
                    var donor    = context.Donor.Where(o => o.DonorID == donation.DonorID).First();

                    try
                    {
                        table.AddCell(new Cell().Add(new Paragraph(donation.FullTitle).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(donor.FullID).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(donor.PhoneNumber ?? "").SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(donor.EmailAddress ?? "").SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bid.CostPerUnit.ToString("C2")).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bid.Units.ToString()).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bid.TotalCost.ToString("C2")).SetFont(font).SetPadding(1)));

                        totalCost += bid.TotalCost;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        Console.WriteLine(e.StackTrace);
                        if (e.InnerException != null)
                        {
                            Console.WriteLine(e.InnerException.Message);
                            Console.WriteLine(e.InnerException.StackTrace);
                        }

                        Console.WriteLine("Donor: {0},{1},{2}", donor.FullID, donor.PhoneNumber, donor.EmailAddress);
                        Console.WriteLine("Press Any Key To Continue");
                        Console.ReadKey();
                        throw;
                    }
                }

                table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("Total: ").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(totalCost.ToString("C2")).SetFont(font).SetPadding(1)));


                var breaker = new Paragraph();
                breaker.SetFontSize(16)
                .SetTextAlignment(iText.Layout.Properties.TextAlignment.LEFT)
                .Add(new Text("\n\n"));

                var amtOutstanding = totalCost - bidder.AmountPaid;
                if (amtOutstanding <= 0)
                {
                    amtOutstanding = 0;
                }

                var finalTotal = new Table(3);

                finalTotal.AddHeaderCell(new Cell().Add(new Paragraph("Total Cost").SetFont(font).SetPadding(1)));
                finalTotal.AddHeaderCell(new Cell().Add(new Paragraph("Total Paid").SetFont(font).SetPadding(1)));
                finalTotal.AddHeaderCell(new Cell().Add(new Paragraph("Amount Due").SetFont(font).SetPadding(1)));

                finalTotal.AddCell(new Cell().Add(new Paragraph(totalCost.ToString("C2")).SetFont(font).SetPadding(1)));
                finalTotal.AddCell(new Cell().Add(new Paragraph(bidder.AmountPaid.ToString("C2")).SetFont(font).SetPadding(1)));
                finalTotal.AddCell(new Cell().Add(new Paragraph(amtOutstanding.ToString("C2")).SetFont(font).SetPadding(1)));



                var statement = new Paragraph().SetFontSize(12)
                                .SetTextAlignment(iText.Layout.Properties.TextAlignment.JUSTIFIED)
                                .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
                                .Add(new Text(DISCLAIMER));

                document.Add(header);
                document.Add(table);
                document.Add(breaker);
                document.Add(finalTotal);
                document.Add(statement);

                count++;
            }

            document.Close();
        }
Exemplo n.º 13
0
 public CategoryController(AuctionDBContext context)
 {
     this._context = context;
     catefunction  = new ModuleCategory(this._context);
     errorResquest = new ErrorResquest();
 }
Exemplo n.º 14
0
 public DonorsController(AuctionDBContext context)
 {
     _context = context;
 }
Exemplo n.º 15
0
 public ModuleUser(AuctionDBContext context)
 {
     this._context = context;
 }
        public void GenerateReport(AuctionDBContext context)
        {
            var writer   = new PdfWriter("DonationsTotalReport.pdf");
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            var font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);


            var title = new Paragraph();

            title.SetFontSize(30)
            .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
            .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
            .Add(new Text("Donations Total Report"));

            var subtitle = new Paragraph().SetFontSize(15)
                           .SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
                           .SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
                           .Add(new Text("Report Time: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString()));


            var table = new Table(3);

            table.AddHeaderCell(new Cell().Add(new Paragraph("Donation Item").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Donor Name").SetFont(font).SetPadding(1)));
            table.AddHeaderCell(new Cell().Add(new Paragraph("Bidding Total").SetFont(font).SetPadding(1)));

            using (TextWriter tw = new StreamWriter("DonationsTotalReport.csv"))
            {
                tw.WriteLine("Donation Item,Donor Name,Bidding Total");

                var donations = context.Donation.ToList();

                decimal bidTotal = 0;

                foreach (Donation donation in donations)
                {
                    decimal tmpTotal  = context.Bid.Where(o => o.DonationId == donation.DonationID).Sum(m => m.TotalCost);
                    string  donorName = context.Donor.Where(o => o.DonorID == donation.DonorID).First().FullID;

                    table.AddCell(new Cell().Add(new Paragraph(donation.FullTitle).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(donorName).SetFont(font).SetPadding(1)));
                    table.AddCell(new Cell().Add(new Paragraph(tmpTotal.ToString("C2")).SetFont(font).SetPadding(1)));

                    tw.WriteLine(String.Format(CSVFormat
                                               , donation.FullTitle.Replace(",", " ", StringComparison.CurrentCulture)
                                               , donorName.Replace(",", " ", StringComparison.CurrentCulture)
                                               , tmpTotal
                                               ));

                    bidTotal += tmpTotal;
                }

                table.AddCell(new Cell().Add(new Paragraph(" ").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph("Grand Totals:").SetFont(font).SetPadding(1)));
                table.AddCell(new Cell().Add(new Paragraph(bidTotal.ToString("C2")).SetFont(font).SetPadding(1)));

                tw.Flush();
                tw.Close();
            }

            document.Add(title);
            document.Add(subtitle);
            document.Add(table);
            document.Close();
        }
 public BidsController(AuctionDBContext context)
 {
     _context = context;
 }
 public HomeController(AuctionDBContext context)
 {
     _context = context;
 }
Exemplo n.º 19
0
 public ProductController(AuctionDBContext context)
 {
     this._context = context;
     modulep       = new ModuleProduct(this._context);
 }
        public void GenerateReport(AuctionDBContext context)
        {
            var writer   = new PdfWriter("DonorReport.pdf");
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            var font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);

            var donations = context.Donation.ToList();


            int count = 0;

            foreach (var donation in donations)
            {
                if (count > 0)
                {
                    document.Add(new AreaBreak(iText.Layout.Properties.AreaBreakType.NEXT_PAGE));
                }

                var donor = context.Donor.Where(o => o.DonorID == donation.DonorID).FirstOrDefault();
                if (donor is null)
                {
                    continue;
                }

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("Donation: " + donation.FullTitle);
                sb.AppendLine("Donor: " + donor.FullID);
                sb.AppendLine("Description: ");
                sb.AppendLine(donation.Description);
                sb.AppendLine();

                var header = new Paragraph();
                header.SetFontSize(16)
                .SetTextAlignment(iText.Layout.Properties.TextAlignment.LEFT)
                .Add(new Text(sb.ToString()));

                sb.Clear();

                var table = new Table(5);

                table.AddHeaderCell(new Cell().Add(new Paragraph("Primary Bidder").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Secondary Bidder").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Phone Number").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Email Address").SetFont(font).SetPadding(1)));
                table.AddHeaderCell(new Cell().Add(new Paragraph("Unit Count").SetFont(font).SetPadding(1)));

                var bids = context.Bid.Where(o => o.DonationId == donation.DonationID).ToList();

                foreach (var bid in bids)
                {
                    var bidder = context.Bidder.Where(o => o.BidderId == context.Paddle.Where(p => p.PaddleId == bid.PaddleId).First().BidderId).First();

                    if (!bid.IsGuestPass)
                    {
                        table.AddCell(new Cell().Add(new Paragraph(bidder.FullName).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bidder.SecondaryFirstName + " " + bidder.SecondaryLastName).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bidder.PhoneNumber).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bidder.EmailAddress).SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bid.Units.ToString()).SetFont(font).SetPadding(1)));
                    }
                    else
                    {
                        table.AddCell(new Cell().Add(new Paragraph("Guest Pass").SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph("").SetFont(font).SetPadding(1)));
                        table.AddCell(new Cell().Add(new Paragraph(bid.Units.ToString()).SetFont(font).SetPadding(1)));
                    }
                }

                document.Add(header);
                document.Add(table);

                count++;
            }

            document.Close();
        }