Example #1
0
        public CompareViewModel(IDialogCoordinator instance)
        {
            FileLoc1           = "";
            FileLoc2           = "";
            IsReadyToCompare   = false;
            dialogCoordinator  = instance;
            ResultSetObsrvColl = new ObservableCollection <SpreadLogModel>();
            appInitializer     = new AppCompInitializer();
            dataComparer       = new DataComparer();
            dataComparer.FileReaderObj.SetConfigReaderAndUserDataReaderFromDataBase(appInitializer.ConfigReader);
            ThresholdValueSet = StaticVariables.DiffThreshold;
            //IsDataFromDbSelectedRadioBtnFlag = true;
            //IsDataFromFileSelectedRadioBtnFlag = false;
            // SelectedDateFrom = DateTime.Now.ToString("dd/MM/yyyy");
            //  SelectedDateTo = DateTime.Now.ToString("dd/MM/yyyy") ;
            if (FillComboBox())
            {
                SelectedIndexUser1CmbBox = 0;
                SelectedIndexUser2CmbBox = 1;
            }
            //IsBuildCacheBtnEnabled = false;
            //if (IsDataFromFileSelectedRadioBtnFlag)
            //{
            //    IsCacheSet = true;
            //}
            //else
            //{
            //    IsCacheSet = false;

            //}
            IsHist = true;
        }
Example #2
0
        protected override List <SearchData> MergeOrder(OrderSelectTask orderSelectTask,
                                                        List <SingleServerSearchTask> searchTasks, OrderType orderType)
        {
            var ret = new List <SearchData>();

            searchTasks.RemoveAll(x => !x.IsServersAvailbale);

            PreLoadPages(searchTasks);

            while (ret.Count < orderSelectTask.UserPage && !IsFinishMerge(searchTasks))
            {
                var current = GetCurrent(orderSelectTask, searchTasks, orderType);

                if (ret.Count == 0 ||
                    DataComparer.Compare(current.GetData(), ret.Last(), orderSelectTask.ScriptDescription) != 0)
                {
                    ret.Add(current.GetData());
                }

                current.IncrementPosition();

                ReadSameValue(orderSelectTask, searchTasks, ret.Last());

                LoadPages(searchTasks);
                searchTasks.RemoveAll(x => !x.IsServersAvailbale);
            }

            return(ret);
        }
Example #3
0
        /// <summary>
        /// Build:
        /// - Apply
        /// - PersistDataContainer
        /// - PersistOperations
        /// - PersistKey
        /// - KeyComparer
        /// - KeyEqualityComparer
        ///
        /// instances from StructType, keySlotTypes & recordSlotTypes
        /// </summary>
        protected virtual void BuildMembers()
        {
            //apply
            switch (StructureType)
            {
            case STSdb4.Database.StructureType.XINDEX: Apply = new XIndexApply(this); break;

            case STSdb4.Database.StructureType.XFILE: Apply = new XStreamApply(this); break;
            }

            //comparer & equality comparer
            KeyComparer         = new DataComparer(KeyDescriptor.DataType, KeyDescriptor.CompareOptions);
            KeyEqualityComparer = new DataEqualityComparer(KeyDescriptor.DataType, KeyDescriptor.CompareOptions);

            bool compressKeys    = KeyDescriptor.CompressData;
            bool compressRecords = RecordDescriptor.CompressData;

            if (compressKeys || compressRecords)
            {
                PersistDataContainer = new IndexPersistDataContainer(this, KeyDescriptor.DataType, RecordDescriptor.DataType, compressKeys, compressRecords);
            }
            else
            {
                PersistDataContainer = new IndexPersistDataContainerRaw(this, KeyDescriptor.DataType, RecordDescriptor.DataType);
            }

            PersistOperations = new IndexPersistOperationCollection(this);
            PersistKey        = new DataPersist(KeyDescriptor.DataType);
        }
