private DocumentVM DocumentFromTS(DocumentVM documentVM)
        {
            // Create document in archive base from trading system
            Document newDocument = new Document()
            {
                name        = documentVM.Document.name,
                number      = documentVM.Document.number,
                description = "_",
                type        = 21,
                author      = "_",
                createdDate = documentVM.Document.createdDate,
                uploadDate  = DateTime.Now,
                company     = documentVM.Document.company.Replace("'", "")
            };

            // Create link
            var CurrentNode = TemporaryDataService.GetCurrentNodeVM();

            string url  = CurrentNode == null ? "" : GetNewPath(CurrentNode);
            string path = string.IsNullOrEmpty(url) ? "" : FolderService.GetFolderPath(1, CurrentNode.Node.Name, url) + string.Format("{0} {1}.{2}", "Договор", newDocument.number.Replace("/", "_").Replace("\\", "_"), documentVM.Document.exchange.Substring(documentVM.Document.exchange.LastIndexOf(".") + 1));

            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, 1, query);

                if (newDocId > 0)
                {
                    // Set archive serial number if archive presentation
                    DocumentService.UpdateDocumentWithASN(newDocId, 0);

                    // Copy attached file to destination
                    FileSystemService.CopyFile(documentVM.Document.exchange, path);

                    var newDoc = DocumentService.ReadDocument(newDocId);

                    if (newDoc == null)
                    {
                        return(null);
                    }

                    documentVM.Document = newDoc;

                    return(documentVM);
                }
            }

            return(null);
        }
        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 PutDocument()
        {
            if (InfoDetailsVM != null && InfoDetailsVM.SelectedDocument != null)
            {
                var curNode = TemporaryDataService.GetCurrentNodeVM();

                if (curNode != null)
                {
                    if (curNode.IsLastLevel)
                    {
                        string query = string.Format("{0}={1},{2}", curNode.Node.Level_id, curNode.Node.Name, GetParentValues(curNode.Parent));
                        int    documentSerialNumber = 1;

                        if (DetailsVM.Documents != null && DetailsVM.Documents.Count > 0)
                        {
                            documentSerialNumber = DetailsVM.Documents.Max(d => (int)d.Document.serialNumber) + 1;
                        }

                        DocumentService.UpdateDocument(InfoDetailsVM.SelectedDocument.Document.id, (int)settings.presentation, query);
                        DocumentService.UpdateDocumentWithASN(InfoDetailsVM.SelectedDocument.Document.id, documentSerialNumber);

                        DetailsVM.Documents.Add(new DocumentVM(DocumentService.ReadDocument(InfoDetailsVM.SelectedDocument.Document.id)));
                        InfoDetailsVM.Documents.Remove(InfoDetailsVM.SelectedDocument);
                    }
                    else
                    {
                        MessagesService.Show("ПЕРЕМЕЩЕНИЕ В АРХИВ", "Выбранная ветка не является томом");
                    }
                }
                else
                {
                    MessagesService.Show("ПЕРЕМЕЩЕНИЕ В АРХИВ", "Не выбрана ветка в которую перемещать");
                }
            }
            else
            {
                MessagesService.Show("ПЕРЕМЕЩЕНИЕ В АРХИВ", "Не выбрано документа для перемещения");
            }
        }