// GET: Task/Edit/5 public IActionResult Edit(int?id) { if (id == null) { return(NotFound()); } var task = _interactor.GetTaskDetails(id); if (task == null) { return(NotFound()); } var model = GetNewTaskModel(task.ProjectId); model.MapToEntity(task); model.Id = task.Id; model.Name = task.Name; model.Description = task?.Description; model.EffortId = task.EffortId; model.ResourceId = task.ResourceId; model.CreatedDate = task.CreatedDate; model.ModifiedDate = task.ModifiedDate; model.StatusId = task.StatusId; model.ListFiles = (task.Documents.Count > 0) ? task.Documents.ToList() : new List <Documents>(); this.AssignLookUps(_projectInteractor.GetProjectName(model.ProjectId), model); return(View(model)); }
public IActionResult DownloadFile([FromBody] DownloadFileModel model) { try { var file = _taskInteractor.GetTaskDetails(model.TaskId); if (file == null) { return(null); } if (file.Documents.Count() == 0) { return(null); } var fileDetails = file.Documents.Where(x => x.Id == model.ItemId).FirstOrDefault(); string filepath = Path.Combine(_settings.DocumentsPath, fileDetails.Task.ProjectId.ToString(), fileDetails.FileName); if (!System.IO.File.Exists(filepath)) { throw new ArgumentException("Invalid file name or file does not exist!"); } byte[] fileBytes = System.IO.File.ReadAllBytes(filepath); var fs = new FileStream(filepath, FileMode.Open); var ms = new MemoryStream(); ms.CopyTo(fs); var ext = Path.GetExtension(filepath).ToLowerInvariant(); string contentType = _fileManager.GetContentType()[ext]; Response.ContentType = contentType; Response.Headers.Add("Content-Disposition", "attachment; filename=" + fileDetails.FileName); //return File(memory, contentType); //return File(fileBytes, "application/force-download", fileDetails.FileName); return(PhysicalFile(filepath, "application/force-download", fileDetails.FileName)); } catch (Exception ex) { return(null); } }