Example #4
0
 public void A_TestSetup()
 {
     _moq      = new Moqqer();
     _comparer = IoC.Container.GetInstance <DataComparer>();
     _left     = Tables.Default;
     _right    = Tables.Default;
 }
        public ActionResult <ResultReport> Diff()
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var response = new ResultReport();

            var leftFile  = $"{Directory.GetCurrentDirectory()}\\inputs\\left";
            var rightFile = $"{Directory.GetCurrentDirectory()}\\inputs\\right";

            var fileComparer = new DataComparer();

            // Verifica se os dados são de diferente tamanho.
            if (!fileComparer.CompareLenght(leftFile, rightFile))
            {
                response.Report = ReportEnum.DadosDiferentes;
            }

            // Comparar cada byte, já que são do mesmo tamanho.
            response = fileComparer.CompareBytes(leftFile, rightFile);

            return(Ok(response));
        }
        static SerializerPipeline()
        {
#if DEBUG
            s_AssemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(Resources.SerializerAssemblyName), AssemblyBuilderAccess.RunAndSave);
            s_ModuleBuilder   = s_AssemblyBuilder.DefineDynamicModule(Resources.SerializerModuleName, Resources.SerializerAssemblyName);
#else
            AssemblyBuilder builder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(Resources.SerializerAssemblyName), AssemblyBuilderAccess.Run);
            s_ModuleBuilder = builder.DefineDynamicModule(Resources.SerializerModuleName);
#endif

            s_TypeAttributes              = TypeAttributes.Class | TypeAttributes.Sealed | TypeAttributes.Public;
            s_FieldBindingFlags           = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
            s_MessageCallbackBindingFlags = BindingFlags.Public | BindingFlags.Instance;
            s_InterfaceTypeArray          = new Type[1];
            s_FieldData  = new List <FieldData>(10);
            s_MethodData = new List <MethodData>(2);

            s_Progress = new SerializerGenerationProgress[]
            {
                new CtorDefineProgress(),
                new SerializeMethodDefineProgress(),
                new DeserializeMethodDefineProgress()
            };

            s_Comparer = new DataComparer();
        }
Example #7
0
 public void A_TestInitialise()
 {
     _comparer       = IoC.Container.GetInstance <DataComparer>();
     _left           = Tables.Default;
     _right          = Tables.Default;
     Randomizer.Seed = new Random(1234566789);
 }
Example #8
0
        private SingleServerSearchTask GetCurrent(OrderSelectTask orderSelectTask,
                                                  List <SingleServerSearchTask> searchTasks, OrderType orderType)
        {
            SingleServerSearchTask current = searchTasks.FirstOrDefault(x => !(x.IsAllDataRead && x.Length == 0));

            if (current == null)
            {
                return(null);
            }

            foreach (var searchTask in searchTasks)
            {
                if (searchTask.IsAllDataRead && searchTask.Length == 0)
                {
                    continue;
                }

                if (orderType == OrderType.Desc &&
                    DataComparer.Compare(current.GetData(), searchTask.GetData(), orderSelectTask.ScriptDescription) < 0)
                {
                    current = searchTask;
                }
                if (orderType == OrderType.Asc &&
                    DataComparer.Compare(current.GetData(), searchTask.GetData(), orderSelectTask.ScriptDescription) > 0)
                {
                    current = searchTask;
                }
            }

            return(current);
        }
Example #9
0
        private void ProcessData(string firstFileData, string secondFileData)
        {
            float[][] parsedFirstFileData  = (JsonConvert.DeserializeObject(firstFileData) as JArray).ToObject <float[][]>();
            float[][] parsedSecondFileData = (JsonConvert.DeserializeObject(secondFileData) as JArray).ToObject <float[][]>();

            string source, target;

            Score.Text = DataComparer.CompareFileData(parsedFirstFileData, parsedSecondFileData, out source, out target);

            var sb = new StringBuilder();

            var sourceList = source.Split(' ').ToList();

            sourceList.ForEach(s => sb.Append(s.PadRight(2)));

            sourceNotes.Text = sb.ToString();

            sb.Clear();

            var targetList = target.Split(' ').ToList();

            targetList.ForEach(s => sb.Append(s.PadRight(2)));

            targetNotes.Text = sb.ToString();
        }
