public ModelSummary CreateSummary() { return(new ModelSummary() { Id = Id, Description = Description, IsPublic = IsPublic, Key = Key, Name = Name, Revisions = new List <ModelRevisionSummary>(Revisions.Select(rev => rev.ToSummary())) }); }
void ISessionAdapter.Save(Review review) { Assert.That(review.RevisionId, Is.AnyOf(Revisions.Select(x => (object)x.Id).ToArray()), "Review must be linked to valid revision"); Assert.That(review.UserId, Is.AnyOf(Users.Select(x => (object)x.Id).ToArray()), "Review must be linked to valid user"); var user = Users.Single(x => x.Id == review.UserId); var revision = Revisions.Single(x => x.Id == review.RevisionId); if (Reviews.TryGetValue(user, revision, out var original)) { Assert.That(review, Is.SameAs(original), "Do not overwrite review"); } else { Reviews[user, revision] = review; } }
void ISessionAdapter.Save(FileHistoryEntry entry) { if (entry.RevisionId.HasValue) { Assert.That(entry.RevisionId.Value, Is.AnyOf(Revisions.Select(x => (object)x.Id).ToArray()), "File history entry must be linked to valid revision"); } var revision = Revisions.SingleOrDefault(x => x.Id == entry.RevisionId) ?? EmptyRevision; if (FileHistory.TryGetValue(revision, out var l)) { if (!l.Contains(entry)) { l.Add(entry); } } else { FileHistory[revision] = new List <FileHistoryEntry>() { entry }; } }
void ISessionAdapter.Save(FileDiscussion discussion) { Assert.That(discussion.RevisionId, Is.AnyOf(Revisions.Select(x => (object)x.Id).ToArray()), "File discussion must be linked to valid revision"); Discussions.Add(discussion); }
ReviewRevision ISessionAdapter.GetRevision(Guid revisionId) { Assert.That(revisionId, Is.AnyOf(Revisions.Select(x => (object)x.Id).ToArray())); return(Revisions.Single(x => x.Id == revisionId)); }