Ejemplo n.º 1
0
        public void When_Complete_Then_tell_service_to_send_notification_email()
        {
            // Given
            var target = GetTarget();
            var taskId = 123L;
            var companyId = 1234L;
            var model = new CompleteActionTaskViewModel
                            {
                                ActionTaskId = taskId,
                                CompanyId = companyId
                            };

            // When
            target.Complete(model, new DocumentsToSaveViewModel());

            // Then
            _actionTaskService.Verify(x => x.SendTaskCompletedNotificationEmail(It.Is<long>(a => a == taskId),It.Is<long>(b=>b==companyId)));
        }
        public JsonResult Complete(CompleteActionTaskViewModel viewModel, DocumentsToSaveViewModel documentsToSaveViewModel)
        {
            if (!ModelState.IsValid)
            {
                throw new ArgumentException("Invalid Arguments To Complete Action Task");
            }

            var request = new CompleteActionTaskRequest
            {
                CompanyId = viewModel.CompanyId,
                ActionTaskId = viewModel.ActionTaskId,
                CompletedComments = viewModel.CompletedComments,
                UserId = CurrentUser.UserId,
                CreateDocumentRequests = documentsToSaveViewModel.CreateDocumentRequests,
                DocumentLibraryIdsToDelete = documentsToSaveViewModel.DeleteDocumentRequests,
                CompletedDate = DateTimeOffset.Now
            };

            using (var session = _businessSafeSessionManager.Session)
            {
                _actionTaskService.Complete(request);
                _businessSafeSessionManager.CloseSession();
            }

            using (var session = _businessSafeSessionManager.Session)
            {
                _actionTaskService.SendTaskCompletedNotificationEmail(request.ActionTaskId,request.CompanyId);
                _businessSafeSessionManager.CloseSession();
            }

            return Json(new
            {
                Success = true,
                Id = viewModel.ActionTaskId
            });
        }