示例#1
0
        public ActionResult Edit(int structureId, string documentData, string documentName)
        {
            // update or create document
            // get review doc
            _document = _documentRepository.LoadDocumentByStructure(structureId, _document.StatusToString(Status.Review));

            // no review doc so get live
            if (_document == null)
                _document = _documentRepository.LoadDocumentByStructure(structureId);

            if (_document == null)
            {
                // no live or review doc, create a new one
                _document = new Document {
                    DocumentData = documentData,
                    DocumentName = documentName,
                    Status = Status.Review};
                _document = _document.Add(_document);
            }
            else
            {
                Document newDocument = new Document {
                    DocumentID = null,
                    DocumentRootID = _document.DocumentRootID,
                    DocumentData = documentData,
                    DocumentName = documentName,
                    Status = Status.Review };

                _document = _document.Update(newDocument);
            }

            // update structure
            Structure structure = _structureRepository.LoadStructure(structureId);
            structure.StructureDocumentID = _document.DocumentRootID;
            _structureRepository.UpdateStructure(structure);

            return RedirectToAction("Index", new { StructureID = structureId });
        }