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);
            }
        }