public FormsViewerResponse Detail([FromBody] FormViewRequest request) { var result = this.dataProvider.GetEntries(request.FormId, request.StartDate, request.EndDate); var response = new FormsViewerResponse { Headers = result.SelectMany(t => t.Fields).Select(t => t.FieldName).Distinct().ToList(), Entries = new List <List <string> >() }; foreach (var entry in result) { List <string> rowData = new List <string>(); // Add to the first place the created date. rowData.Add(entry.Created.ToString()); foreach (var header in response.Headers) { var field = entry.Fields.FirstOrDefault(t => t.FieldName == header); string value = string.Empty; if (field == null) { value = "-"; } else if (field.ValueType.Equals("System.Collections.Generic.List`1[Sitecore.ExperienceForms.Data.Entities.StoredFileInfo]", StringComparison.OrdinalIgnoreCase)) { if (field.Value.Contains(',')) { foreach (var file in field.Value.Split(',').Where(t => !string.IsNullOrEmpty(t))) { value += string.Format("<a target=\"_blank\" href=\"{0}\">Download</a><br>", Sitecore.Web.WebUtil.GetFullUrl(string.Format(FileDownloadPattern, file))); } } else { value = string.Format("<a target=\"_blank\" href=\"{0}\">Download</a>", Sitecore.Web.WebUtil.GetFullUrl(string.Format(FileDownloadPattern, field.Value))); } } else { value = field.Value; } rowData.Add(value); } response.Entries.Add(rowData); } // Insert created header response.Headers.Insert(0, "Created"); return(response); }
private string CreateReport(FormViewExportRequest request, List <FormEntry> entries) { string result = string.Empty; var response = new FormsViewerResponse(); response.Entries = new List <List <string> >(); foreach (var entry in entries) { List <string> rowData = new List <string>(); foreach (var header in request.Fields) { var field = entry.Fields.FirstOrDefault(t => t.FieldName == header); string value = string.Empty; if (field == null) { if (header.Equals("Created")) { value = entry.Created.ToString(); } else { value = "-"; } } else if (field.ValueType.Equals("System.Collections.Generic.List`1[Sitecore.ExperienceForms.Data.Entities.StoredFileInfo]", StringComparison.OrdinalIgnoreCase)) { if (field.Value.Contains(',')) { foreach (var file in field.Value.Split(',').Where(t => !string.IsNullOrEmpty(t))) { value += string.Format("<a target=\"_blank\" href=\"{0}\">Download</a><br>", Sitecore.Web.WebUtil.GetFullUrl(string.Format(FileDownloadPattern, file))); } } else { value = string.Format("<a target=\"_blank\" href=\"{0}\">Download</a>", Sitecore.Web.WebUtil.GetFullUrl(string.Format(FileDownloadPattern, field.Value))); } } else { value = field.Value; } rowData.Add(value); } response.Entries.Add(rowData); } if (request.ExportOption.Equals("xml", StringComparison.OrdinalIgnoreCase)) { return(exportService.ExportToXml(request, response.Entries.ToList())); } else if (request.ExportOption.Equals("csv", StringComparison.OrdinalIgnoreCase)) { return(exportService.ExportToCsv(request, entries.ToList())); } return(result); }