public IActionResult ExportContributors(Guid projectId, ExportContributorsType type) { OperationResultVo result = translationAppService.GetContributorsFile(CurrentUserId, projectId, type); if (result.Success) { OperationResultVo <List <KeyValuePair <Guid, string> > > castRestult = result as OperationResultVo <List <KeyValuePair <Guid, string> > >; List <KeyValuePair <Guid, string> > model = castRestult.Value; StringBuilder sb = new StringBuilder(); sb.AppendLine("UserId;User Name;Profile URL"); foreach (KeyValuePair <Guid, string> item in model) { string url = Url.Action("details", "profile", new { area = string.Empty, id = item.Key }, "https", Request.Host.Value); string newLine = String.Format("{0};{1};{2}", item.Key, item.Value, url); sb.AppendLine(newLine); } InMemoryFileVo file = new InMemoryFileVo { FileName = String.Format("contributors_{0}.csv", type.ToString().ToLower()), Contents = Encoding.UTF8.GetBytes(sb.ToString()) }; return(File(file.Contents, "text/csv", file.FileName)); } else { return(null); } }
public IActionResult ExportXml(Guid projectId, SupportedLanguage?language, bool fillGaps) { OperationResultVo result = translationAppService.GetXml(CurrentUserId, projectId, language, fillGaps); if (result.Success) { if (language.HasValue) { OperationResultVo <InMemoryFileVo> castRestult = result as OperationResultVo <InMemoryFileVo>; InMemoryFileVo model = castRestult.Value; return(File(model.Contents, "application/xml", model.FileName)); } else { OperationResultVo <List <InMemoryFileVo> > castRestult = result as OperationResultVo <List <InMemoryFileVo> >; List <InMemoryFileVo> list = castRestult.Value; byte[] zip = GetZipArchive(list); return(File(zip, "application/xml", string.Format("{0}.zip", projectId))); } } else { return(null); } }