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); }
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); }