public void Setup()
        {
            _accidentRecordRepository = new Mock<IAccidentRecordRepository>();
            _userRepository = new Mock<IUserForAuditingRepository>();
            _log = new Mock<IPeninsulaLog>();
            _documentTypeRepository = new Mock<IDocumentTypeRepository>();

            _userRepository
                .Setup(curUserRepository => curUserRepository.GetByIdAndCompanyId(It.IsAny<Guid>(),It.IsAny<long>()))
                .Returns(() => _user);

            _userRepository
                .Setup(curUserRepository => curUserRepository.GetById(It.IsAny<Guid>()))
                .Returns(() => _user);

            _accidentRecordRepository.Setup(x => x.GetByIdAndCompanyId(It.IsAny<long>(), It.IsAny<long>()))
                .Returns(() => _accidentRecord);
            
            _accidentRecord = new AccidentRecord() { Id = 123123 };

            _documentTypeRepository.Setup(x => x.GetById(It.IsAny<long>()))
                .Returns(new DocumentType() {Id = 17, Name = "Accident Record"});

            _request = new AddDocumentToAccidentReportRequest()
                           {
                               AccidentRecordId = 56456,
                               CompanyId = _user.CompanyId,
                               DocumentLibraryIds =
                                   new List<DocumentLibraryFile>()
                                       {
                                           new DocumentLibraryFile()
                                               {Id = 123, Description = "descaf", Filename = "test.txt"}
                                       }
                                       ,
                               UserId = _user.Id

                           };
        }
예제 #2
0
        public void UpdateAccidentRecordOverview(OverviewViewModel overviewModel,DocumentsToSaveViewModel documentsToSaveViewModel)
        {
            if (documentsToSaveViewModel.CreateDocumentRequests.Count > 0)
            {
                var request = new AddDocumentToAccidentReportRequest
                {
                    AccidentRecordId = overviewModel.AccidentRecordId
                    ,
                    UserId = CurrentUser.UserId,
                    CompanyId = CurrentUser.CompanyId
                    ,
                    DocumentLibraryIds = documentsToSaveViewModel.CreateDocumentRequests.Select(x => new DocumentLibraryFile() { Description = x.Description, Filename = x.Filename, Id = x.DocumentLibraryId }).ToList()
                };
                
                _accidentRecordService.AddAccidentRecordDocument(request);
            }

            if (documentsToSaveViewModel.DeleteDocumentRequests.Count > 0)
            {
                var request = new RemoveDocumentsFromAccidentRecordRequest()
                {
                    AccidentRecordId = overviewModel.AccidentRecordId,
                    UserId = CurrentUser.UserId,
                    CompanyId = CurrentUser.CompanyId,
                    DocumentLibraryIds = documentsToSaveViewModel.DeleteDocumentRequests
                };

                _accidentRecordService.RemoveAccidentRecordDocuments(request);
            }

            var accidentRecordOverviewRequest = new AccidentRecordOverviewRequest()
                              {
                                  AccidentRecordId = overviewModel.AccidentRecordId,
                                  CompanyId = CurrentUser.CompanyId,
                                  UserId = CurrentUser.UserId,
                                  Description = overviewModel.DescriptionHowAccidentHappened,
                                  DoNotSendEmailNotification = overviewModel.DoNotSendEmailNotification
                              };


            _accidentRecordService.SetAccidentRecordOverviewDetails(accidentRecordOverviewRequest);
            
            if (!overviewModel.DoNotSendEmailNotification)
            {
                _accidentRecordService.SendAccidentRecordEmails(overviewModel.AccidentRecordId, CurrentUser.CompanyId, CurrentUser.UserId);
            }
        }
        public void AddAccidentRecordDocument(AddDocumentToAccidentReportRequest request)
        {
            var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId);
            var accidentRecord = _accidentRecordRepository.GetByIdAndCompanyId(request.AccidentRecordId, user.CompanyId);

            var docType = _documentTypeRepository.GetById((long) DocumentTypeEnum.AccidentRecord);

            request.DocumentLibraryIds.ForEach(x => accidentRecord.AddAccidentDocumentRecord(
                    AccidentRecordDocument.Create(x.Description, x.Filename, x.Id, docType, accidentRecord, user)));                                                                                

       
            _accidentRecordRepository.Save(accidentRecord);
        }