public ActionResult Edit(EditDocumentViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var document = db.Documents.Include(x => x.Images).FirstOrDefault(x => x.Id == model.Id);

            if (document == null)
            {
                throw new HttpException(404, "Не найдено");
            }

            document.DocumentName = model.DocumentName;

            //Загружаем изображение, если есть
            if (model.UploadedImage != null && model.UploadedImage.ContentLength > 0)
            {
                var image = new DocumentImage()
                {
                    ImageUrl = FileUploader.UploadFile(model.UploadedImage)
                };
                document.Images.Add(image);
            }

            //Сохраняем изменения
            db.Entry(document).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Edit", "AdminDocuments", new { id = model.Id }));
        }
        public PartialViewResult EditDocument(DocumentLibraryDocumentPrimaryKey documentLibraryDocumentPrimaryKey)
        {
            var documentLibraryDocument = documentLibraryDocumentPrimaryKey.EntityObject;
            var viewModel = new EditDocumentViewModel(documentLibraryDocument);

            return(ViewEditDocument(documentLibraryDocument, viewModel));
        }
Exemple #3
0
        public async Task <ActionResult> Edit(EditDocumentViewModel viewModel)
        {
            var user = await GetApplicationUser();

            if (user == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }


            var document = await db.Documents.FirstOrDefaultAsync(c => c.Name == viewModel.Name);

            if (document == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            if (user.Id != document.Owner.Id)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            document.Title      = viewModel.Title;
            document.Body       = viewModel.Body;
            document.Index      = viewModel.Index;
            document.ModifiedAt = DateTime.Now;
            await db.SaveChangesAsync();

            return(RedirectToAction("Details", new { name = document.Name }));
        }
Exemple #4
0
        public void Execute(EditDocumentViewModel document)
        {
            if (!ValidateJson(document.JsonData) || !ValidateJson(document.JsonMetadata))
            {
                return;
            }

            document.PrepareForSave();

            var jdoc = document.JsonDocument;

            server.OpenSession().Advanced.AsyncDatabaseCommands
            .PutAsync(document.Id, jdoc.Etag, jdoc.DataAsJson, jdoc.Metadata)
            .ContinueOnSuccess(put =>
            {
                var inner          = document.JsonDocument;
                inner.Key          = put.Result.Key;
                inner.Metadata     = inner.Metadata.FilterHeaders(isServerDocument: false);
                inner.Etag         = put.Result.ETag;
                inner.LastModified = DateTime.Now;
                document.UpdateDocumentFromJsonDocument();

                events.Publish(new DocumentUpdated(document));
            });
        }
Exemple #5
0
        public IActionResult Edit(EditDocumentViewModel vm)
        {
            var presenter = _presenterFactory.Edit(MessageHandler, ErrorHandler);

            if (!ModelState.IsValid)
            {
                return(View(vm));
            }

            var request = vm.ToRequest(CurrentUserId);

            try
            {
                var uc       = _useCaseFactory.Edit;
                var response = uc.Execute(request);
                return(RedirectToAction(nameof(Index), new { id = presenter.Present(response) }));
            }
            catch (InvalidRequestException ire)
            {
                presenter.PresentErrors(ire.Message, ire.Errors);
                return(View(vm));
            }
            catch (Exception e)
            {
                presenter.PresentMessage(MessageType.Error, e.Message);
                return(View(vm));
            }
        }
        public IActionResult EditDocument(int id)
        {
            var document = _context.Document.SingleOrDefault(t => t.Id == id);

            if (document == null)
            {
                // TODO
                return(View("Error"));
            }
            else
            {
                var documentViewModel = new EditDocumentViewModel()
                {
                    DocumentType  = document.DocumentTypeId,
                    Id            = document.Id,
                    Name          = document.Name,
                    DocumentTypes = _context.DocumentType.Select(dt => new SelectListItem
                    {
                        Text  = dt.Name,
                        Value = dt.Id.ToString()
                    }),
                    TopicId  = document.TopicId,
                    FilePath = document.DocumentTypeId == (int)ProjectEnum.DocumentType.PDF ? document.Path : null,
                    Url      = document.DocumentTypeId == (int)ProjectEnum.DocumentType.Video ? document.Path : null
                };
                return(View(documentViewModel));
            }
        }
 public static EditDocumentRequest ToRequest(this EditDocumentViewModel vm, string userId)
 {
     return(new EditDocumentRequest(userId)
     {
         Id = Identity.FromString(vm.Id),
         Name = vm.Name,
         Content = vm.Content,
         Links = vm.Links,
     });
 }
Exemple #8
0
        public EditDocumentWindow(DocumentHeader selectedHeader)
        {
            InitializeComponent();
            ClientNameTextBox.Text = selectedHeader.ClientName;
            DateTextBox.Text       = selectedHeader.Date.ToString();
            NetPriceTextBox.Text   = selectedHeader.NetPrice.ToString();

            DataContext = new EditDocumentViewModel(null);

            ProductsItems.ItemsSource = DocumentDatabaseHelper.GetProductsByDocumentId(selectedHeader.ID);
        }
Exemple #9
0
		public void Execute(EditDocumentViewModel screen)
		{
			events.Publish(new WorkStarted("refreshing document"));
			server.OpenSession().Advanced.AsyncDatabaseCommands
				.GetAsync(screen.Id)
				.ContinueOnSuccess(get =>
				{
					events.Publish(new WorkCompleted("refreshing document"));
					screen.Initialize(get.Result);
					events.Publish(new NotificationRaised(screen.Id + " refreshed", NotificationLevel.Info));
				});
		}
Exemple #10
0
 public void Execute(EditDocumentViewModel screen)
 {
     events.Publish(new WorkStarted("refreshing document"));
     server.OpenSession().Advanced.AsyncDatabaseCommands
     .GetAsync(screen.Id)
     .ContinueOnSuccess(get =>
     {
         events.Publish(new WorkCompleted("refreshing document"));
         screen.Initialize(get.Result);
         events.Publish(new NotificationRaised(screen.Id + " refreshed", NotificationLevel.Info));
     });
 }
        public ActionResult Create(EditDocumentViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var document = new Document()
            {
                DocumentName = model.DocumentName
            };

            db.Documents.Add(document);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #12
0
		public void Execute(EditDocumentViewModel document)
		{
			if(!ValidateJson(document.JsonData) || !ValidateJson(document.JsonMetadata)) return;

			document.PrepareForSave();

			var jdoc = document.JsonDocument;

			server.OpenSession().Advanced.AsyncDatabaseCommands
				.PutAsync(document.Id, jdoc.Etag, jdoc.DataAsJson, jdoc.Metadata)
				.ContinueOnSuccess(put =>
				                   	{
										document.Id = put.Result.Key;
				                   		events.Publish(new DocumentUpdated(document));
				                   	});
			
		}
Exemple #13
0
        public void Execute(EditDocumentViewModel document)
        {
            if (!ValidateJson(document.JsonData) || !ValidateJson(document.JsonMetadata))
            {
                return;
            }

            document.PrepareForSave();

            var jdoc = document.JsonDocument;

            server.OpenSession().Advanced.AsyncDatabaseCommands
            .PutAsync(document.Id, jdoc.Etag, jdoc.DataAsJson, jdoc.Metadata)
            .ContinueOnSuccess(put =>
            {
                document.Id = put.Result.Key;
                events.Publish(new DocumentUpdated(document));
            });
        }
Exemple #14
0
		private void Delete(EditDocumentViewModel document)
		{
			document.PrepareForSave();

			var jdoc = document.JsonDocument;

			server.OpenSession().Advanced.AsyncDatabaseCommands
				.PutAsync(document.Id, jdoc.Etag, jdoc.DataAsJson, jdoc.Metadata)
				.ContinueOnSuccess(put =>
				{
					var inner = document.JsonDocument;
					inner.Key = put.Result.Key;
					inner.Metadata = inner.Metadata.FilterHeaders(isServerDocument: false);
					inner.Etag = put.Result.ETag;
					inner.LastModified = DateTime.Now;
					document.UpdateDocumentFromJsonDocument();

					events.Publish(new DocumentUpdated(document));
				});
		}
Exemple #15
0
		public void Execute(EditDocumentViewModel document)
		{
			if(!ValidateJson(document.JsonData) || !ValidateJson(document.JsonMetadata)) return;

			if (document.Id.StartsWith("Raven/"))
			{
				showMessageBox(
					"Are you sure that you want to edit a system document?",
					"Confirm Edit",
					MessageBoxOptions.OkCancel,
					box =>
						{
							if (box.WasSelected(MessageBoxOptions.Ok))
							{
								Delete(document);
							}
						});
				return;
			}
			Delete(document);
		}
Exemple #16
0
		public void Execute(EditDocumentViewModel document)
		{
			if(!ValidateJson(document.JsonData) || !ValidateJson(document.JsonMetadata)) return;

			document.PrepareForSave();

			var jdoc = document.JsonDocument;

			server.OpenSession().Advanced.AsyncDatabaseCommands
				.PutAsync(document.Id, jdoc.Etag, jdoc.DataAsJson, jdoc.Metadata)
				.ContinueOnSuccess(put =>
				                   	{
										document.Id = put.Result.Key;
				                   		document.JsonDocument.Metadata =
				                   			document.JsonDocument.Metadata.FilterHeaders(isServerDocument: false);
				                   	    document.JsonDocument.Etag = put.Result.ETag;
										document.JsonDocument.LastModified = DateTime.Now;
				                        document.UpdateDocumentFromJsonDocument();
                                        events.Publish(new DocumentUpdated(document));
				                   	});
			
		}
Exemple #17
0
        public async Task <ActionResult> Edit(string name)
        {
            if (name == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var user = await GetApplicationUser();

            if (user == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }


            var document = await db.Documents.FirstOrDefaultAsync(c => c.Name == name);

            if (document == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            if (user.Id != document.Owner.Id)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var viewModel = new EditDocumentViewModel()
            {
                Name  = document.Name,
                Title = document.Title,
                Index = document.Index,
                Body  = document.Body
            };

            return(View(viewModel));
        }
Exemple #18
0
        public void Execute(EditDocumentViewModel document)
        {
            if (!ValidateJson(document.JsonData) || !ValidateJson(document.JsonMetadata))
            {
                return;
            }

            if (document.Id.StartsWith("Raven/"))
            {
                showMessageBox(
                    "Are you sure that you want to edit a system document?",
                    "Confirm Edit",
                    MessageBoxOptions.OkCancel,
                    box =>
                {
                    if (box.WasSelected(MessageBoxOptions.Ok))
                    {
                        HandleActualSave(document);
                    }
                });
                return;
            }
            HandleActualSave(document);
        }
Exemple #19
0
        private void OnDetailClicked(object sender, MouseButtonEventArgs e)
        {
            // -> new window : edit details of admin item  (specific)
            var clickedItem = (DocumentViewModel)((FrameworkElement)sender).DataContext;

            var documentForEdit = GetDocumentForEditQuery.Get(new GetDocumentForEditRequest {
                Id = clickedItem.Id
            });

            // -> navigate to detail of document
            var editDocumentViewModel = new EditDocumentViewModel
            {
                Id              = documentForEdit.Id,
                DocumentType    = documentForEdit.DocumentType,
                Beschrijving    = documentForEdit.Beschrijving,
                CorrespondentId = documentForEdit.CorrespondentId,
                Datum           = documentForEdit.DatumOntvangen,
                PersonId        = documentForEdit.PersonId,
                CustomFields    = new ObservableCollection <CustomFieldDto>(documentForEdit.CustomFields),
                Scans           = new ObservableCollection <ScanDto>(documentForEdit.Scans)
            };

            EditDocument.ShowEditDocument(this, editDocumentViewModel);
        }
Exemple #20
0
		public void Execute(EditDocumentViewModel document)
		{
			windows.ShowDialog(document, "Preview");
		}
Exemple #21
0
 public DocumentUpdated(EditDocumentViewModel document) : base("Document Saved", NotificationLevel.Info)
 {
     this.document = document;
 }
        public IActionResult EditDocument(EditDocumentViewModel documentViewModel)
        {
            if (documentViewModel.DocumentType == (int)ProjectEnum.DocumentType.PDF)
            {
                ModelState.Remove("Url");
            }
            else if (documentViewModel.DocumentType == (int)ProjectEnum.DocumentType.Video)
            {
                ModelState.Remove("File");
            }

            if (ModelState.IsValid)
            {
                var document = _context.Document.SingleOrDefault(d => d.Id == documentViewModel.Id);

                if (document == null)
                {
                    return(View("Error"));
                }

                // Update some values of the document
                document.Name    = documentViewModel.Name;
                document.TopicId = documentViewModel.TopicId;

                if (documentViewModel.DocumentType == (int)ProjectEnum.DocumentType.PDF && documentViewModel.File != null)
                {
                    if (document.DocumentTypeId == (int)ProjectEnum.DocumentType.PDF)
                    {
                        // Deleting the old file of the document if it was a pdf file before
                        DeleteDocumentFile(document);
                    }
                    var fileName = documentViewModel.File.FileName;
                    var trainingFilesFolderPath = Path.Combine(_hostingEnvironment.WebRootPath, "trainingfiles");
                    var filePath = Path.Combine(trainingFilesFolderPath, fileName);
                    if (!_context.Document.Any(d => d.Path == filePath))
                    {
                        using (var fileStream = new FileStream(filePath, FileMode.Create))
                        {
                            documentViewModel.File.CopyTo(fileStream);
                        }

                        // Update the document path as a pdf document type
                        document.Path           = Path.Combine("/trainingfiles/", fileName);
                        document.DocumentTypeId = documentViewModel.DocumentType;

                        _context.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ModelState.AddModelError("File", "That file is already used in the package");
                    }
                }
                else if (documentViewModel.DocumentType == (int)ProjectEnum.DocumentType.Video)
                {
                    if (document.DocumentTypeId == (int)ProjectEnum.DocumentType.PDF)
                    {
                        // Deleting the old file of the document if it was a pdf file before
                        DeleteDocumentFile(document);
                    }

                    try
                    {
                        // Update the document path as a video document type
                        ConvertToYoutubeEmbed(documentViewModel.Url);
                        document.Path           = documentViewModel.Url;
                        document.DocumentTypeId = documentViewModel.DocumentType;

                        _context.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    catch (ArgumentException ex)
                    {
                        ModelState.AddModelError("Url", "Invalid YouTube video URL");
                    }
                }
                else
                {
                    document.DocumentTypeId = documentViewModel.DocumentType;
                    _context.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }

            documentViewModel.DocumentTypes = _context.DocumentType.Select(dt => new SelectListItem
            {
                Text  = dt.Name,
                Value = dt.Id.ToString()
            });
            return(View(documentViewModel));
        }
Exemple #23
0
		public DocumentUpdated(EditDocumentViewModel document) : base( "Document Saved", NotificationLevel.Info)
		{
			this.document = document;
		}
        private PartialViewResult ViewEditDocument(DocumentLibraryDocument documentLibraryDocument, EditDocumentViewModel viewModel)
        {
            var documentCategories = documentLibraryDocument.DocumentLibrary.DocumentLibraryDocumentCategories.Select(x => x.DocumentCategory)
                                     .ToSelectListWithEmptyFirstRow(x => x.DocumentCategoryID.ToString(CultureInfo.InvariantCulture), x => x.DocumentCategoryDisplayName);
            var viewData = new EditDocumentViewData(documentCategories);

            return(RazorPartialView <EditDocument, EditDocumentViewData, EditDocumentViewModel>(viewData, viewModel));
        }
Exemple #25
0
 public void Execute(EditDocumentViewModel document)
 {
     windows.ShowDialog(document, "Preview");
 }
        public ActionResult EditDocument(DocumentLibraryDocumentPrimaryKey documentLibraryDocumentPrimaryKey, EditDocumentViewModel viewModel)
        {
            var documentLibraryDocument = documentLibraryDocumentPrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewEditDocument(documentLibraryDocument, viewModel));
            }

            HttpRequestStorage.DatabaseEntities.DocumentLibraryDocumentRoles.Load();
            var documentLibraryDocumentRoles = HttpRequestStorage.DatabaseEntities.AllDocumentLibraryDocumentRoles.Local;

            viewModel.UpdateModel(documentLibraryDocument, CurrentFirmaSession, documentLibraryDocumentRoles);
            SetMessageForDisplay($"Document '{documentLibraryDocument.DocumentTitle}' successfully updated.");
            return(new ModalDialogFormJsonResult());
        }