/// <summary> /// Result of a Difference Lines operation /// </summary> /// <param name="items"></param> /// <param name="leftValue"></param> /// <param name="rightValue"></param> public LineDifferenceResult(Item[] items, string leftValue, string rightValue) { var aLines = leftValue.Split('\n'); var bLines = rightValue.Split('\n'); var n = 0; for (var fdx = 0; fdx < items.Length; fdx++) { var aItem = items[fdx]; while ((n < aItem.StartB) && (n < bLines.Length)) { Unchanged.Add(bLines[n]); n++; } for (var m = 0; m < aItem.DeletedA; m++) { Deletions.Add(aLines[aItem.StartA + m]); } while (n < aItem.StartB + aItem.InsertedB) { Additions.Add(bLines[n]); n++; } while (n < bLines.Length) { Unchanged.Add(bLines[n]); n++; } } }
public void Add(PhraseCustomization pc) { switch (pc.Type) { case PhraseCustomization.CustomizationType.AdditionAfter: case PhraseCustomization.CustomizationType.InsertionBefore: if (AdditionsAndInsertions.Any(a => a.ModifiedPhrase == pc.ModifiedPhrase || a.Type == pc.Type)) { m_isResolved = false; } AdditionsAndInsertions.Add(pc); break; case PhraseCustomization.CustomizationType.Deletion: Deletions.Add(pc); if (Deletions.Count > 1) { m_isResolved = false; } break; case PhraseCustomization.CustomizationType.Modification: if (Modification != null) { throw new InvalidOperationException("Only one modified version of a question/phrase is permitted. Question/phrase '" + pc.OriginalPhrase + "' has already been modified as '" + Modification.ModifiedPhrase + "'. Value of subsequent modification attempt was: '" + pc.ModifiedPhrase + "'."); } Modification = pc; break; } }
public void Remove(ITransient other) { if (other == null) { return; } Additions.RemoveRef(other); Deletions.Add(other); }
public void Clear() { Additions.Clear(); foreach (var tr in Contents) { Deletions.Add(tr); } PerformRemoves(); }
public void Reinstate(Guid userId) { Deleted = false; Deletions.Add(new Deletion(userId, Deleted, DateTime.UtcNow)); }
public void Delete(Guid userId) { Deleted = true; Deletions.Add(new Deletion(userId, Deleted, DateTime.UtcNow)); }
public void ReInstate(Guid userId) { Deletions.Add(new Deletion(false, userId, DateTime.UtcNow)); Deleted = false; }