예제 #1
0
        public async Task <ActionResult> DownloadDataset(Guid id,
                                                         [FromQuery] AnalyserDatasetResourceParameters analyserDatasetResourceParameters)
        {
            var workflowFromRepo = await _workFlowRepository.GetAsync(f => f.WorkFlowGuid == id);

            if (workflowFromRepo == null)
            {
                return(NotFound());
            }

            var userName     = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
            var userFromRepo = _userRepository.Get(u => u.UserName == userName);

            if (!userFromRepo.AllowDatasetDownload)
            {
                ModelState.AddModelError("Message", "You do not have permissions to download a dataset");
                return(BadRequest(ModelState));
            }

            var model = id == new Guid("4096D0A3-45F7-4702-BDA1-76AEDE41B986")
                ? _excelDocumentService.CreateSpontaneousDatasetForDownload()
                : _excelDocumentService.CreateActiveDatasetForDownload(new long[] { }, analyserDatasetResourceParameters?.CohortGroupId ?? 0);

            return(PhysicalFile(model.FullPath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
        }