public void When_get_view_model_Then_should_call_correct_methods()
        {
            //Given
            var target = CreateViewModelFactory();

            var documentTypes = new List<DocHandlerDocumentTypeDto>();
            _documentTypeService
                .Setup(x => x.GetForDocumentGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem))
                .Returns(documentTypes);

            var documents = new ClientDocumentDto[]{};
            _clientDocumentService
                .Setup(x => x.Search(It.Is<SearchClientDocumentsRequest>(y => y.ClientId == _companyId && 
                                                                              y.TitleLike == _title && 
                                                                              y.DocumentTypeId == _documentTypeId)))
                .Returns(documents);

            //When
            target
                .WithCompanyId(_companyId)
                .WithDocHandlerDocumentTypeGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem)
                .WithDocumentTypeId(_documentTypeId)
                .WithDocumentSubTypeId(It.IsAny<long>())
                .WithDocumentTitle(_title)
                .WithKeywords(It.IsAny<string>())
                .GetViewModel();

            //Then
            _documentTypeService.VerifyAll();
            _clientDocumentService.VerifyAll();
        }
 public static DocumentViewModel CreateFrom(ClientDocumentDto clientDocumentDto, IDictionary<long, string> siteReferences)
 {
     return new DocumentViewModel()
     {
         Id = clientDocumentDto.Id.HasValue ? clientDocumentDto.Id.Value : default(long),
         DocumentType = clientDocumentDto.DocumentType != null ? clientDocumentDto.DocumentType.Title : "",
         DocumentSubType = clientDocumentDto.DocumentSubType != null ? clientDocumentDto.DocumentSubType.Title : "",
         Title = clientDocumentDto.Title,
         Description = clientDocumentDto.Description,
         DateUploaded = clientDocumentDto.CreatedOn,
         DocumentLibraryId = clientDocumentDto.DocumentLibraryId.GetValueOrDefault(),
         SiteReference = siteReferences.ContainsKey(clientDocumentDto.SiteId.GetValueOrDefault())? siteReferences[clientDocumentDto.SiteId.GetValueOrDefault()]: ""
     };
 }
        public void Given_siteId_When_get_view_model_Then_should_call_site_service_to_get_peninsula_site_id_for_request_to_client_documentation()
        {
            //Given
            var target = CreateViewModelFactory();

            var documentTypes = new List<DocHandlerDocumentTypeDto>();
            _documentTypeService
                .Setup(x => x.GetForDocumentGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem))
                .Returns(documentTypes);

            var documents = new ClientDocumentDto[] { };
            _clientDocumentService
                .Setup(x => x.Search(It.Is<SearchClientDocumentsRequest>(y => y.ClientId == _companyId &&
                                                                              y.TitleLike == _title &&
                                                                              y.DocumentTypeId == _documentTypeId)))
                .Returns(documents);

            const int siteId = 500;
            const int peninsulaSiteId = 1000;

            _siteService
                .Setup(x => x.GetByIdAndCompanyId(siteId, _companyId))
                .Returns(new SiteDto {SiteId = peninsulaSiteId});

            //When
            target
                .WithCompanyId(_companyId)
                .WithDocHandlerDocumentTypeGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem)
                .WithDocumentTypeId(_documentTypeId)
                .WithDocumentSubTypeId(It.IsAny<long>())
                .WithDocumentTitle(_title)
                .WithKeywords(It.IsAny<string>())
                .WithSiteId(siteId)
                .GetViewModel();

            //Then
            _siteService.Verify(x => x.Search(It.IsAny<SearchSitesRequest>()));
        }