public RebuildListForm(WebSites webSites)
        {
            InitializeComponent();
            InitializeDgv();

            AcceptButton = backButton;
            DialogResult = DialogResult.None;
            FormClosed  += RebuildListForm_FormClosed;

            _progressIndicator       = new Progress <KeyValuePair <string, KeyValuePair <string, int> > >(ReportProgress);
            _cancellationTokenSource = new CancellationTokenSource();
            _webSites = webSites;

            _webSites.GetNamesList("toRebuild").ForEach(name =>
            {
                var allCount = _webSites.GetWebSiteByName(name).DomainLists.HtmlFilesList["available"].Count +
                               _webSites.GetWebSiteByName(name).DomainLists.ImgsList["available"].Count +
                               _webSites.GetWebSiteByName(name).DomainLists.JsFilesList["available"].Count +
                               _webSites.GetWebSiteByName(name).DomainLists.CssFilesList["available"].Count;
                dashboardDgv.Rows.Add(name,
                                      0, _webSites.GetWebSiteByName(name).DomainLists.HtmlFilesList["available"].Count,
                                      0, _webSites.GetWebSiteByName(name).DomainLists.ImgsList["available"].Count,
                                      0, _webSites.GetWebSiteByName(name).DomainLists.JsFilesList["available"].Count,
                                      0, _webSites.GetWebSiteByName(name).DomainLists.CssFilesList["available"].Count,
                                      0, allCount);
            });

            UpdateStatusCount(dashboardDgv.Rows.Count);

            previewButton.Enabled        = false;
            previewBrowserButton.Enabled = false;
            previewButton.Click         += previewButton_Click;
            previewBrowserButton.Click  += previewButton_Click;
        }
        private void FillGrid()
        {
            var namesList  = _webSites.GetNamesList("rebuilt");
            var count      = namesList.Count;
            var filesCount = new List <int>();

            namesList.ForEach(name => filesCount.Add(_webSites.GetWebSiteByName(name).DomainFilesCount));

            var rebuilt = namesList.Zip(filesCount, (name, files) => new { Name = name, Files = files });

            statusLabel.Text = @"You have " + count + (count == 1 ? @" rebuilt website." : @" rebuilt websites.");

            if (count == 0)
            {
                return;
            }

            rebuiltDgv.Rows.Clear();
            foreach (var webSite in rebuilt)
            {
                rebuiltDgv.Rows.Add(webSite.Name, webSite.Files);
            }
        }