Ejemplo n.º 1
0
        // set plagiarism result in percentage
        private void SetPlagiarismPercentage()
        {
            try
            {
                double percentage = 0;

                var sourceFileList     = SourceFileContent.Distinct().ToList();
                var compareResultsList = CompareResultBag.GroupBy(item => item.matchText)
                                         .Select(grp => grp.OrderBy(item => item.matchText).First())
                                         .ToList();

                if (sourceFileList.Count > 0 && compareResultsList.Count > 0)
                {
                    percentage = Convert.ToDouble((double)compareResultsList.Count / (double)sourceFileList.Count) * 100;
                }

                labelPalagrismPer.Visible    = true;
                labelPalagrismResult.Visible = true;

                labelPalagrismResult.Text = Math.Round(percentage, 2).ToString() + "%";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 2
0
        // compare directory file content with browsed file content
        private void CompareFile(int i, string[] filesList)
        {
            try
            {
                string fileContent = GetFileText(filesList[i]);

                if (!string.IsNullOrEmpty(fileContent.Trim()))
                {
                    foreach (string text in SourceFileContent)
                    {
                        if (fileContent.Replace(" ", "").ToLower().Trim().Contains(text.Replace(" ", "").ToLower().Trim()))
                        {
                            CompareResult compareResult = new CompareResult();
                            compareResult.matchText = text;
                            compareResult.filePath  = filesList[i];
                            // set value of chracter tracing
                            compareResult.charTracing = SetCharTracingText(fileContent, text);

                            CompareResultBag.Add(compareResult);
                        }
                        else
                        {
                            // for testing only
                            CompareResult compareResult = new CompareResult();
                            compareResult.matchText = text;
                            compareResult.filePath  = filesList[i];
                            UnMatchResultBag.Add(compareResult);
                        }
                    }

                    var fileMatchWords = CompareResultBag.Where(x => x.filePath == filesList[i]);
                    if (fileMatchWords != null && fileMatchWords.ToList().Count > 0)
                    {
                        var compareResultsList = fileMatchWords.GroupBy(item => item.matchText)
                                                 .Select(grp => grp.OrderBy(item => item.matchText).First())
                                                 .ToList();
                        double totalMatchWords          = (double)compareResultsList.Count;
                        double fileWordsWithCombination = SourceFileContent.Distinct().ToList().Count;

                        double percentage = Convert.ToDouble(totalMatchWords / fileWordsWithCombination) * 100;
                        fileMatchWords.FirstOrDefault().filePercentage = Math.Round(percentage, 2).ToString() + "%";
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 3
0
        private void compareButton_Click(object sender, EventArgs e)
        {
            try
            {
                // reset form values
                ResetFormValues();

                if (string.IsNullOrEmpty(filePathtextBox.Text.Trim()))
                {
                    MessageBox.Show("Compare file is missing", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (string.IsNullOrEmpty(dirPathtextBox.Text.Trim()))
                {
                    MessageBox.Show("Compare directory is missing", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    // get all files from directory
                    string[] filesList = Directory.GetFiles(dirPathtextBox.Text.Trim(), "*.*", SearchOption.AllDirectories);

                    // prepare splited source file content
                    SourceFileContent = new List <string>();
                    SourceFileContent = PrepareSplitFileContent(filePathtextBox.Text.Trim());

                    // compare directory files content with browsed file content
                    CompareFiles(filesList);

                    if (CompareResultBag.Count == 0)
                    {
                        MessageBox.Show("No Plagiarism found! File is 100% identical.", "Plagiarism Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                    // populate results into grid
                    dataGridView.DataSource = CompareResultBag.ToList();

                    // set plagiarism result in percentage
                    SetPlagiarismPercentage();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }