public Boolean SaveContactForm(ContactForm ocForm) { try { return(ContactFormDao.Save(ocForm) >= 0); } catch (ApplicationException) { return(false); } }
/// <summary> /// Obtaions a dictionary of all contact forms that fall under the included criteria, grouping them by their source form name. /// </summary> private IList <ContactForm> GetRequestedContactForms(string businessArea, List <string> formTypes, string startingDateValue, string endingDateValue, string contactType) { DateTime?startingDate; DateTime?endingDate; var contactForms = new List <ContactForm>(); try { for (int i = 0; i < formTypes.Count; i++) // Check FormTypes { formTypes[i] = GetValidFormType(formTypes[i]); } // Check Starting Date startingDate = GetValidStartDate(startingDateValue); endingDate = GetValidEndDate(endingDateValue); if (!endingDate.HasValue || endingDate.Value == DateTime.MinValue) { endingDate = DateTime.Now; } endingDate = endingDate.Value.Date.AddDays(1).AddMilliseconds(-1); // Get the highest possible time for the date. if (!startingDate.HasValue) { startingDate = endingDate.Value.AddDays(-7); } var forms = ContactFormDao.GetContactsByCriteria(businessArea, formTypes, startingDate.Value, endingDate.Value); foreach (var form in forms) { if (string.IsNullOrEmpty(form.FormData)) // Skip items that dont' have any form data. . . { continue; } if (!string.IsNullOrEmpty(contactType) && // Filter by 'contactType,' if necessary. . . !form.ContactTypes.Trim().Equals(contactType.Trim(), StringComparison.CurrentCultureIgnoreCase)) { continue; } contactForms.Add(form); // Add the form to the list. . . } } catch (Exception ex) { return(null); } return(contactForms); }
private void BindData() { // lets prepopulate starting date to 7 days ago wf_StartingFrom.Text = DateTime.Now.AddDays(-7).ToShortDateString(); wf_Contacts.DataSource = ContactFormDao.GetLast100Contacts(GetFormTypes()); wf_Contacts.DataBind(); wf_PreviewDesc.Text = "Viewing Last 100 Contacts"; wf_PreviewDesc.Visible = true; }
private IList <ContactForm> GetRequestedContactForms() { List <string> formTypes = new List <string>(); DateTime? startingDate; DateTime? endingDate; try { // Add FormTypes //formType = GetValidFormType(wf_FormTypes.SelectedValue); formTypes = GetFormTypes(); // Check Starting Date startingDate = GetValidStartDate(wf_StartingFrom); if (!startingDate.HasValue) { return(null); } endingDate = GetValidEndDate(wf_EndingOn); if (!endingDate.HasValue) { return(null); } else { if (endingDate < MaxDateTime.AddDays(-1)) { endingDate = ((DateTime)endingDate).AddDays(1).AddMilliseconds(-1); } } UpdatePreviewDescription(formTypes, startingDate, endingDate); return(ContactFormDao.GetContactsByCriteria(formTypes, startingDate.Value, endingDate.Value)); } catch (ArgumentOutOfRangeException outOfRangeException) { wf_Status.Text = outOfRangeException.Message; wf_Status.Visible = true; return(null); } catch (ArgumentException ex) { wf_Status.Text = ex.Message; wf_Status.Visible = true; return(null); } }
void wf_BusinessTypes_SelectedIndexChanged(object sender, EventArgs e) { var businessArea = GetValidBusinessArea(wf_BusinessTypes.SelectedValue); IList <ContactFormType> formTypes; if (string.IsNullOrEmpty(businessArea)) // If 'All Areas' or an invalid value is selected, fill with all items. . . { formTypes = ContactFormDao.GetContactFormTypes(); } else // Fill with business Area items. . . { formTypes = ContactFormDao.GetContactFormTypes(businessArea); } ResetFormTypes(formTypes); }
public Boolean SaveContactForm_Basic ( string business_area, string source_form_name, string source_path, string external_key, string external_date, string contact_type, string contact_fullname, string contact_email, string contact_phone, string company_name, string language ) { ContactForm ocForm = new ContactForm(); DateTime extDate; // temp to parse external_date ocForm.BusinessArea = business_area; ocForm.SourceFormName = source_form_name; ocForm.SourcePath = source_path; ocForm.ExternalKey = external_key; if (DateTime.TryParse(external_date, out extDate)) { ocForm.ExternalDate = extDate; } else { ocForm.ExternalDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; } ocForm.ContactTypes = contact_type; ocForm.Name = contact_fullname; ocForm.Email = contact_email; ocForm.Phone = contact_phone; ocForm.Company = company_name; ocForm.Language = language; ocForm.FormData = XMLSerializeBasicContactForm(ocForm); try { return(ContactFormDao.Save(ocForm) >= 0); } catch (ApplicationException) { return(false); } }
private void BindData() { // Populate Business Area drop down. . . wf_BusinessTypes.DataSource = ContactFormDao.GetContactFormBusinessAreas(); wf_BusinessTypes.DataBind(); wf_BusinessTypes.AutoPostBack = true; wf_BusinessTypes.Items.Insert(0, ALLAREAS_DESC); // Populate Form Types so that admin can filter down what site/form ResetFormTypes(ContactFormDao.GetContactFormTypes()); // lets prepopulate starting date to 7 days ago wf_StartingFrom.Text = DateTime.Now.AddDays(-7).ToShortDateString(); wf_Contacts.DataSource = ContactFormDao.GetLast100Contacts(); wf_Contacts.DataBind(); wf_PreviewDesc.Text = "Viewing Last 100 Contacts"; wf_PreviewDesc.Visible = true; }
private IList <ContactForm> GetRequestedContactForms() { string formType; DateTime?startingDate; DateTime?endingDate; try { var formTypes = new List <string>(); // Grab the business area var businessArea = GetValidBusinessArea(wf_BusinessTypes.SelectedValue); // Check FormType formType = GetValidFormType(wf_FormTypes.SelectedValue); if (!string.IsNullOrEmpty(formType)) { formTypes.Add(formType); } else { formTypes.AddRange(ContactFormDao.GetContactFormTypes(businessArea).Select(x => x.SourceFormName)); } // Check Starting Date startingDate = GetValidStartDate(wf_StartingFrom); if (!startingDate.HasValue) { return(null); } endingDate = GetValidEndDate(wf_EndingOn); if (!endingDate.HasValue) { return(null); } else { if (endingDate < MaxDateTime.AddDays(-1)) { endingDate = ((DateTime)endingDate).AddDays(1).AddMilliseconds(-1); } } UpdatePreviewDescription(businessArea, formType, startingDate, endingDate); return(ContactFormDao.GetContactsByCriteria(businessArea, formTypes, startingDate.Value, endingDate.Value)); } catch (ArgumentOutOfRangeException outOfRangeException) { wf_Status.Text = outOfRangeException.Message; wf_Status.Visible = true; return(null); } catch (ArgumentException ex) { wf_Status.Text = ex.Message; wf_Status.Visible = true; return(null); } }
public bool WriteContactListFileToResponse(string formType, string businessArea, string endingDateValue, string startingDateValue, string contactType, string format, string columnList, string columnOrderList, string columnMap, HttpResponse Response) { if (string.IsNullOrEmpty(formType)) // Make sure that we have something in formtype. . . { formType = string.Empty; } List <string> formTypes = formType.Split(',').ToList(); if (!string.IsNullOrEmpty(formType) && formTypes.Count == 1) { var formTypeMapping = ContactFormDao.GetContactFormType(formType); if (formTypeMapping != null && string.IsNullOrEmpty(columnMap)) { columnMap = formTypeMapping.ColumnMap ?? string.Empty; } } var forms = GetRequestedContactForms(businessArea, formTypes, startingDateValue, endingDateValue, contactType); if (forms == null) // Don't bother processing any further if we don't have anything. . . { return(false); } IList <DataTable> tables = null; try { if (string.IsNullOrEmpty(columnMap)) { tables = XmlToDataTables(forms.Select(x => x.FormData), columnList, columnOrderList); } else { Regex mapregExp = new Regex(@"(?:([a-zA-Z_0-9]+)\[((?<![\\])['""])((?:.(?!(?<![\\])\2))*.?\2)\:(\d+)\])*"); //re-format columnMap into list and order list // format is: // columnMap=fieldName["DisplayName with quotes as """:order] // e.g. // columnMap=Zip["Zip/PostalCode":1]Email["Email Address":2] MatchCollection ms = mapregExp.Matches(columnMap); List <string> columnsToSelect = new List <string>(); List <int> columnOrders = new List <int>(); List <string> columnNames = new List <string>(); foreach (Match m in ms) { if (m.Length > 0) { foreach (Capture c in m.Groups[1].Captures) { columnsToSelect.Add(c.Value); } foreach (Capture c in m.Groups[3].Captures) { columnNames.Add(c.Value.Substring(0, c.Value.Length - 1).Replace("\\\"", "\"")); } foreach (Capture c in m.Groups[4].Captures) { columnOrders.Add(int.Parse(c.Value)); } } } List <ColumnMapEntry> columnEntrys = new List <ColumnMapEntry>(); for (int i = 0; i < columnsToSelect.Count; i++) { columnEntrys.Add(new ColumnMapEntry(columnsToSelect[i], columnNames[i], columnOrders[i])); } Dictionary <string, string> columnDisplayMap = columnEntrys.ToDictionary(c => c.FieldName, c => c.DisplayName); columnList = string.Join(",", columnsToSelect.ToArray()); columnOrderList = string.Join(",", columnEntrys.OrderBy(c => c.ColumnOrder).Select(c => c.FieldName).ToArray()); //then call existing method tables = XmlToDataTables(forms.Select(x => x.FormData), columnList, columnOrderList); //then rewrite all column names in output table list foreach (DataTable table in tables) { foreach (DataColumn column in table.Columns) { column.Caption = columnDisplayMap[column.ColumnName]; } } } } catch (Exception ex) { logger.Error("Failure generating report", ex); // Log the error. . . } Response.Clear(); Response.Buffer = true; Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); if (string.IsNullOrEmpty(format)) { format = "xls"; } switch (format) { case "xls": Response.AppendHeader("Content-Disposition", "attachment;filename=contacts.xls"); Response.ContentType = "application/ms-excel"; break; case "csv": Response.AppendHeader("Content-Disposition", "attachment;filename=contacts.csv"); Response.ContentType = "text/csv"; break; } if (format == "csv") { foreach (var schemaResult in tables) // Output each of the schema's data, separated by a few empty lines. . . { schemaResult.Rows.Add(schemaResult.NewRow()); // Tack a couple empty rows to the bottom. . . schemaResult.Rows.Add(schemaResult.NewRow()); schemaResult.WriteToCSV(Response.OutputStream); // Output the result. . . } } else // XLS. . . { ExcelWriter writer = new ExcelWriter(); // Write the tables to excel. . . writer.WriteToStream(tables, Response.OutputStream); } return(true); }