static void FillContactsForMember(Row row, int startIndex, ContactReportMambers member, FilterContactReport filter) { var cols = filter.Columns.Where(e => (int)e.Column >= 0 && (int)e.Column <= 7).OrderBy(w => w.Column).ToList(); for (int i = 0; i < cols.Count(); i++) { var index = startIndex + i; var col = cols[i]; FillRow(row, index, GetContactStringFromList(member.Contacts.Where(r => r.PhoneTypeID == (int)col.Column).ToList(), filter, member.TypeID) , 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); }