public void FirstPhase(DatabaseWrapper conn)
        {
            CompareData(conn.GetDimTrackers().ToDictionary(x => x.GetKeyValue(), x => x), api.GetDimTrackers().ToDictionary(x => x.GetKeyValue(), x => x), conn.Insert, conn.Delete);
            CompareData(conn.GetRules().ToDictionary(x => x.GetKeyValue(), x => x), api.GetRules().ToDictionary(x => x.GetKeyValue(), x => x), conn.Insert, conn.Delete);
            CompareData(conn.GetZones().ToDictionary(x => x.GetKeyValue(), x => x), api.GetZones().ToDictionary(x => x.GetKeyValue(), x => x), conn.Insert, conn.Delete);
            Dictionary <string, DimTracker>  trackers       = conn.GetDimTrackers().ToDictionary(x => x.GetKeyValue(), x => x);
            Dictionary <string, FactTracker> dbFactTrackers = conn.GetFactTrackers().ToDictionary(x => x.GetKeyValue(), x => x);;
            List <FactTracker> sensolusFactTrackers         = api.GetFactTrackers(trackers);
            List <FactTracker> toAdd = new List <FactTracker>();

            foreach (var fact in sensolusFactTrackers)
            {
                if (!dbFactTrackers.ContainsKey(fact.GetKeyValue()))
                {
                    toAdd.Add(fact);
                }
            }
            conn.Insert(toAdd);
        }