public void ObjectsComparerValueMismatchTest() { var customerIdentifier = 4; var ops = new NorthWindDatabaseOperations(); var customer = ops.GetCompanyByCustomerIdentifier(customerIdentifier); //Assert.IsTrue(customer.Equals(AroundTheHorn)); var customer1 = AroundTheHorn; customer1.FirstName = "Frank"; var comparer = new ObjectsComparer.Comparer <Company>(); var positiveCompare = comparer.Compare(customer, customer1, out var differences); Assert.IsFalse(positiveCompare); var diff = differences.FirstOrDefault(); Assert.IsTrue(diff != null && diff.DifferenceType == DifferenceTypes.ValueMismatch, "expected ValueMismatch"); Assert.IsTrue(diff.MemberPath == "FirstName", "expected first name"); Assert.IsTrue(diff.Value1 == "Thomas", "expected Thomas"); Assert.IsTrue(diff.Value2 == "Frank", "expected Frank"); }
static void Main(string[] args) { var compr = new ObjectsComparer.Comparer <Employee>(); Employee e1 = new Employee() { EmployeeID = 1, FirstName = "Andrew", LastName = "Sheley", UpdatedBy = "Jones", }; Employee e2 = new Employee() { EmployeeID = 1, FirstName = "Andy", LastName = "Sheley", UpdatedBy = "Elvis", }; //Compare objects IEnumerable <Difference> differences; var isEqual = compr.Compare(e1, e2, out differences); Console.WriteLine("Hello World!"); }
private static IEnumerable <Difference> CompareEntityWithoutList <T>(string oldData, string newData) { var comparer = new ObjectsComparer.Comparer <T>(); comparer.Compare(InitializeEntity <T>(oldData), InitializeEntity <T>(newData), out IEnumerable <Difference> differences); return(differences); }
public ActionResult Edit(EmployeeViewModel employee) { employee.Name = employee.Name.Trim(); employee.Email = employee.Email.Trim(); employee.Address = employee.Address.Trim(); employee.MobileNumber = Convert.ToDouble(employee.MobileNumber.ToString().Trim()); EmployeeViewModel originalEmployee = (EmployeeViewModel)Session["EmployeeOriginal"]; var comparer = new ObjectsComparer.Comparer <EmployeeViewModel>(); if (ModelState.IsValid) { bool isEqual = comparer.Compare(employee, originalEmployee); ViewData["Designations"] = GetDesignations(); ViewData["Qualifications"] = GetQualifications(); ViewData["Managers"] = GetManagers(); ViewData["Roles"] = GetRoles(); if (!isEqual) { int status = _services.EditEmployeeById(employee.EmployeeViewModeltoDTO()); //If mobile number already exists if (status == 1) { ModelState.AddModelError("MobileNumber", "Mobile number already exists"); } //If email already exists else if (status == 2) { ModelState.AddModelError("Email", "Email already exists"); } else { if (status == -1) { TempData["error"] = "Error in modifying Employee record"; } if (status == 0) { TempData["message"] = "Modified Employee record"; } if (status == 3) { TempData["error"] = "Role for this employee cannot be changed"; } return(RedirectToAction("Index")); } } else { TempData["error"] = "No modification applied"; return(RedirectToAction("Index")); } } return(View(employee)); }
public bool compareServerConfig(Server toCompare) { JsonService = new JsonFileServices(); foreach (var s in JsonService.GetServer(HttpContext.Session.GetString("Customer"), "CurrentConfig", toCompare.ServerName)) { originalServer = s; } var comparer = new ObjectsComparer.Comparer <Server>(); var isEqual = comparer.Compare(originalServer, toCompare, out differences); setDifferencesToSession(differences); return(isEqual); }
public void GetAllSourceEqualObject() { SourceFormarteDonnees testItemOne = new SourceFormarteDonnees { ColId = 1, SourceFormarteUtilNom = "deiva", SourceFormarteUtilPrenom = "Rajaram", SourceFormarteSectNom = "COLOMIERS", SourceFormarteCatalPrincipal = "DP", SourceFormarteCatalAutrePrincipal = "Par défaut", SourceFormarteVersNom = "5.3.0.0", SourceFormarteComPremierDateId = 1, SourceFormarteComPremierDate = Convert.ToDateTime("2018-06-27 10:23:10.000"), SourceFormarteComDernierDateId = 2, SourceFormarteComDerniereDate = Convert.ToDateTime("2018-06-28 10:23:10.000"), SourceFormarteComPremierFactureDateId = 1, SourceFormarteComPremierFactureDate = Convert.ToDateTime("2018-06-25 10:23:10.000"), SourceFormarteComDernierFactureDateId = 2, SourceFormarteComDerniereFactureDate = Convert.ToDateTime("2018-06-26 10:23:10.000"), SourceFormarteVisDate = Convert.ToDateTime("2018-06-25 10:25:01.000"), SourceFormarteTabNom = new[] { "table1", "table2", "table3", "table4" }, SourceFormarteTabLigneComptage = new[] { "1", "5", "6", "9" }, SourceFormarteTabNomIndex = new List <IndexDetails> { new IndexDetails { TableNom = "table1", Indexes = new[] { "index1", "index2" } }, new IndexDetails { TableNom = "table2", Indexes = new[] { "indexz", "indexw" } } } }; // create mock Mock <ILogger <DonneeSourceController> > mockloger2 = new Mock <ILogger <DonneeSourceController> >(); // create mock dal object Mock <SourceDataAccessLayer> mockDalSource2 = new Mock <SourceDataAccessLayer>(); var testUnitaire2 = new DonneeSourceController(mockloger2.Object, mockDalSource2.Object); string testDate2 = DateTime.MinValue.ToShortDateString(); SourceFormarteDonnees testItemTwo = testUnitaire2.SelectionDonneesSource(testDate2, testDate2, testDate2, testDate2, null, null, null).FirstOrDefault(); //Initialize objects and comparer var comparer = new ObjectsComparer.Comparer <SourceFormarteDonnees>(); //Compare objects var isEqual = comparer.Compare(testItemOne, testItemTwo, out IEnumerable <Difference> differences); Assert.True(isEqual); }
public void GetCompanyWithCountryByIdentifier() { var customerIdentifier = 4; var ops = new NorthWindDatabaseOperations(); var customer = ops.GetCompanyWithCountryByIdentifier(customerIdentifier); var customer1 = AroundTheHorn; customer1.ContactIdentifier = 4; customer1.CountryId = 19; customer1.Country = "UK"; var comparer = new ObjectsComparer.Comparer <Company>(); var isEqual = comparer.Compare(customer1, customer, out var differences); Assert.IsTrue(isEqual, "expected customer country test to be the same"); }
public void CompareEntityObjectToLocalInstanceTest() { var customerIdentifier = 4; var ops = new NorthWindDatabaseOperations(); /* * Return specific properties */ var customer = ops.GetCompanyByCustomerIdentifier(customerIdentifier); var comparer = new ObjectsComparer.Comparer <Company>(); var isEqual = comparer.Compare(customer, AroundTheHorn, out var differences); Assert.IsTrue(isEqual); /* * Demonstrate returning all navigation properties */ ops.GetCompanyByCustomerIdentifierTemp(customerIdentifier); }
/// <summary> /// Adds the specified device. /// </summary> /// <param name="device">The device.</param> public static void Add(FoundDevice newItem) { try { if (collection.Count == 0) { if (collection.TryAdd(newItem.GenerateId(), newItem)) { Changed?.Invoke(newItem, new FoundDeviceChangedEventArgs(ChangeType.Added, newItem, null)); } } else { var existingItem = collection.Values.FirstOrDefault(x => x.IpAddress.Equals(newItem.IpAddress)); if (existingItem == null) { if (collection.TryAdd(newItem.GenerateId(), newItem)) { Changed?.Invoke(newItem, new FoundDeviceChangedEventArgs(ChangeType.Added, newItem, null)); } } else { bool isEqual = comparer.Compare(newItem, existingItem, out IEnumerable <Difference> differences); if (isEqual) { if (collection.TryUpdate(newItem.GenerateId(), newItem, existingItem)) { Changed?.Invoke(newItem, new FoundDeviceChangedEventArgs(ChangeType.Replaced, newItem, null)); } else { MergeRecord(existingItem.GenerateId(), newItem); } } else { var deviceId = differences .FirstOrDefault(x => x.MemberPath.Equals("DeviceId")); if (deviceId == null) { if (collection.TryUpdate(existingItem.GenerateId(), newItem, existingItem)) { Changed?.Invoke(newItem, new FoundDeviceChangedEventArgs(ChangeType.Replaced, newItem, null)); } } else { MergeRecord(existingItem.GenerateId(), newItem); } } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public bool AddConfigFile(string config) { string name = ""; bool failed = false; bool backedUp = false; // try // { string[] configSplit = config.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None); if (HelperFunctions.DetermineType(config) == ConfigTypes.Fortigate) { Console.WriteLine("This config is a Fortigate config file"); Fortigate newFortigate = new Fortigate(configSplit, config); bool found = false; name = newFortigate.hostname; for (int i = fortigates.Count - 1; i >= 0; i--) { //TODO: improve this selection to include updated fortigates Fortigate currentFG = fortigates[i]; if (fortigates[i].hostname == newFortigate.hostname) { Console.WriteLine("Getting differences"); var comparer = new ObjectsComparer.Comparer <Fortigate>(); IEnumerable <Difference> differences; var isEqual = comparer.Compare(newFortigate, currentFG, out differences); //Print results Console.WriteLine(isEqual ? "Objects are equal" : string.Join(Environment.NewLine, differences)); if (isEqual) { Console.WriteLine("Found exact match, skipping"); found = true; } else { Console.WriteLine("Found updated Fortigate, removing old"); fortigates.RemoveAt(i); } } } if (!found) { newFortigate.updated = true; Console.WriteLine("Adding fortigate"); fortigates.Add(newFortigate); } } else if ((HelperFunctions.DetermineType(config) == ConfigTypes.Switch29xx) || (HelperFunctions.DetermineType(config) == ConfigTypes.Switch19xx) || (HelperFunctions.DetermineType(config) == ConfigTypes.Switch1920S) || (HelperFunctions.DetermineType(config) == ConfigTypes.CiscoSG200)) { Console.WriteLine("This config is a Switch config file"); Switch newSwitch = new Switch(configSplit, config, HelperFunctions.DetermineType(config)); bool found = false; name = newSwitch.HostName; //MemoryStream streamNew = HelperFunctions.GetStreamFromFortigate(newSwitch); for (int i = switches.Count - 1; i >= 0; i--) { //TODO: improve this selection to include updated fortigates if (switches[i].HostName == newSwitch.HostName) { Console.WriteLine("Getting differences"); var comparer = new ObjectsComparer.Comparer <Switch>(); IEnumerable <Difference> differences; var isEqual = comparer.Compare(newSwitch, switches[i], out differences); //Print results Console.WriteLine(isEqual ? "Objects are equal" : string.Join(Environment.NewLine, differences)); if (isEqual) { Console.WriteLine("Found exact match, skipping"); found = true; } else { Console.WriteLine("Found updated switch, removing old"); switches.RemoveAt(i); } } } if (!found) { Console.WriteLine("Adding switch"); newSwitch.updated = true; switches.Add(newSwitch); } } else if (HelperFunctions.DetermineType(config) == ConfigTypes.unknown) { failed = true; } return(!failed); }