ReviewR.Web.Services.IterationService.AddDiffToIteration C# (CSharp) Method

AddDiffToIteration() public method

public AddDiffToIteration ( int id, string diff, int currentUserId ) : DatabaseActionResult
id int
diff string
currentUserId int
return DatabaseActionResult
        public virtual DatabaseActionResult<Iteration> AddDiffToIteration(int id, string diff, int currentUserId)
        {
            Requires.InRange(id >= 0, "id");
            Requires.NotNullOrEmpty(diff, "diff");
            Requires.InRange(currentUserId >= 0, "currentUserId");

            Iteration iter = GetIteration(id);
            if (iter == null)
            {
                return DatabaseActionResult<Iteration>.NotFound();
            }
            else if (iter.Review.UserId != currentUserId)
            {
                return DatabaseActionResult<Iteration>.Forbidden();
            }

            ICollection<FileChange> changes;
            using (TextReader reader = new StringReader(diff))
            {
                changes = Diff.CreateFromGitDiff(reader);
            }
            foreach (FileChange change in changes)
            {
                iter.Files.Add(change);
            }
            Data.SaveChanges();
            return DatabaseActionResult<Iteration>.Success(iter);
        }