private void PutOnPath() { if (SelectedDocument != null) { if (SelectedDocument.Document.exchange.Contains("Archive")) { SelectedDocument = DocumentFromTS(SelectedDocument); } var curNodeVM = TemporaryDataService.GetCurrentNodeVM(); if (curNodeVM != null && curNodeVM.IsLastLevel) { // Get archive number path string query = string.Format("{0}={1},{2}", curNodeVM.Node.Level_id, curNodeVM.Node.Name, presentTreeVM.GetParentValues(curNodeVM.Parent)); // Update document with archive data path DocumentService.UpdateDocument(SelectedDocument.Document.id, (int)present, query); // Update document with serial number var curPresentTreeVM = TemporaryDataService.GetCurrentPresentTreeVM(); int serialNumber = 1; if (curPresentTreeVM.DetailsVM.Documents != null && curPresentTreeVM.DetailsVM.Documents.Count > 0) { serialNumber = curPresentTreeVM.DetailsVM.Documents.Max(d => (int)d.Document.serialNumber) + 1; } DocumentService.UpdateDocumentWithASN(SelectedDocument.Document.id, serialNumber); // Update details view with document curPresentTreeVM.DetailsVM.Documents.Add(new DocumentVM(DocumentService.ReadDocument(SelectedDocument.Document.id))); // Update current view by deleting element Documents.Remove(SelectedDocument); } else { MessagesService.Show("ПОЛОЖИТЬ В АРХИВ", "Не выбрана конечная ветка"); } } else { MessagesService.Show("ПОЛОЖИТЬ В АРХИВ", "Не выбран документ"); } }
private void Save() { if (IsAttach && !string.IsNullOrEmpty(SearchCompanyTxt) && !string.IsNullOrEmpty(DocumentNumber)) { Document newDocument = FillDocument(); // Get path from tree nodes string url = CurrentNode == null ? "" : GetNewPath(CurrentNode); // Check folder exist string path = string.IsNullOrEmpty(url) ? "" : FolderService.GetFolderPath((int)CurrentPresentation, CurrentNode.Node.Name, url) + string.Format("{0} {1}.{2}", SelectedDocumentType.descriptionRU, newDocument.number.Replace("/", "_").Replace("\\", "_"), AttachedDocument.Substring(AttachedDocument.LastIndexOf(".") + 1)); if (document != null && document.id != null && document.id > 0) // Update { // Update link if need if (AttachedDocument != DocumentService.ReadDocumentLink(document.id)) { if (!string.IsNullOrEmpty(path)) { DocumentService.UpdateDocumentLink(path, path.Substring(path.LastIndexOf(".") + 1), (int)document.linkId); // Copy attached file to destination if (FileSystemService.CopyFile(AttachedDocument, path)) { MessagesService.Show("РЕДАКТИРОВАНИЕ", "Файл удачно занесен в архив"); } } else { MessagesService.Show("РЕДАКТИРОВАНИЕ", "Изменение прикрепленного файла не возможно, так как не выбрана ветка пути.\nБудут изменены лишь основные данные."); } } // Update document DocumentService.UpdateDocument(newDocument, document.id); // Update serial number if (CurrentPresentation == PresentationEnum.Archive) { DocumentService.UpdateDocumentWithASN(document.id, DocumentSerialNumber); } // Update view presentTreeVM.DetailsVM.SelectedDocument.Document = DocumentService.ReadDocument(document.id); // Close panel Cancel(); } else // Create { // Create link int linkId = DocumentService.CreateDocumentLink(path, path.Substring(path.LastIndexOf(".") + 1)); if (linkId > 0) { newDocument.linkId = linkId; string query = string.Format("{0}={1},{2}", CurrentNode.Node.Level_id, CurrentNode.Node.Name, presentTreeVM.GetParentValues(CurrentNode.Parent)); // Create document in base int newDocId = DocumentService.CreateDocument(newDocument, (int)CurrentPresentation, query); if (newDocId > 0) { // Set archive serial number if archive presentation if (CurrentPresentation == PresentationEnum.Archive) { DocumentService.UpdateDocumentWithASN(newDocId, DocumentSerialNumber); } // Copy attached file to destination if (FileSystemService.CopyFile(AttachedDocument, path)) { MessagesService.Show("СОХРАНЕНИЕ", "Файл удачно занесен в архив"); // Update view presentTreeVM.DetailsVM.Documents.Add(new DocumentVM(DocumentService.ReadDocument(newDocId))); // Close panel Cancel(); } else { MessagesService.Show("СОХРАНЕНИЕ", "Произошла ошибка во время занесения файла в архив"); } } else { MessagesService.Show("СОХРАНЕНИЕ", "Произошла ошибка во время сохранения документа в базе"); } } else { MessagesService.Show("СОХРАНЕНИЕ", "Произошла ошибка во время сохранения пути"); } } } else { MessagesService.Show("СОХРАНЕНИЕ", "Нет прикрепленного документа или не все данные заполненны."); } }