Example #10
0
        private void startBackup(int jobId, string source, string destination)
        {
            DataComparer comparer          = new DataComparer();
            FolderEntry  sourceFolder      = comparer.IndexDirectory(source);
            FolderEntry  destinationFolder = comparer.IndexDirectory(destination);

            comparer.progress += Comparer_progress;
            comparer.SyncFolders(jobId, sourceFolder, destinationFolder);
        }
Example #11
0
        public void DeepClone(DataSet originalDataset)
        {
            DataSet cloned = originalDataset.DeepClone();

            // Compare
            bool deepEquals      = DataComparer.DataSetsEqual(originalDataset, cloned);
            bool referenceEquals = originalDataset == cloned;

            Assert.That(deepEquals, Is.True);
            Assert.That(referenceEquals, Is.False);
        }
Example #12
0
        public override bool GetCondition()
        {
            if (_values.Count == 0)
            {
                return(true);
            }
            if (_values.Count < 2)
            {
                throw new Exception(((XmlConditionTypes)_conditionType).ToString() + " 요소에는 반드시 Value 요소가 2개이상 들어가야 합니다.");
            }
            IXmlComponent loadingComponent = XmlComponent.NowLoading;


            for (int i = 1; i < _values.Count; i++)
            {
                String value1 = (_values[i].IsVariable) ? GetValue(_values[i].Value).ToString() : _values[i].Value;
                String value2 = (_values[i - 1].IsVariable) ? GetValue(_values[i - 1].Value).ToString() : _values[i - 1].Value;

                value1 = (_values[i].IsComponent) ? GetComponentValue(_values[i].Value) : _values[i].Value;
                value2 = (_values[i - 1].IsComponent) ? GetComponentValue(_values[i - 1].Value) : _values[i - 1].Value;

                String value1Type = _values[i].TypeName;
                String value2Type = _values[i - 1].TypeName;

                switch (_conditionType)
                {
                case XmlConditionTypes.Equal:
                    if (value1.Trim().Equals(value2.Trim("\t \n\r".ToCharArray())) == false)
                    {
                        return(false);
                    }
                    break;

                case XmlConditionTypes.More:
                    if (DataComparer.Minus(value1Type, value1, value2Type, value2) <= 0)
                    {
                        return(false);
                    }
                    break;

                case XmlConditionTypes.MoreOrEqual:
                    if (DataComparer.Minus(value1Type, value1, value2Type, value2) < 0)
                    {
                        return(false);
                    }
                    break;

                default:
                    break;
                }
            }
            return(true);
        }
Example #13
0
 private void ReadSameValue(OrderSelectTask orderSelectTask, List <SingleServerSearchTask> searchTasks,
                            SearchData searchData)
 {
     foreach (var searchTask in searchTasks)
     {
         if (!searchTask.IsAllDataRead && searchTask.Length > 0 &&
             DataComparer.Compare(searchTask.GetData(), searchData, orderSelectTask.ScriptDescription) == 0)
         {
             searchTask.IncrementPosition();
         }
     }
 }
Example #14
0
        public void SerializationDeserialization(DataSet originalDataset)
        {
            // Serialize System.Data.DataSet to json string
            string jsonString = originalDataset.ToJSON();

            // --> Transfer json string using (e.g.) HTTP transport -->

            // Deserialize back to System.Data.DataSet
            DataSet restoredDataSet = jsonString.ToDataSet();

            // Compare
            bool equals = DataComparer.DataSetsEqual(originalDataset, restoredDataSet);

            Assert.That(equals, Is.True);
        }
