示例#1
0
        public async Task AddDocumentFromTemplate(string userId, int idTemplate, string name, string @abstract, IList <string> tags, IDictionary <int, string> items)
        {
            var now      = DateTime.Now;
            var document = new Document
            {
                Name = name,
                IdDocumentTemplate = idTemplate,
                Abstract           = @abstract,
                DateAdded          = now,
                UserId             = userId,
            };
            var state = new DocumentState
            {
                DocumentStatus = DocumentStatus.Draft,
                Version        = DocumentVersions.FIRST_DRAFT,
                StatusDate     = now,
                DocumentData   = new DocumentDataTemplate()
            };

            var documentData = (DocumentDataTemplate)state.DocumentData;

            foreach (var item in items)
            {
                documentData.DocumentDataTemplateItems.Add(new DocumentDataTemplateItem {
                    IdDocumentTemplateItem = item.Key, Value = item.Value, DocumentData = documentData
                });
            }
            document.DocumentStates.Add(state);

            foreach (var tag in tags)
            {
                var dbTag = await dbContext
                            .Tags
                            .FirstOrDefaultAsync(it => it.Name == tag);

                document.DocumentTags.Add(new DocumentTag {
                    Tag = dbTag ?? new Tag {
                        Name = tag
                    }
                });
            }

            dbContext.Documents.Add(document);
        }
示例#2
0
        public async Task AddDocument(string userId, string name, string @abstract, byte[] data, IList <string> tags)
        {
            var now      = DateTime.Now;
            var document = new Document
            {
                Name      = name,
                DateAdded = now,
                Abstract  = @abstract,
                UserId    = userId
            };
            var state = new DocumentState
            {
                DocumentStatus = DocumentStatus.Draft,
                Version        = DocumentVersions.FIRST_DRAFT,
                StatusDate     = now,
                DocumentData   = new DocumentDataUpload {
                    Data = data
                }
            };

            document.DocumentStates.Add(state);

            foreach (var tag in tags)
            {
                var dbTag = await dbContext
                            .Tags
                            .FirstOrDefaultAsync(it => it.Name == tag);

                document.DocumentTags.Add(new DocumentTag {
                    Tag = dbTag ?? new Tag {
                        Name = tag
                    }
                });
            }

            dbContext.Documents.Add(document);
        }