41 |
41 |
{
|
42 |
42 |
User user = databaseContext.Users.Single(u => u.Id == userId);
|
43 |
43 |
|
|
44 |
var users = databaseContext.Users.Select(u => u).ToList();
|
|
45 |
|
44 |
46 |
foreach (var documentInfo in request.Documents)
|
45 |
47 |
{
|
46 |
48 |
if (documentInfo.Format == Models.Enums.EAddDocumentFormat.TEXTFILE)
|
47 |
49 |
{
|
48 |
50 |
// TODO hardcoded UTF-8 - maybe do something smarter
|
49 |
51 |
var documentContent = Encoding.UTF8.GetString(Convert.FromBase64String(documentInfo.Content));
|
50 |
|
SaveDocument(documentContent, user, documentInfo.Name);
|
|
52 |
SaveDocument(documentContent, user, documentInfo.Name, users);
|
51 |
53 |
}
|
52 |
54 |
else if (documentInfo.Format == Models.Enums.EAddDocumentFormat.ZIP)
|
53 |
55 |
{
|
54 |
56 |
var (names, contents) = UnzipDocuments(documentInfo.Content);
|
55 |
57 |
for (int i = 0; i < names.Count; i++)
|
56 |
58 |
{
|
57 |
|
SaveDocument(contents[i], user, names[i]);
|
|
59 |
SaveDocument(contents[i], user, names[i], users);
|
58 |
60 |
}
|
59 |
61 |
}
|
60 |
62 |
}
|
... | ... | |
89 |
91 |
return (names, contents);
|
90 |
92 |
}
|
91 |
93 |
|
92 |
|
private void SaveDocument(string content, User userAdded, string documentName)
|
|
94 |
private void SaveDocument(string content, User userAdded, string documentName, List<User> users)
|
93 |
95 |
{
|
94 |
96 |
DocumentContent documentContent = new DocumentContent()
|
95 |
97 |
{
|
... | ... | |
103 |
105 |
UserAdded = userAdded,
|
104 |
106 |
Name = documentName,
|
105 |
107 |
Length = documentContent.Content.Length,
|
106 |
|
RequiredAnnotations = 3 // TODO this is only for beta testing purposes
|
|
108 |
RequiredAnnotations = 3 // TODO this is only for testing purposes
|
107 |
109 |
};
|
108 |
110 |
|
|
111 |
foreach (var user in users)
|
|
112 |
{
|
|
113 |
Annotation annotation = new Annotation()
|
|
114 |
{
|
|
115 |
User = user,
|
|
116 |
UserAssigned = userAdded,
|
|
117 |
State = Models.Enums.EState.NEW,
|
|
118 |
DateAssigned = DateTime.Now,
|
|
119 |
DateLastChanged = DateTime.Now,
|
|
120 |
Document = document,
|
|
121 |
Note = ""
|
|
122 |
};
|
|
123 |
databaseContext.Annotations.Add(annotation);
|
|
124 |
}
|
|
125 |
|
109 |
126 |
databaseContext.DocumentContents.Add(documentContent);
|
110 |
127 |
databaseContext.Documents.Add(document);
|
111 |
128 |
databaseContext.SaveChanges(); // Maybe do this after all the documents are added
|
Users assigned on document upload