Example #15
0
        public static IProvider Get(FileOptionsFromClause fileOptions, DataComparer dataComparer)
        {
            string fileName;
            if (fileOptions.FileName is ConstExpression<DataString>)
                fileName = fileOptions.FileName.EvaluateAsData (null).ToDataString (dataComparer.CultureInfo);
            else
                fileName = null;

            IProvider provider;
            if (fileName == null || fileName.Contains ("*") || fileName.Contains ("?") || fileOptions.Recurse) {
                provider = new MultiFileProvider (
                    fileOptions,
                    dataComparer);
            } else {
                provider = Get (fileName, fileOptions.Skip);
            }

            return provider;
        }
        public void RetornarTrueParaArquivosComMesmoTamanho()
        {
            // Arranje
            var guid = Guid.NewGuid(); var nameLeft = $"left-test-{guid}";
            var nameRight = $"right-test-{guid}";

            FileHelper.SaveData("dGlueQ==", nameLeft);
            FileHelper.SaveData("dGlueQ==", nameRight);
            var dc = new DataComparer();

            var leftData  = $"{Directory.GetCurrentDirectory()}\\inputs\\{nameLeft}";
            var rightData = $"{Directory.GetCurrentDirectory()}\\inputs\\{nameRight}";

            // Act
            var result = dc.CompareLenght(leftData, rightData);

            // Assert
            Assert.True(result);
        }
        public void RetornaReportComOffsetsParaDadosDiferentesComMesmoTamanho()
        {
            // Arranje
            var guid      = Guid.NewGuid();
            var nameLeft  = $"left-test-{guid}";
            var nameRight = $"right-test-{guid}";

            FileHelper.SaveData("dGlueQ==", nameLeft);
            FileHelper.SaveData("dGlxeQ==", nameRight);
            var dc = new DataComparer();

            var leftData  = $"{Directory.GetCurrentDirectory()}\\inputs\\{nameLeft}";
            var rightData = $"{Directory.GetCurrentDirectory()}\\inputs\\{nameRight}";

            // Act
            var result = dc.CompareBytes(leftData, rightData);

            // Assert
            Assert.True(result.OffsetDifferences.Any());
        }
        public void RetornaReportDadosIguaisParaDadosIguais()
        {
            // Arranje
            var guid      = Guid.NewGuid();
            var nameLeft  = $"left-test-{guid}";
            var nameRight = $"right-test-{guid}";

            FileHelper.SaveData("dGlueQ==", nameLeft);
            FileHelper.SaveData("dGlueQ==", nameRight);
            var dc = new DataComparer();

            var leftData  = $"{Directory.GetCurrentDirectory()}\\inputs\\{nameLeft}";
            var rightData = $"{Directory.GetCurrentDirectory()}\\inputs\\{nameRight}";

            // Act
            var result = dc.CompareBytes(leftData, rightData);

            // Assert
            Assert.True(result.Report == ReportEnum.DadosIguais);
        }
    public static void Main()
    {
        var list1 = new List <Data>
        {
            new Data("63245-8", 10),
            new Data("08657-5", 100),
            new Data("29995-0", 500),
            new Data("12345-0", 42)
        };
        var list2 = new List <Data>
        {
            new Data("63245-8", 100),
            new Data("12345-0", 42),
            new Data("67455-1", 100),
            new Data("44187-10", 50),
        };
        var comparer               = new DataComparer();
        var newItems               = list2.Except(list1, comparer);    // The second list without items from the first list = new items.
        var deletedItems           = list1.Except(list2, comparer);    // The first list without items from the second list = deleted items.
        var keptItems              = list2.Intersect(list1, comparer); // Items in both lists = kept items (but note: Amount may have changed).
        List <ComparedData> result = new List <ComparedData>();

        result.AddRange(newItems.Select(item => new ComparedData(item, ComparisonState.New, 0)));
        result.AddRange(deletedItems.Select(item => new ComparedData(item, ComparisonState.Deleted, 0)));

        // For each item in the kept list, determine if it changed by comparing it to the first list.
        // Note that the "list1.Find()` is an O(N) operation making this quite slow.
        // You could speed it up for large collections by putting list1 into a dictionary and looking items up in it -
        // but this is unlikely to be needed for smaller collections.
        result.AddRange(keptItems.Select(item =>
        {
            var previous = list1.Find(other => other.Serial == item.Serial);
            return(new ComparedData(item, item.Amount == previous.Amount ? ComparisonState.Unchanged : ComparisonState.Changed, previous.Amount));
        }));
        // Print the result, for illustration.
        foreach (var item in result)
        {
            Console.WriteLine(item);
        }
    }
        public JsonResult DataCompare(string type, Guid oldVersion, Guid newVersion)
        {
            try
            {
                var    oldGuid = oldVersion;
                var    newGuid = newVersion;
                object a, d, c;

                switch (type.ToLower())
                {
                default: throw new NotImplementedException();

                case "card":
                {
                    var oldData = new GameDataManager.CardDataManager(oldGuid).Preload();
                    var newData = new GameDataManager.CardDataManager(newGuid).Preload();
                    DataComparer.CardDataComparer(oldData, newData, out List <string> added, out List <string> deleted, out Dictionary <string, Dictionary <string, string[]> > changed);
                    a = added.Select(m => newData.First(n => n.CardId.ToString() == m).CardName);
                    d = deleted.Select(m => oldData.First(n => n.CardId.ToString() == m).CardName);
                    c = changed;
                    break;
                }

                case "rune":
                {
                    var oldData = new GameDataManager.RuneDataManager(oldGuid).Preload();
                    var newData = new GameDataManager.RuneDataManager(newGuid).Preload();
                    DataComparer.RuneDataComparer(oldData, newData, out List <string> added, out List <string> deleted, out Dictionary <string, Dictionary <string, string[]> > changed);
                    a = added.Select(m => newData.First(n => n.RuneId.ToString() == m).RuneName);
                    d = deleted.Select(m => oldData.First(n => n.RuneId.ToString() == m).RuneName);
                    c = changed;
                    break;
                }

                case "skill":
                {
                    var oldData = new GameDataManager.SkillDataManager(oldGuid).Preload();
                    var newData = new GameDataManager.SkillDataManager(newGuid).Preload();
                    DataComparer.SkillDataComparer(oldData, newData, out List <string> added, out List <string> deleted, out Dictionary <string, Dictionary <string, string[]> > changed);
                    a = added.Select(m => newData.First(n => n.SkillId.ToString() == m).Name);
                    d = deleted.Select(m => oldData.First(n => n.SkillId.ToString() == m).Name);
                    c = changed;
                    break;
                }

                //case "mapstage":
                //    {
                //        var oldData = RawMapStageData.ParseJsonString(dbContext.GameDataFiles.First(m => m.Id == oldGuid).FileContent).Select(m => new ParsedMapStageData(m)).ToList();
                //        var newData = RawMapStageData.ParseJsonString(dbContext.GameDataFiles.First(m => m.Id == newGuid).FileContent).Select(m => new ParsedMapStageData(m)).ToList();
                //        DataComparer.MapStageDataComparer(oldData, newData, out List<string> added, out List<string> deleted, out Dictionary<string, Dictionary<string, string[]>> changed);
                //        a = added;
                //        d = deleted;
                //        c = changed;
                //        break;
                //    }
                case "keyword":
                {
                    var oldData = new GameDataManager.KeywordDataManager(oldGuid).Preload();
                    var newData = new GameDataManager.KeywordDataManager(newGuid).Preload();
                    DataComparer.KeywordDataComparer(oldData, newData, out List <string> added, out List <string> deleted, out Dictionary <string, string> changed);
                    a = added.Select(m => newData.First(n => n.key.ToString() == m).key);
                    d = deleted.Select(m => oldData.First(n => n.key.ToString() == m).key);
                    c = changed;
                    break;
                }
                }

                return(new JsonResult(new
                {
                    success = true,
                    added = a,
                    deleted = d,
                    changed = c,
                }));
            }
            catch (Exception e)
            {
                return(new JsonResult(new
                {
                    success = false,
                    message = new
                    {
                        e.GetBaseException().Message,
                        e.GetBaseException().Source,
                        e.GetBaseException().StackTrace,
                    },
                }));
            }
        }
