public static Address GetAddress(AddressCard ac) { Address addr = new Address(); addr.Address_1 = ac.Address1; addr.Address_2 = ac.Address2; addr.City = ac.City; addr.State = ac.State; addr.State_ID = ac.State_ID; addr.Country = (ac.Country != null) ? ac.Country.Title : String.Empty; addr.Country_ID = ac.Country_ID; addr.Zip = ac.Zip; addr.FirstName = ac.FirstName; addr.LastName = ac.LastName; addr.MiddleName = ac.MiddleName; addr.HomePhone = ac.HomePhone; addr.WorkPhone = ac.WorkPhone; return addr; }
//SessionUser public SessionUser(long id, string l, string fn, string ln, byte type, byte status, bool rbc, bool robn, bool rlsn, bool rlcn, bool rws, bool rnu, int commrate_id, string email, bool isbillinglikeshipping, AddressCard b, AddressCard s, string ip) { ID = id; Login = l; FirstName = fn; LastName = ln; UserType = type; Status = status; IsRecievingBidConfirmation = rbc; IsRecievingOutBidNotice = robn; IsRecievingLotSoldNotice = rlsn; IsRecievingLotClosedNotice = rlcn; IsRecieveWeeklySpecials = rws; IsRecieveNewsUpdates = rnu; CommRate_ID = commrate_id; Email = email; IsAddressBillingLikeShipping = isbillinglikeshipping; Address_Billing = new Address { Address_1 = b.Address1, Address_2 = b.Address2, City = b.City, Country_ID = b.Country_ID, State_ID = b.State_ID, Zip = b.Zip, Country = ProjectConfig.Config.DataProvider.GetInstance().DifferentRepository.GetCountry(b.Country_ID).Title, State = b.State, HomePhone = b.HomePhone, WorkPhone = b.WorkPhone, FirstName = b.FirstName, LastName = b.LastName, MiddleName = b.MiddleName }; Address_Shipping = new Address { Address_1 = s.Address1, Address_2 = s.Address2, City = s.City, Country_ID = s.Country_ID, State_ID = s.State_ID, Zip = s.Zip, Country = ProjectConfig.Config.DataProvider.GetInstance().DifferentRepository.GetCountry(s.Country_ID).Title, State = s.State, HomePhone = s.HomePhone, WorkPhone = s.WorkPhone, FirstName = s.FirstName, LastName = s.LastName, MiddleName = s.MiddleName }; IP = ip; }
public static void ConsignmentContract(string filePath, string logoPath, string title, string author, string subject, Address lelandsAddress, string lelandsSignaturePath, Address sellerAddress, string sellerEmail, string sellerSignaturePath, DateTime date, List<IdTitleValue> items, string contract) { Document document = new Document(); document.Info.Title = title; document.Info.Author = author; document.Info.Subject = subject; Section section = document.AddSection(); Table table = section.AddTable(); table.Style = "Table"; Column column = table.AddColumn("5cm"); column.Format.Alignment = ParagraphAlignment.Left; column = table.AddColumn("6cm"); column.Format.Alignment = ParagraphAlignment.Left; column = table.AddColumn("6cm"); column.Format.Alignment = ParagraphAlignment.Left; Row row = table.AddRow(); row.HeadingFormat = true; row.Format.Alignment = ParagraphAlignment.Center; row.Format.Font.Bold = true; Image image = row.Cells[0].AddImage(logoPath); image.LockAspectRatio = true; image.RelativeVertical = RelativeVertical.Line; image.RelativeHorizontal = RelativeHorizontal.Margin; image.Top = ShapePosition.Top; image.Left = ShapePosition.Left; image.WrapFormat.Style = WrapStyle.Through; row.Cells[0].Format.Alignment = ParagraphAlignment.Left; row.Cells[0].VerticalAlignment = VerticalAlignment.Top; row.Cells[0].MergeDown = 5; Paragraph paragraph = row.Cells[1].AddParagraph(); paragraph.AddText("Consignment Agreement Between"); row.Cells[1].Format.Alignment = ParagraphAlignment.Center; row.Cells[1].MergeRight = 1; row = table.AddRow(); row.Cells[1].AddParagraph(lelandsAddress.FirstName); row.Cells[1].Format.Font.Size = 9; row.Cells[1].Format.Font.Bold = true; row.Cells[2].AddParagraph(string.Format("{0} {1}", sellerAddress.FirstName, sellerAddress.LastName)); row.Cells[2].Format.Font.Size = 9; row.Cells[2].Format.Font.Bold = true; row = table.AddRow(); row.Cells[1].AddParagraph(lelandsAddress.Address_1); row.Cells[1].Format.Font.Size = 9; row.Cells[2].AddParagraph(string.Format("{0} {1}", sellerAddress.Address_1, sellerAddress.Address_2)); row.Cells[2].Format.Font.Size = 9; row = table.AddRow(); row.Cells[1].AddParagraph(string.Format("{0}, {1} {2}", lelandsAddress.City, lelandsAddress.State, lelandsAddress.Zip)); row.Cells[1].Format.Font.Size = 9; row.Cells[2].AddParagraph(string.Format("{0}, {1} {2}", sellerAddress.City, sellerAddress.State, sellerAddress.Zip)); row.Cells[2].Format.Font.Size = 9; row = table.AddRow(); row.Cells[1].AddParagraph(string.Format("Tel: {0}", lelandsAddress.HomePhone)); row.Cells[1].Format.Font.Size = 9; row.Cells[2].AddParagraph(string.Format("Tel (Home): {0}", sellerAddress.HomePhone)); row.Cells[2].Format.Font.Size = 9; row = table.AddRow(); row.Cells[1].AddParagraph(string.Format("Fax: {0}", lelandsAddress.WorkPhone)); row.Cells[1].Format.Font.Size = 9; row.Cells[2].AddParagraph(string.Format("Tel (Work): {0}", !string.IsNullOrWhiteSpace(sellerAddress.WorkPhone) ? sellerAddress.WorkPhone : "---")); row.Cells[2].Format.Font.Size = 9; row = table.AddRow(); row.Cells[1].AddParagraph(lelandsAddress.LastName); row.Cells[1].Format.Font.Size = 9; row.Cells[2].AddParagraph(sellerEmail); row.Cells[2].Format.Font.Size = 9; paragraph = section.Footers.Primary.AddParagraph(); paragraph.AddText(string.Format("{0} - {1}", author, DateTime.Now.Year)); paragraph.Format.Font.Size = 9; paragraph.Format.Alignment = ParagraphAlignment.Center; section.AddParagraph(" "); paragraph = section.AddParagraph(); paragraph.Format.Font.Bold = true; paragraph.AddText("SCHEDULE A"); paragraph.AddLineBreak(); paragraph.AddText("PROPERTY"); paragraph.Format.Alignment = ParagraphAlignment.Center; table = section.AddTable(); table.Borders.Color = new Color(0, 0, 0); table.Borders.Width = 0.5; table.Style = "Table"; column = table.AddColumn("13cm"); column.Format.Font.Size = 8; column = table.AddColumn("4cm"); column.Format.Alignment = ParagraphAlignment.Center; column.Format.Font.Size = 8; row = table.AddRow(); row.Cells[0].AddParagraph("Description"); row.Cells[0].Format.Alignment = ParagraphAlignment.Center; row.Cells[0].Format.Font.Bold = true; row.Cells[1].AddParagraph("Seller's Reserve"); row.Cells[1].Format.Font.Bold = true; foreach (var item in items) { row = table.AddRow(); row.Cells[0].AddParagraph(item.Title); row.Cells[0].Format.Font.Size = 7; row.Cells[1].AddParagraph(item.Value.GetCurrency(false)); row.Cells[1].Format.Font.Size = 7; } var y = 38 - items.Count; for (int i = 0; i < y; i++) { table.AddRow(); } section.AddParagraph(" "); paragraph = section.AddParagraph(); paragraph.Format.Font.Bold = true; paragraph.AddText("Seller agrees with the foregoing, and agrees to keep confidential all of the terms and conditions of this agreement by signing in the space provided below:"); paragraph.Format.Alignment = ParagraphAlignment.Center; paragraph.Format.Font.Size = 7; section.AddParagraph(" "); section.AddParagraph(" "); table = section.AddTable(); column = table.AddColumn("3cm"); column.Format.Alignment = ParagraphAlignment.Right; column = table.AddColumn("6cm"); column.Format.Alignment = ParagraphAlignment.Center; column = table.AddColumn("6cm"); column.Format.Alignment = ParagraphAlignment.Center; row = table.AddRow(); row.Cells[0].AddParagraph("Date:"); row.Cells[0].Format.Font.Size = 6; paragraph = row.Cells[1].AddParagraph(date.ToShortDateString()); paragraph.Format.Font.Size = 6; paragraph.AddLineBreak(); FormattedText formattedText = paragraph.AddFormattedText("___________________________"); formattedText.Superscript = true; formattedText.Font.Size = 10; row = table.AddRow(); row.Cells[0].AddParagraph("Agreed to by:"); row.Cells[0].Format.Font.Size = 6; row.Cells[0].VerticalAlignment = VerticalAlignment.Center; row.Cells[1].VerticalAlignment = VerticalAlignment.Bottom; if (string.IsNullOrWhiteSpace(sellerSignaturePath)) { paragraph = row.Cells[1].AddParagraph(); formattedText = paragraph.AddFormattedText("___________________________"); formattedText.Superscript = true; } else { row.Cells[1].AddImage(sellerSignaturePath); } paragraph = row.Cells[1].AddParagraph(); formattedText = paragraph.AddFormattedText("Seller"); formattedText.Superscript = true; row.Cells[2].VerticalAlignment = VerticalAlignment.Bottom; row.Cells[2].AddImage(lelandsSignaturePath); paragraph = row.Cells[2].AddParagraph(); formattedText = paragraph.AddFormattedText("Lelands.com"); formattedText.Superscript = true; section = document.AddSection(); paragraph = section.AddParagraph("TERMS & CONDITIONS"); paragraph.Format.Alignment = ParagraphAlignment.Center; paragraph.Format.Font.Bold = true; paragraph.Format.Font.Size = 10; paragraph.Format.SpaceAfter = 15; string[] lines = contract.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None); foreach (var line in lines) { paragraph = section.AddParagraph(line); paragraph.Format.Font.Size = 8; paragraph.Format.SpaceAfter = 10; //section.AddParagraph(" "); } // A flag indicating whether to create a Unicode PDF or a WinAnsi PDF file. // This setting applies to all fonts used in the PDF document. // This setting has no effect on the RTF renderer. bool unicode = true; // An enum indicating whether to embed fonts or not. // This setting applies to all font programs used in the document. // This setting has no effect on the RTF renderer. // (The term 'font program' is used by Adobe for a file containing a font. Technically a 'font file' // is a collection of small programs and each program renders the glyph of a character when executed. // Using a font in PDFsharp may lead to the embedding of one or more font programms, because each outline // (regular, bold, italic, bold+italic, ...) has its own fontprogram) PdfFontEmbedding embedding = PdfFontEmbedding.Always; // Set to PdfFontEmbedding.None or PdfFontEmbedding.Always only // ---------------------------------------------------------------------------------------- // Create a renderer for the MigraDoc document. PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(unicode, embedding); // Associate the MigraDoc document with a renderer pdfRenderer.Document = document; // Layout and render document to PDF pdfRenderer.RenderDocument(); // Save the document... pdfRenderer.PdfDocument.Save(filePath); }
public JsonResult SignConsignmentContract(long id, string sellerSignature) { try { Consignment consignment = InvoiceRepository.GetConsignment(id); ConsignmentContract consignmentContract = InvoiceRepository.GetConsignmentContract(id); if (consignment == null || consignmentContract == null || consignmentContract.StatusID != (int)Consts.ConsignmentContractStatus.Unsigned || consignment.User_ID != AppHelper.CurrentUser.ID) { throw new Exception("Error occurred during the process of signing the document. Please reload page and try again"); } if (string.IsNullOrWhiteSpace(sellerSignature)) { throw new Exception("Draw signature as first."); } Specialist specialist = InvoiceRepository.GetSpecialist(consignment.Specialist_ID.GetValueOrDefault(-1)); if (specialist == null) { throw new Exception("Error occurred during the process of signing the document. Please contact us."); } string lelandsSignaturePath = AppHelper.SignatureImagesOnDisk(string.Format("userSignature{0}.png", specialist.User_ID)); FileInfo fileInfo = new FileInfo(lelandsSignaturePath); if (!fileInfo.Exists) { throw new Exception("Error occurred during the process of signing the document. Please contact us."); } SignatureToImage signature = new SignatureToImage(); Bitmap signatureImage = signature.SigJsonToImage(sellerSignature); string sellerSignaturePath = AppHelper.ConsignmentContractOnDisk(consignment.ID, consignmentContract.FileName.ToLower().Replace(".pdf", ".png")); fileInfo = new FileInfo(sellerSignaturePath); if (fileInfo.Exists) fileInfo.Delete(); signatureImage.Save(sellerSignaturePath); Address lelandsAddress = new Address { FirstName = "Lelands.com", LastName = Consts.SiteEmail, Address_1 = Consts.CompanyAddress, City = Consts.CompanyCity, State = Consts.CompanyState, Zip = Consts.CompanyZip, HomePhone = Consts.CompanyPhone, WorkPhone = Consts.CompanyFax }; User consignor = UserRepository.GetUser(consignment.User_ID, true); Address consignorAddress = Address.GetAddress(UserRepository.GetAddressCard(consignor.Billing_AddressCard_ID.GetValueOrDefault(0), true)); PdfReports.ConsignmentContract(AppHelper.ConsignmentContractOnDisk(consignment.ID, consignmentContract.FileName), AppHelper.PublicImagesOnDisk("logo.png"), string.Empty, Consts.CompanyTitleName, string.Empty, lelandsAddress, lelandsSignaturePath, consignorAddress, consignor.Email, sellerSignaturePath, DateTime.Now, InvoiceRepository.GetConsignmentDetailsByConsignmentID(id), consignmentContract.ContractText); consignmentContract.StatusID = (int)Consts.ConsignmentContractStatus.Signed; InvoiceRepository.UpdateConsignmentContract(consignmentContract); } catch (Exception exc) { return JSON(new { success = false, exc.Message }); } return JSON(new { success = true }); }
public JsonResult UpdateConsignmentContractText(long consignmentID, string contractText) { try { var consignment = AuctionRepository.GetConsignment(consignmentID); if (consignment == null) throw new Exception("Consignment does not exist."); var consignmentContract = AuctionRepository.GetConsignmentContract(consignmentID); if (consignmentContract == null) throw new Exception("Consignment does not exist."); if (consignmentContract.StatusID == (int) Consts.ConsignmentContractStatus.Signed) { throw new Exception("The contract is already signed by seller."); } consignmentContract.ContractText = contractText; var fileName = string.Format("CA{0}.pdf", DateTime.Now.Ticks); var specialist = AuctionRepository.GetSpecialist(consignment.Specialist_ID.GetValueOrDefault(-1)); if (specialist == null) { throw new Exception("Set specialist at first."); } var lelandsSignaturePath = DiffMethods.SignatureImagesOnDisk(string.Format("userSignature{0}.png", specialist.User_ID)); var fileInfo = new FileInfo(lelandsSignaturePath); if (!fileInfo.Exists) { throw new Exception("You can't generate contract without specialist signature."); } if (!string.IsNullOrWhiteSpace(consignmentContract.FileName)) { fileInfo = new FileInfo(DiffMethods.ConsignmentContractOnDisk(consignment.ID, consignmentContract.FileName)); if (fileInfo.Exists) fileInfo.Delete(); } var lelandsAddress = new Address { FirstName = "Lelands.com", LastName = Consts.SiteEmail, Address_1 = Consts.CompanyAddress, City = Consts.CompanyCity, State = Consts.CompanyState, Zip = Consts.CompanyZip, HomePhone = Consts.CompanyPhone, WorkPhone = Consts.CompanyFax }; var consignor = consignment.User; var consignorAddress = Address.GetAddress(consignor.AddressCard_Billing); var items = AuctionRepository.GetAuctionsListByConsignor(consignment.ID); PdfReports.ConsignmentContract(DiffMethods.ConsignmentContractOnDisk(consignment.ID, fileName), DiffMethods.PublicImagesOnDisk("logo.png"), string.Empty, Consts.CompanyTitleName, string.Empty, lelandsAddress, lelandsSignaturePath, consignorAddress, consignor.Email, string.Empty, DateTime.Now, items, consignmentContract.ContractText); consignmentContract.UpdateFields(consignmentContract.ConsignmentID, (int) Consts.ConsignmentContractStatus.Unsigned, consignmentContract.ContractText, fileName); AuctionRepository.UpdateConsignmentContract(consignmentContract); return JSON(new JsonExecuteResult(JsonExecuteResultTypes.SUCCESS, "Contract was generated successfully.", new { StatusText = Consts.ConsignmentContractStatus.Unsigned.ToString(), DownloadLink = Url.Action("GetConsignmentContract", "Auction", new {consignmentID = consignment.ID}), ShowLink = Url.Action("ShowConsignmentContract", "Auction", new {consignmentID = consignment.ID}) })); } catch (Exception exc) { return JSON(new JsonExecuteResult(JsonExecuteResultTypes.ERROR, exc.Message)); } }