Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting started with Diffplex

I want to highlight difference between two files in asp.net. After web search I chose Diffplex APi. I am a begineer. I need some guidance on how to implement it? I have added the reference librarys and that's all I could understand. There isn't any documentation of the Api. I haven't used Apis before.

like image 789
Syeda Avatar asked Apr 16 '14 07:04

Syeda


1 Answers

Here's a simple example from the "documentation" (i.e. the source code) that should get you started.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DiffPlex;
using DiffPlex.DiffBuilder;
using DiffPlex.DiffBuilder.Model;
using System.Text;


namespace DiffPlexTest.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            StringBuilder sb = new StringBuilder();

            string oldText =  @"We the people
                of the united states of america
                establish justice
                ensure domestic tranquility
                provide for the common defence
                secure the blessing of liberty
                to ourselves and our posterity";
            string newText = @"We the peaple
                in order to form a more perfect union
                establish justice
                ensure domestic tranquility
                promote the general welfare and
                secure the blessing of liberty
                to ourselves and our posterity
                do ordain and establish this constitution
                for the United States of America";

            var d = new Differ();
            var builder = new InlineDiffBuilder(d);
            var result = builder.BuildDiffModel(oldText, newText);

            foreach (var line in result.Lines)
            {
                if (line.Type == ChangeType.Inserted)
                {
                    sb.Append("+ ");
                }
                else if (line.Type == ChangeType.Deleted)
                {
                    sb.Append("- ");
                }
                else if (line.Type == ChangeType.Modified)
                {
                    sb.Append("* ");
                }
                else if (line.Type == ChangeType.Imaginary)
                {
                    sb.Append("? ");
                }
                else if (line.Type == ChangeType.Unchanged)
                {
                    sb.Append("  ");
                }

                sb.Append(line.Text + "<br/>");
            }

            ViewData["old"] = oldText;
            ViewData["new"] = newText;
            ViewData["result"] = sb.ToString();

            return View();
        }
    }
}
like image 96
Timothy Lee Russell Avatar answered Oct 01 '22 18:10

Timothy Lee Russell