Example #21
0
 public DistinctProvider(IProvider provider, DataComparer dataComparer)
 {
     this.provider = provider;
     this.dataComparer = dataComparer;
 }
Example #22
0
        public async void ButtonClickCommandHandler(object param)
        {
            switch (param.ToString())
            {
            case "GetFile":

                IsReadyToCompare = false;
                if (SelectedItemUser1CmbBox != "" && SelectedItemUser1CmbBox != null && SelectedItemUser2CmbBox != "" && SelectedItemUser2CmbBox != null)
                {
                    if (SelectedItemUser1CmbBox == SelectedItemUser2CmbBox)
                    {
                        System.Windows.MessageBox.Show("Selected participants are same.Please choose different users to compare");
                    }
                    else
                    {
                        //FileLoc1 = AppInitializer.GetFileLocation(SelectedItemUser1CmbBox);
                        //FileLoc2 = AppInitializer.GetFileLocation(SelectedItemUser2CmbBox);

                        FileLoc1 = AppInitializer.FileLocation1;
                        FileLoc2 = AppInitializer.FileLocation2;


                        if (FileLoc1.Length > 0 && FileLoc2.Length > 0)
                        {
                            IsReadyToCompare = true;
                            IsCacheSet       = true;
                        }
                    }
                }
                else
                {
                    System.Windows.MessageBox.Show("Participants aren't properly loaded");
                }


                break;

            case "Compare":

                DataComparer.FileReaderObj.User1DataObsrvColl.Clear();
                DataComparer.FileReaderObj.User2DataObsrvColl.Clear();
                ResultSetObsrvColl.Clear();
                PercentageThroughPutUser1 = "";
                PercentageThroughPutUser2 = "";


                if (SelectedItemUser1CmbBox != "" && SelectedItemUser1CmbBox != null && SelectedItemUser2CmbBox != "" && SelectedItemUser2CmbBox != null)
                {
                    ProgressDialogController controller = await dialogCoordinator.ShowProgressAsync(this, "Please Wait...Comparing participants", "Comparing participants");

                    if (IsDataFromFileSelectedRadioBtnFlag)
                    {
                        #region #Loading data from Xml or txt file

//                            ProgressDialogController controller = await dialogCoordinator.ShowProgressAsync(this, "Please Wait...Comparing participants", "Comparing participants");
                        controller.SetIndeterminate();



                        controller.SetMessage("loading data for both participants.");
                        await Task.Delay(1000);

                        bool loadingDataForUser1 = DataComparer.FileReaderObj.LoadDataForUser(1, FileLoc1, true);

                        #region #When 2nd participant is Console
                        if (SelectedItemUser2CmbBox != "" && SelectedItemUser2CmbBox == "Console")
                        {
                            loadDataForUser2 = DataComparer.FileReaderObj.LoadDataForUser(3, FileLoc2, true);
                            await Task.Delay(1000);

                            controller.SetMessage("data has been loaded for both participants.");
                            await Task.Delay(1000);

                            controller.SetMessage("displaying result...");
                            await Task.Delay(1000);

                            ResultSetObsrvColl = DataComparer.GetFinalResultSet(DataComparer.FileReaderObj.User1DataObsrvColl, DataComparer.FileReaderObj.ConsoleObsrvColl, false, true, "IsComparisonWithConsole");

                            int user2Count = 0;
                            int user1Count = DataComparer.GetPercentage(ResultSetObsrvColl, SelectedItemUser1CmbBox, out user2Count);
                            //PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(DataComparer.user1Counter, ResultSetObsrvColl.Count);
                            PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(user1Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user1Count + " | " + ResultSetObsrvColl.Count;
                            PercentageThroughPutUser2 = SelectedItemUser2CmbBox + " % : " + DataComparer.GetPercentage(user2Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user2Count + " | " + ResultSetObsrvColl.Count;

                            await controller.CloseAsync();
                        }
                        #endregion


                        #region #When 2nd participant is Quantum user
                        else if (SelectedItemUser2CmbBox != "" && SelectedItemUser2CmbBox != "Console" && SelectedItemUser2CmbBox != "Console_NSE")
                        {
                            loadDataForUser2 = DataComparer.FileReaderObj.LoadDataForUser(2, FileLoc2, true);
                            await Task.Delay(1000);

                            controller.SetMessage("data has been loaded for both participants.");
                            await Task.Delay(1000);

                            controller.SetMessage("displaying result...");
                            await Task.Delay(1000);

                            ResultSetObsrvColl = DataComparer.GetFinalResultSet(DataComparer.FileReaderObj.User1DataObsrvColl, DataComparer.FileReaderObj.User2DataObsrvColl, false, true, "IsComparisonWithQuantum");

                            int user2Count = 0;
                            int user1Count = DataComparer.GetPercentage(ResultSetObsrvColl, SelectedItemUser1CmbBox, out user2Count);
                            //PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(DataComparer.user1Counter, ResultSetObsrvColl.Count);
                            PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(user1Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user1Count + " | " + ResultSetObsrvColl.Count;
                            PercentageThroughPutUser2 = SelectedItemUser2CmbBox + " % : " + DataComparer.GetPercentage(user2Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user2Count + " | " + ResultSetObsrvColl.Count;
                            await controller.CloseAsync();
                        }
                        #endregion

                        else
                        {
                            System.Windows.MessageBox.Show("Error in selection made for the users OR there aren't any matches available in db for users " + SelectedItemUser1CmbBox + " | " + SelectedItemUser2CmbBox);
                            await controller.CloseAsync();
                        }
                        #endregion
                    }
                    else if (IsDataFromDbAndFileRadioBtnFlag)
                    {
                        #region #When data is from db and file

                        controller.SetIndeterminate();
                        controller.SetMessage("loading data for both participants.");
                        await Task.Delay(1000);

                        bool loadingDataForUser1 = DataComparer.FileReaderObj.LoadDataForUserFromDataBase(Convert.ToInt16(SelectedItemUser1CmbBox.Remove(0, 1)), SelectedDateFrom, SelectedDateTo, 1, IsLive);
                        if (SelectedItemUser2CmbBox != "" && SelectedItemUser2CmbBox == "Console_NSE")
                        {
                            loadDataForUser2 = DataComparer.FileReaderObj.LoadDataForUser(5, FileLoc2, true);
                            await Task.Delay(1000);

                            controller.SetMessage("data has been loaded for both participants.");
                            await Task.Delay(1000);

                            controller.SetMessage("displaying result...");
                            await Task.Delay(1000);

                            ResultSetObsrvColl = DataComparer.GetFinalResultSet(DataComparer.FileReaderObj.User1DataObsrvColl, DataComparer.FileReaderObj.ConsoleObsrvColl, false, true, "IsComparisonWithConsole_NSE");

                            int user2Count = 0;
                            int user1Count = DataComparer.GetPercentage(ResultSetObsrvColl, SelectedItemUser1CmbBox, out user2Count);
                            //PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(DataComparer.user1Counter, ResultSetObsrvColl.Count);
                            PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(user1Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user1Count + " | " + ResultSetObsrvColl.Count;
                            PercentageThroughPutUser2 = SelectedItemUser2CmbBox + " % : " + DataComparer.GetPercentage(user2Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user2Count + " | " + ResultSetObsrvColl.Count;

                            await controller.CloseAsync();
                        }



                        #endregion
                    }
                    else if (IsDataFromDbSelectedRadioBtnFlag)
                    {
                        #region #Loading data from database

                        // ProgressDialogController controller = await dialogCoordinator.ShowProgressAsync(this, "Please Wait...Comparing participants", "Comparing participants");
                        controller.SetIndeterminate();



                        controller.SetMessage("loading data for both participants.");
                        await Task.Delay(1000);

                        //bool loadingDataForUser1 = DataComparer.FileReaderObj.LoadDataForUser(1, FileLoc1, true);
                        bool loadingDataForUser1 = DataComparer.FileReaderObj.LoadDataForUserFromDataBase(Convert.ToInt16(SelectedItemUser1CmbBox.Remove(0, 1)), SelectedDateFrom, SelectedDateTo, 1, IsLive);


                        if (SelectedItemUser2CmbBox != "" && SelectedItemUser2CmbBox != "Console" && loadingDataForUser1)
                        {
                            loadDataForUser2 = DataComparer.FileReaderObj.LoadDataForUserFromDataBase(Convert.ToInt16(SelectedItemUser2CmbBox.Remove(0, 1)), SelectedDateFrom, SelectedDateTo, 2, IsLive);
                            await Task.Delay(1000);

                            controller.SetMessage("data has been loaded for both participants.");
                            await Task.Delay(1000);

                            controller.SetMessage("displaying result...");
                            await Task.Delay(1000);

                            ResultSetObsrvColl = DataComparer.GetFinalResultSet(DataComparer.FileReaderObj.User1DataObsrvColl, DataComparer.FileReaderObj.User2DataObsrvColl, false, true, "IsComparisonWithQuantum");

                            int user2Count = 0;
                            int user1Count = DataComparer.GetPercentage(ResultSetObsrvColl, SelectedItemUser1CmbBox, out user2Count);
                            //PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(DataComparer.user1Counter, ResultSetObsrvColl.Count);
                            PercentageThroughPutUser1 = SelectedItemUser1CmbBox + " % : " + DataComparer.GetPercentage(user1Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user1Count + " | " + ResultSetObsrvColl.Count;
                            PercentageThroughPutUser2 = SelectedItemUser2CmbBox + " % : " + DataComparer.GetPercentage(user2Count, ResultSetObsrvColl.Count) + "    Total Matches : " + user2Count + " | " + ResultSetObsrvColl.Count;
                            await controller.CloseAsync();
                        }
                        else
                        {
                            System.Windows.MessageBox.Show("Error in selection made for the users OR there aren't result available in db for user : "******" | " + SelectedItemUser2CmbBox);
                            await controller.CloseAsync();
                        }
                        #endregion
                    }
                    else
                    {
                        await controller.CloseAsync();

                        System.Windows.MessageBox.Show("Radiobutton is not selected");
                    }
                }
                else
                {
                    System.Windows.MessageBox.Show("Participants aren't properly loaded");
                }

                if (DataComparer.FileReaderObj.ListOfErrorneousConsoleRecord.Count > 0)
                {
                    foreach (var item in DataComparer.FileReaderObj.ListOfErrorneousConsoleRecord)
                    {
                        System.Windows.MessageBox.Show(item);
                    }
                }


                break;

            case "Cache":

                #region #Loading Cahce from database

                DataComparer.FileReaderObj.User1DataObsrvColl.Clear();
                DataComparer.FileReaderObj.User2DataObsrvColl.Clear();
                ResultSetObsrvColl.Clear();
                PercentageThroughPutUser1 = "";
                PercentageThroughPutUser2 = "";

                ProgressDialogController controller_buildCache = await dialogCoordinator.ShowProgressAsync(this, "Please Wait...", "building cache");

                controller_buildCache.SetIndeterminate();
                controller_buildCache.SetMessage("Building cache from all the fetched records");
                await Task.Delay(1000);

                if (SelectedDateTo != null && SelectedDateTo != "" && SelectedDateFrom != null && SelectedDateFrom != "")
                {
                    bool loadCache = DataComparer.FileReaderObj.LoadDataForUserFromDataBase(3, SelectedDateFrom, SelectedDateTo, 3, IsLive);
                    if (loadCache)
                    {
                        controller_buildCache.SetMessage("Cahche download finished. Dowloaded records within the selected date range is : " + DataComparer.FileReaderObj.UserDataReaderDataBase.AlphaDataTable.Rows.Count);
                        await Task.Delay(2000);

                        controller_buildCache.SetMessage("System ready for comparison");
                        if (DataComparer.FileReaderObj.UserDataReaderDataBase.AlphaDataTable.Rows.Count > 0)
                        {
                            IsCacheSet = true;
                        }
                        await Task.Delay(1000);

                        await controller_buildCache.CloseAsync();
                    }
                    else
                    {
                        controller_buildCache.SetMessage("Failed to load cache.");
                        await Task.Delay(1000);

                        await controller_buildCache.CloseAsync();
                    }
                }
                else
                {
                    controller_buildCache.SetMessage("Problem encountered with selected dates.Kindly check selected date ranges.");
                    await Task.Delay(1000);

                    await controller_buildCache.CloseAsync();
                }

                #endregion

                break;
            }
        }
Example #23
0
 public MultiFileProvider(FileOptionsFromClause fileOptions, DataComparer dataComparer)
 {
     this.fileOptions = fileOptions;
     this.dataComparer = dataComparer;
 }
 public void A_TestSetup()
 {
     _comparer = IoC.Container.GetInstance <DataComparer>();
     left      = Tables.Default;
     right     = Tables.Default;
 }