Exemple #1
0
        private void getAllItems()
        {
            OldAnalysisGrid.DataSource = tblItems;
            _cloneAnalyzer             = new CloneAnalyzer("");
            List <source>   sourceList       = _cloneAnalyzer.GetAllOldAnalyzeDetails();
            cycloneEntities _cycloneEntities = new cycloneEntities();

            foreach (source i in sourceList)
            {
                DataRow dr = tblItems.NewRow();
                dr["Source ID"]                     = i.source_id;
                dr["Source Name"]                   = i.source_name;
                dr["Source Location"]               = i.location;
                dr["Last Analysed Time"]            = i.create_date;
                dr["Line of Code in Last Analysis"] = _cycloneEntities.source_analyzer
                                                      .Where(a => a.source_id == i.source_id)
                                                      .OrderByDescending(a => a.processed_time).FirstOrDefault().line_of_code_count;
                dr["Clone Count in Last Analysis"] = _cycloneEntities.source_analyzer
                                                     .Where(a => a.source_id == i.source_id)
                                                     .OrderByDescending(a => a.processed_time).FirstOrDefault().clones_count;
                DataGridViewButtonColumn visualizeButtonColumn = new DataGridViewButtonColumn();
                visualizeButtonColumn.Name = "Analysis History";
                visualizeButtonColumn.Text = "View";
                visualizeButtonColumn.UseColumnTextForButtonValue = true;
                int columnIndex = 6;
                if (OldAnalysisGrid.Columns["Analysis History"] == null)
                {
                    OldAnalysisGrid.Columns.Insert(columnIndex, visualizeButtonColumn);
                }
                tblItems.Rows.Add(dr);
            }
            OldAnalysisGrid.Refresh();
        }
Exemple #2
0
        private void getPreviousData()
        {
            dataGridView.DataSource = dataTable;
            _cloneAnalyzer          = new CloneAnalyzer("");
            List <source_analyzer> anlyzerList      = _cloneAnalyzer.GetAllDetailsByID(sourceId);
            cycloneEntities        _cycloneEntities = new cycloneEntities();

            foreach (source_analyzer i in anlyzerList)
            {
                DataRow dr = dataTable.NewRow();
                dataGridView.AllowUserToAddRows = false;
                dr["Source ID"]          = sourceId;
                dr["Analyzer ID"]        = i.analyzer_id.PadLeft(4, '0');
                dr["Processed Time"]     = i.processed_time;
                dr["Source File Count"]  = i.source_file_count;
                dr["Line of Code Count"] = i.line_of_code_count;
                dr["Clone Class Count"]  = i.clone_classes_count;
                dr["Clones Count"]       = i.clones_count;
                DataGridViewButtonColumn visualizeButtonColumn = new DataGridViewButtonColumn();
                visualizeButtonColumn.Name = "Visualize Statistics";
                visualizeButtonColumn.Text = "Visualize";
                visualizeButtonColumn.UseColumnTextForButtonValue = true;
                int columnIndex = 7;
                if (dataGridView.Columns["Visualize Statistics"] == null)
                {
                    dataGridView.Columns.Insert(columnIndex, visualizeButtonColumn);
                }

                dataTable.Rows.Add(dr);
            }
            dataGridView.Refresh();
        }
Exemple #3
0
        private void getAnalysisResult()
        {
            dataGridView1.DataSource = dataTable;
            _cloneAnalyzer           = new CloneAnalyzer("");
            source_analyzer anlyzer          = _cloneAnalyzer.GetAnalyzeDetailsByID(_sourceAnalyzeId);
            cycloneEntities _cycloneEntities = new cycloneEntities();

            if (anlyzer != null)
            {
                DataRow dr = dataTable.NewRow();
                dataGridView1.AllowUserToAddRows = false;
                dr["Source ID"]          = anlyzer.source_id;
                _sourceId                = anlyzer.source_id;
                dr["Analyzer ID"]        = _sourceAnalyzeId;
                dr["Processed Time"]     = anlyzer.processed_time;
                dr["Source File Count"]  = anlyzer.source_file_count;
                dr["Line of Code Count"] = anlyzer.line_of_code_count;
                dr["Clone Class Count"]  = anlyzer.clone_classes_count;
                dr["Clones Count"]       = anlyzer.clones_count;
                dataTable.Rows.Add(dr);
            }

            dataGridView1.Refresh();
        }
Exemple #4
0
        private void btnAnalyzeCode_Click(object sender, EventArgs e)
        {
            try
            {
                String LocalFilePath = txtLocalSourceUrl.Text;
                String GitHubUrl     = txtGitSourceUrl.Text;
                String ProjectName   = txtProjectName.Text;

                if (String.IsNullOrEmpty(LocalFilePath) && String.IsNullOrEmpty(GitHubUrl))
                {
                    MessageBox.Show("Please specify either Local File Path or GIT Url");
                }
                else
                {
                    if (!String.IsNullOrEmpty(ProjectName))
                    {
                        Boolean IsOneTime    = chkOneTimeAnalyse.Checked;
                        Boolean IsTimeToTime = chkTimeToTimeAnalyze.Checked;
                        if (IsOneTime || IsTimeToTime)
                        {
                            if (!String.IsNullOrEmpty(LocalFilePath))
                            {
                                if (Directory.Exists(LocalFilePath) && Directory.EnumerateFiles(LocalFilePath).Count() > 0)
                                {
                                    //setup cqr and cqb and update db

                                    _cloneAnalyzer = new CloneAnalyzer(ProjectName);
                                    var TimeInterval = cmbInterval.SelectedValue;
                                    if (IsOneTime)
                                    {
                                        TimeInterval = "";
                                    }
                                    Waiting waitingForm = new Waiting();
                                    waitingForm.Show();
                                    string analyzeId = "";
                                    var    status    = _cloneAnalyzer.ProcessLocalFilePath(LocalFilePath, ProjectName, GitHubUrl, TimeInterval.ToString(), out analyzeId);
                                    waitingForm.Hide();
                                    waitingForm.Dispose();
                                    if (analyzeId != "")
                                    {
                                        Form3 frmJustResult = new Form3(analyzeId);
                                        frmJustResult.Show();
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Specified directory not exist or empty");
                                }
                            }
                            else if (!String.IsNullOrEmpty(GitHubUrl))
                            {
                                //git hub implementation
                                if (GitHubUrl.Contains(".git"))
                                {
                                    //assume that the master branch always as /archive/master.zip
                                    Waiting waitingForm = new Waiting();
                                    waitingForm.Show();
                                    Application.DoEvents();
                                    var       GitHubUrlforMain = GitHubUrl.Replace(".git", "/archive/master.zip");
                                    string    url    = @GitHubUrlforMain;
                                    WebClient client = new WebClient();
                                    //client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
                                    var           workingDirectory = ConfigurationSettings.AppSettings["DefaultSourceLocation"];
                                    CloneAnalyzer ca        = new CloneAnalyzer("");
                                    string        analyzeId = "";
                                    if (ca.CreateBaseLocationForSource())
                                    {
                                        String uniqueProjectRef = Guid.NewGuid().ToString();
                                        if (!Directory.Exists(workingDirectory + "\\GitSources\\" + uniqueProjectRef))
                                        {
                                            Directory.CreateDirectory(workingDirectory + "\\GitSources\\" + uniqueProjectRef);
                                        }

                                        client.DownloadFile(new Uri(url), @workingDirectory + "\\GitSources\\" + uniqueProjectRef + "\\" + uniqueProjectRef + ".zip");
                                        ZipFile.ExtractToDirectory(@workingDirectory + "\\GitSources\\" + uniqueProjectRef + "\\" + uniqueProjectRef + ".zip", @workingDirectory + "\\GitSources\\" + uniqueProjectRef + "\\");
                                        ca = new CloneAnalyzer("");
                                        var TimeInterval = cmbInterval.SelectedValue;
                                        if (IsOneTime)
                                        {
                                            TimeInterval = "";
                                        }
                                        ca.ProcessLocalFilePath(@workingDirectory + "\\GitSources\\" + uniqueProjectRef, ProjectName, GitHubUrl, TimeInterval.ToString(), out analyzeId);
                                    }
                                    waitingForm.Hide();
                                    waitingForm.Dispose();
                                    if (analyzeId != "")
                                    {
                                        Form3 frmJustResult = new Form3(analyzeId);
                                        frmJustResult.Show();
                                    }
                                    txtGitSourceUrl.Text         = "";
                                    txtLocalSourceUrl.Text       = "";
                                    txtProjectName.Text          = "";
                                    chkOneTimeAnalyse.Checked    = false;
                                    chkTimeToTimeAnalyze.Checked = false;
                                    chkOneTimeAnalyse.Enabled    = false;
                                    chkTimeToTimeAnalyze.Enabled = false;
                                }
                                else
                                {
                                    MessageBox.Show("Seems like provided GIT Url is invalid.");
                                }
                            }
                            else
                            {
                                MessageBox.Show("Please specify either Local File Path or GIT Url");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Please specify a analysis method");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Please specify a Project Name");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }