/// <summary> /// return string with full address /// </summary> /// <param name="address"></param> /// <param name="filter"></param> /// <returns></returns> static string GetFullAddressLine(ContactReportAddress address, FilterContactReport filter) { var response = ""; if (filter.Columns.Any(e => e.Column == ReportColumns.Company)) { response += string.IsNullOrEmpty(address.CompanyName) ? "" : address.CompanyName + "\n"; } if (filter.Columns.Any(e => e.Column == ReportColumns.Address)) { response += string.IsNullOrEmpty(address.Address) && string.IsNullOrEmpty(address.Address2) ? "" : address.Address + (!string.IsNullOrEmpty(address.Address2) ? $", {address.Address2}" : "") + "\n"; } if (filter.Columns.Any(e => e.Column == ReportColumns.City)) { response += $" {address.City}"; } if (filter.Columns.Any(e => e.Column == ReportColumns.State)) { response += $" {address.State}"; } if (filter.Columns.Any(e => e.Column == ReportColumns.Zip)) { response += $" {address.Zip}"; } if (filter.Columns.Any(e => e.Column == ReportColumns.Country)) { response += $" {address.Country}"; } return(response); }
static void GetAddressString(StringBuilder str, ContactReportAddress address, FilterContactReport filter) { if (filter.Columns.Any(e => e.Column == ReportColumns.Address && e.IsChecked)) { str.Append($"\"{address.Address}\","); } if (filter.Columns.Any(e => e.Column == ReportColumns.City && e.IsChecked)) { str.Append($"\"{address.City}\","); } if (filter.Columns.Any(e => e.Column == ReportColumns.State && e.IsChecked)) { str.Append($"\"{address.State}\","); } if (filter.Columns.Any(e => e.Column == ReportColumns.Zip && e.IsChecked)) { str.Append($"\"{address.Zip}\","); } if (filter.Columns.Any(e => e.Column == ReportColumns.Country && e.IsChecked)) { str.Append($"\"{address.Country}\","); } if (filter.Columns.Any(e => e.Column == ReportColumns.Company && e.IsChecked)) { str.Append($"\"{address.CompanyName}\","); } }
static void AddEnvelopPage(string senderAddr, string receipt, ContactReportAddress addr, FilterContactReport filter) { XUnit pdfWidth = new XUnit(4.125, XGraphicsUnit.Inch); XUnit pdfHeight = new XUnit(9.5, XGraphicsUnit.Inch); XFont font = new XFont("Times New Roman", 10, XFontStyle.Bold); outputDocument.PageLayout = PdfPageLayout.SinglePage; PdfPage page = outputDocument.AddPage(); page.Height = pdfHeight; page.Width = pdfWidth; page.Orientation = PageOrientation.Landscape; // Get an XGraphics object for drawing XGraphics gfx = XGraphics.FromPdfPage(page); //sender XTextFormatter tf = new XTextFormatter(gfx); XRect rect = new XRect(30, 30, (pdfHeight / 2) - 30, (pdfWidth / 2) - 30); // gfx.DrawRectangle(XBrushes.SeaShell, rect); tf.Alignment = XParagraphAlignment.Left; tf.DrawString(senderAddr, font, XBrushes.Black, rect, XStringFormats.TopLeft); // recipient rect = new XRect((pdfHeight / 2) - 30, (pdfWidth / 2) - 30, pdfHeight, pdfWidth); tf.Alignment = XParagraphAlignment.Left; tf.DrawString($"{receipt}\n" + GetFullAddressLine(addr, filter), font, XBrushes.Black, rect, XStringFormats.TopLeft); }
/// <summary> /// return string with full address /// </summary> /// <param name="address"></param> /// <param name="filter"></param> /// <returns></returns> string GetFullAddressLine(ContactReportAddress address, FilterContactReport filter, bool newLineForAddres = false) { var response = ""; if (filter.Columns.Any(e => e.Column == ReportColumns.Company) && !string.IsNullOrEmpty(address.CompanyName)) { response += address.CompanyName + "\n"; } if (filter.Columns.Any(e => e.Column == ReportColumns.Address)) { response += string.IsNullOrEmpty(address.Address) && string.IsNullOrEmpty(address.Address2) ? "" : address.Address + (!string.IsNullOrEmpty(address.Address2) ? $", {address.Address2}" : "") + "\n"; } if (filter.Columns.Any(e => e.Column == ReportColumns.City && e.IsChecked)) { response += $"{address.City}, "; } if (filter.Columns.Any(e => e.Column == ReportColumns.State && e.IsChecked)) { response += $"{address.State} "; } if (filter.Columns.Any(e => e.Column == ReportColumns.Zip && e.IsChecked)) { response += $"{address.Zip} "; } if (filter.Columns.Any(e => e.Column == ReportColumns.Country && e.IsChecked) && (string.IsNullOrEmpty(CountryInSettings) || !string.Equals(address.Country, CountryInSettings, StringComparison.InvariantCultureIgnoreCase))) { response += $", {address.Country}"; } return(response); }
EnvelopeAddress AddEnvelopAddress(string customAddress, ContactReportAddress addr, TransFilterType addrType, string gender = null) { string senderAddress = FormAddressStr( GetAddrLabel(addr, addrType, gender), addr.CompanyName, addr.Address, addr.Address2, addr.City, addr.State, addr.Zip, addr.Country, CountryInSettings); return(new EnvelopeAddress(0, customAddress, senderAddress)); }
private string GetAddrLabel(ContactReportAddress addr, TransFilterType addrType, string gender) { if (addrType == TransFilterType.Family) { return(addr.Label); } switch (gender) { case "Male": return(addr.HisLabel); case "Female": return(addr.HerLabel); } return(addr.Label); }
static string GetAddressCol(ContactReportAddress address) { var addressResult = ""; if (!string.IsNullOrEmpty(address.Address)) { addressResult = address.Address; } if (!string.IsNullOrEmpty(address.Address2)) { if (!string.IsNullOrEmpty(address.Address)) { addressResult += "\n"; } addressResult += address.Address2; } return(addressResult); }
/// <summary> /// Return addres line without address /// </summary> /// <param name="address"></param> /// <param name="filter"></param> /// <returns></returns> static string GetShortAddressLine(ContactReportAddress address, FilterContactReport filter) { var response = ""; if (filter.Columns.Any(e => e.Column == ReportColumns.City)) { response += $" {address.City}"; } if (filter.Columns.Any(e => e.Column == ReportColumns.State)) { response += $" {address.State}"; } if (filter.Columns.Any(e => e.Column == ReportColumns.Zip)) { response += $" {address.Zip}"; } if (filter.Columns.Any(e => e.Column == ReportColumns.Country)) { response += $" {address.Country}"; } return(response); }
static void FillContRow(ContactReportResultDto contact, FilterContactReport filter, string companyName, ContactReportAddress address) { colsRows++; Row row = _table.AddRow(); var startIndex = 1; //fam name FillRow(row, 0, contact.FamilyName, false, ParagraphAlignment.Left, VerticalAlignment.Center); //company if (filter.Columns.Any(r => r.Column == ReportColumns.Company)) { startIndex++; FillRow(row, 1, string.IsNullOrEmpty(companyName) ? "" : companyName, false, ParagraphAlignment.Left, VerticalAlignment.Center); } // addresses int position = filter.Columns.Any(r => r.Column == ReportColumns.Company) ? 2 : 1; if (filter.Columns.Any(e => e.Column == ReportColumns.Address && e.IsChecked)) { FillRow(row, position, address != null ? (string.IsNullOrEmpty(address.Address) ? "" : address.Address) : "", false, ParagraphAlignment.Left, VerticalAlignment.Center); startIndex++; position++; } if (filter.Columns.Any(e => (int)e.Column >= 8 && (int)e.Column <= 12 && e.IsChecked)) { startIndex++; FillRow(row, position, address != null ? GetShortAddressLine(address, filter) : "", false, ParagraphAlignment.Left, VerticalAlignment.Center); } //contacts var cols = filter.Columns.Where(e => (int)e.Column >= 0 && (int)e.Column <= 7) .OrderBy(q => q.Column) .ToList(); for (int i = 0; i < cols.Count; i++) { var index = startIndex + i; var col = cols[i]; FillRow(row, index, GetContactsForFamily(contact.Members.ToList(), filter, (int)col.Column), false, ParagraphAlignment.Left, VerticalAlignment.Center); } }
static void FillContRow(ContactReportMambers member, FilterContactReport filter, string companyName, ContactReportAddress address) { colsRows++; Row row = _table.AddRow(); bool addressChecked = filter.Columns.Any(r => (int)r.Column >= 8 && (int)r.Column <= 12); // var startIndex = addressChecked ? 2 : 1; var startIndex = 1; //fam name FillRow(row, 0, (filter.SkipTitles ? "" : member.Title) + member.FirstName + " " + member.LastName, false, ParagraphAlignment.Left, VerticalAlignment.Center); //company if (filter.Columns.Any(r => r.Column == ReportColumns.Company)) { startIndex++; FillRow(row, 1, string.IsNullOrEmpty(companyName) ? "" : companyName, false, ParagraphAlignment.Left, VerticalAlignment.Center); } // addresses int position = filter.Columns.Any(r => r.Column == ReportColumns.Company) ? 2 : 1; if (filter.Columns.Any(e => e.Column == ReportColumns.Address && e.IsChecked)) { FillRow(row, position, address != null ? (string.IsNullOrEmpty(address.Address) ? "" : address.Address) : "", false, ParagraphAlignment.Left, VerticalAlignment.Center); startIndex++; position++; } if (filter.Columns.Any(e => (int)e.Column >= 8 && (int)e.Column <= 12 && e.IsChecked)) { startIndex++; FillRow(row, position, address != null ? GetShortAddressLine(address, filter) : "", false, ParagraphAlignment.Left, VerticalAlignment.Center); } FillContactsForMember(row, startIndex, member, filter); }
private static void CreateEnvelopsForMembers(string senderAddr, ContactReportResultDto contact, ContactReportAddress addr, FilterContactReport filter) { foreach (ContactReportMambers member in contact.Members) { AddEnvelopPage(senderAddr, (filter.SkipTitles ? "" : member.Title) + member.FirstName + " " + member.LastName, addr, filter); } }
static void FillRow(StringBuilder str, string name, FilterContactReport filter, ContactReportAddress addr, List <ContactReportContactInfo> contactsList) { var contactStr = ""; str.Append($"\"{name}\","); if (addr != null) { GetAddressString(str, addr, filter); } else { GetEmptyAddressString(str, filter); } // var contactsList = contact.Members.SelectMany(r => r.Contacts.Select(t => { t.MemberType = r.TypeID; return t; })).ToList(); foreach (ReportColumn col in filter.Columns.Where(e => (int)e.Column <= 7 && e.IsChecked).OrderBy(e => e.Column)) { var colValue = GetContactsByCol(col.Sort, contactsList); if (!string.IsNullOrEmpty(colValue)) { contactStr += colValue; } } str.Append(contactStr); str.Append("\n"); }
void CreateEnvelopsForMembers(ref Dictionary <int, EnvelopeAddress> labels, string senderAddr, ContactReportResultDto contact, ContactReportAddress addr, FilterContactReport filter) { var index = labels.Count; var members = contact.Members.ToList(); for (int i = 0; i < members.Count; i++) { labels.Add(index + i, AddEnvelopAddress(senderAddr, addr, filter.ReportType, members[i].Gender)); } }