Example #1
0
 public void ComparerTest()
 {
     try
     {
         DatabaseComparer comp = new DatabaseComparer();
         comp.FirstDatabase = new SqlDataBaseConnector();
         var con1 = comp.FirstDatabase.ConnectToFile(@"D:\GitHub\R1.mdf");
         comp.SecondDatabase = new SqlDataBaseConnector();
         var con2 = comp.SecondDatabase.ConnectToFile(@"D:\GitHub\R2.mdf");
         if (con1 && con2)
         {
             comp.FirstDatabase.GetTableInfo("NewEmployees2");
             comp.FirstDatabase.SelectedTable  = "NewEmployees2";
             comp.SecondDatabase.SelectedTable = "NewEmployees2";
             foreach (var col in comp.FirstDatabase.TableColumns)
             {
                 comp.FirstDatabase.SelectedColumns.Add(col);
             }
             comp.SecondDatabase.GetTableInfo("NewEmployees2");
             foreach (var col in comp.SecondDatabase.TableColumns)
             {
                 comp.SecondDatabase.SelectedColumns.Add(col);
             }
             Stopwatch timer = new Stopwatch();
             timer.Start();
             comp.ReadDataFromDb();
             timer.Stop();
             comp.CompareFullData();
             var table1_row_count = comp.FirstData.Count;
             var table2_row_count = comp.SecondData.Count;
             var stop             = timer.Elapsed;
             System.Console.WriteLine($"Кількість записів у першій таблиці - {table1_row_count}");
             System.Console.WriteLine($"Кількість записів у другій таблиці - {table2_row_count}");
             System.Console.WriteLine($"Час виконання - {stop}");
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         Assert.Fail();
     }
 }
        public IActionResult Comparing(string[] array)
        {
            CleanNotUsedData(4);
            if (array.Length == 0)
            {
                return(PartialView("_Error"));
            }
            db.FirstDatabase.SelectedColumns.Clear();
            db.SecondDatabase.SelectedColumns.Clear();
            var min = Math.Min(db.FirstDatabase.TableColumns.Count, db.SecondDatabase.TableColumns.Count);

            for (var i = 0; i < min; i++)
            {
                db.FirstDatabase.SelectedColumns.Add(db.FirstDatabase.TableColumns[i]);
                foreach (var column in db.SecondDatabase.TableColumns)
                {
                    if (column.Name == array[i] &&
                        AdditionalFunctions.IsTypesComparable(column.Type, db.FirstDatabase.TableColumns[i].Type))
                    {
                        db.SecondDatabase.SelectedColumns.Add(column);
                        break;
                    }
                }
            }
            if (db.FirstDatabase.SelectedColumns.Count !=
                db.SecondDatabase.SelectedColumns.Count)
            {
                return(PartialView("_Error"));
            }
            if (db.ReadDataFromDb())
            {
                db.ComparingResult = db.CompareFullData();
            }
            else
            {
                return(PartialView("_Error"));
            }
            return(PartialView("_Comparing", db));
        }