protected override void Context()
        {
            Username = "******";
            base.Context();

            _saveDocumentInputModel = new SaveDocumentInputModel
                                          {
                                              Title = "some title",
                                              Body = "some html to save",
                                          };

            _documentReturnedFromMappingEngine = new Document
                                                     {
                                                         Title = _saveDocumentInputModel.Title,
                                                         Body = _saveDocumentInputModel.Body,
                                                     };

            MappingEngine.Stub(
                x =>
                x.Map<SaveDocumentInputModel, Document>(Arg<SaveDocumentInputModel>.Is.Equal(_saveDocumentInputModel)))
                .Return(_documentReturnedFromMappingEngine);

            _documentReturnedFromDocumentSaver = new Document
                                                     {
                                                         DocumentId = 7,
                                                         Title = _saveDocumentInputModel.Title,
                                                         Body = _saveDocumentInputModel.Body,
                                                     };

            DocumentSaver.Stub(
                x =>
                x.Execute(Arg<string>.Is.Equal(Username), Arg<Document>.Is.Equal(_documentReturnedFromMappingEngine)))
                .Return(_documentReturnedFromDocumentSaver);

            _saveDocumentViewModelReturnedFromMappingEngine = new SaveDocumentViewModel
                                                                  {
                                                                      Title = _documentReturnedFromDocumentSaver.Title,
                                                                      Body = _documentReturnedFromDocumentSaver.Body,
                                                                      DocumentId =
                                                                          _documentReturnedFromDocumentSaver.DocumentId,
                                                                  };
            MappingEngine.Stub(
                x => x.Map<Document, SaveDocumentViewModel>(Arg<Document>.Is.Equal(_documentReturnedFromDocumentSaver)))
                .Return(_saveDocumentViewModelReturnedFromMappingEngine);

            _expectedSaveDocumentViewModel = new SaveDocumentViewModel
                                                 {
                                                     Title = _saveDocumentViewModelReturnedFromMappingEngine.Title,
                                                     Body = _saveDocumentViewModelReturnedFromMappingEngine.Body,
                                                     DocumentId =
                                                         _saveDocumentViewModelReturnedFromMappingEngine.DocumentId,
                                                 };
        }
        protected override void Context()
        {
            base.Context();

            _saveDocumentInputModel = new SaveDocumentInputModel
                                         {
                                             Body = "here is some data",
                                         };

            MockAuthorizationService.Stub(
                x => x.CanExecute(Arg<string>.Is.Equal(Username), Arg<Type>.Is.Equal(typeof(SaveDocumentInputModel))))
                .Return(true);

            MockDocumentRepository.Stub(x => x.Save(Arg<string>.Is.Equal(Username), Arg<Document>.Is.Anything))
                .WhenCalled(x => _saveDocumentInputModelPassedToRepository = x.Arguments[1] as SaveDocumentInputModel);
        }
        public Domain.Document Save(string username, SaveDocumentInputModel saveDocumentInputModel)
        {
            using (var context = new PRToolsEntities())
            {
                var documentEntity = new Document
                                         {
                                             CreatedByUsername = username,
                                             Title = saveDocumentInputModel.Title,
                                             Body = saveDocumentInputModel.Body,
                                             CreatedDate = _timeProvider.Now,
                                             CustomerID = saveDocumentInputModel.CustomerId
                                         };
                context.Documents.AddObject(documentEntity);
                context.SaveChanges();

                return new Domain.Document
                           {
                               DocumentId = documentEntity.DocumentId,
                               Title = documentEntity.Title,
                               Body = documentEntity.Body,
                               CreatedByUsername = documentEntity.CreatedByUsername,
                               CreatedDate = documentEntity.CreatedDate,
                           };
            }
        }
        public ActionResult SaveDocument(SaveDocumentInputModel saveDocumentInputModel)
        {
            var documentToSave = _mappingEngine.Map<SaveDocumentInputModel, Document>(saveDocumentInputModel);
            var result = _documentSaver.Execute(User.Identity.Name, documentToSave);
            var viewModel = _mappingEngine.Map<Document, SaveDocumentViewModel>(result);

            return View("Document", viewModel);
        }