public DocumentsViewModel GetViewModel()
        {
            var existingDocumentsViewModel = new ExistingDocumentsViewModel { CanDeleteDocuments = true, CanEditDocumentType = true, DocumentTypeId = (int)_documentType };
            
            var attachedDocuments = _riskAssessmentAttachmentService.GetRiskAssessmentAttachedDocuments(_riskAssessmentId, _companyId);
            foreach (var attachedDocument in attachedDocuments.Where(document => !document.Deleted))
            {
                existingDocumentsViewModel.PreviouslyAddedDocuments.Add(new PreviouslyAddedDocumentGridRowViewModel()
                {
                    Description = attachedDocument.Description,
                    DocumentTypeName = attachedDocument.DocumentType.Name,
                    Id = attachedDocument.Id,
                    DocumentLibraryId = attachedDocument.DocumentLibraryId,
                    Filename = attachedDocument.Filename,
                });
            };
            
            var model = new DocumentsViewModel()
            {
                CompanyId = _companyId,
                RiskAssessmentId = _riskAssessmentId,
                ExistingDocumentsViewModel = existingDocumentsViewModel,
                DocumentDisplayMessages = _displayMessages.Select(x => new HtmlString(x))
            };

            return model;
        }
 public  ReassignActionTaskViewModel()
 {
     ExistingDocuments = new ExistingDocumentsViewModel()
                             {
                                 DocumentTypeId = (int)DocumentTypeEnum.Action,
                                 DocumentOriginTypeId = (int)DocumentOriginType.TaskUpdated
                             };
 }
        public void Setup()
        {
            _furtherControlMeasureTask = new HazardousSubstanceRiskAssessmentFurtherControlMeasureTaskDto
                                             {
                                                 Id = FurtherControlMeasureTaskId,
                                                 Title = "Test Title 02",
                                                 Description = "Test Description 02",
                                                 Reference = "Test Reference 02",
                                                 TaskAssignedTo = new EmployeeDto() 
                                                                      {
                                                                          Id = Guid.NewGuid(),
                                                                          FullName = "Test Name 02"
                                                                      },
                                                 TaskCompletionDueDate =
                                                     DateTime.Now.AddDays(20).ToString(CultureInfo.InvariantCulture),
                                                 TaskStatusString = "Test Status 02",
                                                 TaskCategory = new TaskCategoryDto() { Id = 123L, Category = "Test Category 02" },
                                                 TaskStatusId = 99,
                                                 CreatedDate = DateTime.Now.ToString(CultureInfo.InvariantCulture),
                                                 Documents = new List<TaskDocumentDto>(),
                                                 TaskReoccurringType = TaskReoccurringType.None,
                                                 IsReoccurring = false,
                                                 RiskAssessment = new RiskAssessmentDto
                                                                      {
                                                                          Id = 1232L,
                                                                          Title = "Test RA Title 02",
                                                                          Reference = "Test RA Reference 02"
                                                                      }
                                                                      
                                             };

            _furtherControlMeasureTaskService = new Mock<IFurtherControlMeasureTaskService>();

            _furtherControlMeasureTaskService
                .Setup(x => x.GetByIdIncludeDeleted(FurtherControlMeasureTaskId))
                .Returns(_furtherControlMeasureTask);

            _existingDocumentsViewModelFactory = new Mock<IExistingDocumentsViewModelFactory>();

            _existingDocumentsViewModelFactory
                .Setup(x => x.WithCanDeleteDocuments(false))
                .Returns(_existingDocumentsViewModelFactory.Object);

            _existingDocumentsViewModelFactory
                .Setup(x => x.WithDefaultDocumentType(It.IsAny<DocumentTypeEnum>()))
                .Returns(_existingDocumentsViewModelFactory.Object);

            _existingDocumentsViewModel = new ExistingDocumentsViewModel();

            _existingDocumentsViewModelFactory
                .Setup(x => x.GetViewModel(_furtherControlMeasureTask.Documents))
                .Returns(_existingDocumentsViewModel);
        }
        public static ExistingDocumentsViewModel CreateFrom(IEnumerable<TaskDocumentDto> documents)
        {
            var viewModel = new ExistingDocumentsViewModel();

            foreach (var previouslyAddedDocument in documents.Where(document => !document.Deleted))
            {
                var previouslyAddedDocumentGridRowViewModel = new PreviouslyAddedDocumentGridRowViewModel
                {
                    Id = previouslyAddedDocument.Id,
                    DocumentLibraryId =previouslyAddedDocument.DocumentLibraryId,
                    Description =previouslyAddedDocument.Description,
                    Filename = previouslyAddedDocument.Filename,
                    DocumentOriginType =previouslyAddedDocument.DocumentOriginType,
                };

                if (previouslyAddedDocument.DocumentType != null)
                    previouslyAddedDocumentGridRowViewModel.DocumentTypeName = previouslyAddedDocument.DocumentType.Name;

                viewModel.PreviouslyAddedDocuments.Add(previouslyAddedDocumentGridRowViewModel);
            }

            return viewModel;
        }
        public void given_action_id_and_company_id_when_get_view_model_then_existing_documents_are_returned()
        {
            //given
            var companyId = 123L;
            var actionId = 1L;

            var target = GetTarget(); 
            
            var assignedTo = new EmployeeDto
                                 {
                                     Id = Guid.NewGuid(),
                                     FullName = "employee'"
                                 };

         
            var task = new ActionTaskDto
                           {
                               Id = 1L,
                               Title = "Title",
                               Description = "Description",
                               TaskAssignedTo = assignedTo                               
                           };

            var action = new ActionDto
                               {
                                   Id = actionId,
                                   ActionTasks = new List<ActionTaskDto>
                                                     {
                                                         task
                                                     },                                                     
                               };
            _actionService
                .Setup(x => x.GetByIdAndCompanyId( actionId, companyId ))
                .Returns(action);

            ExistingDocumentsViewModel existingDocumentsViewModel = new ExistingDocumentsViewModel();            

            existingDocumentsViewModel.PreviouslyAddedDocuments = new List<PreviouslyAddedDocumentGridRowViewModel>();

            PreviouslyAddedDocumentGridRowViewModel padGridRowViewModel = new PreviouslyAddedDocumentGridRowViewModel();            
            padGridRowViewModel.Id = 1234L;
            padGridRowViewModel.Filename = "somefilename.doc";
            padGridRowViewModel.Description = "";
            padGridRowViewModel.DocumentLibraryId = 765L;
            padGridRowViewModel.DocumentOriginType = DocumentOriginType.TaskUpdated;
            padGridRowViewModel.DocumentTypeName = "somedocumenttype";
            

            existingDocumentsViewModel.PreviouslyAddedDocuments.Add(padGridRowViewModel);         

            _existingDocumentsViewModelFactory
                .Setup(x => x.GetViewModel(It.IsAny<IEnumerable<TaskDocumentDto>>()))
                .Returns(existingDocumentsViewModel);

            var result = target
              .WithCompanyId(companyId)
              .WithActionId(actionId)
              .GetViewModel();

            // then
            Assert.IsNotNull(result.ExistingDocuments);
            Assert.IsNotNull(result.ExistingDocuments.PreviouslyAddedDocuments);
            Assert.AreEqual( 1, result.ExistingDocuments.PreviouslyAddedDocuments.Count);
            Assert.AreEqual(padGridRowViewModel.Id, result.ExistingDocuments.PreviouslyAddedDocuments[0].Id);
            //Assert.AreEqual( DocumentTypeEnum.Action, result.ExistingDocuments.PreviouslyAddedDocuments[0].DocumentTypeName);
            Assert.AreEqual(DocumentOriginType.TaskUpdated, result.ExistingDocuments.PreviouslyAddedDocuments[0].DocumentOriginType);
        }
 public CreateUpdateResponsibilityTaskViewModel()
 {
     ExistingDocuments = new ExistingDocumentsViewModel();
 }