protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        this.cancelEvent = this.OpenEvent();
        this.settings = BXIBlockImportXmlSettings.Load();
        if (this.settings == null)
        {
            this.settings = new BXIBlockImportXmlSettings();
        }

        var siteTypes = TypeCB.Items;
        siteTypes.Clear();
        siteTypes.Add(new ListItem(GetMessageRaw("Combo.SelectIBlockType"), string.Empty));
        foreach (var type in this.helper.AllTypes)
        {
            siteTypes.Add(new ListItem(this.helper.GetTypeName(type), type.Id.ToString()));
        }

        var siteSites = SitesList.Items;
        siteSites.Clear();
        foreach (var site in this.helper.AllSites)
        {
            siteSites.Add(new ListItem(site.Name, site.Id));
        }

        if (siteSites.Count > 0)
        {
            siteSites[0].Selected = true;
        }

        this.CreatePreviewImage.Checked = this.settings.CreatePreviewImage;
        this.PreviewImageWidth.Text = this.settings.PreviewImageWidth.ToString();
        this.PreviewImageHeight.Text = this.settings.PreviewImageHeight.ToString();
        this.ResizeDetailImage.Checked = this.settings.ResizeDetailImage;
        this.DetailImageWidth.Text = this.settings.DetailImageWidth.ToString();
        this.DetailImageHeight.Text = this.settings.DetailImageHeight.ToString();
        this.ElementActions.SelectedIndex = (int)this.settings.ElementOmission;
        this.SectionActions.SelectedIndex = (int)this.settings.SectionOmission;
        this.SourceFile.Text = this.settings.SourceFile;

        this.UpdateControls();
    }
    protected void OnStartImport(object sender, EventArgs e)
    {
        this.cancelEvent = this.OpenEvent();
        if (this.cancelEvent != null)
        {
            this.cancelEvent.Reset();
        }

        this.cancelEvent = new EventWaitHandle(false, EventResetMode.ManualReset, this.EventName);
        BXIBlockImportXmlSettings.Delete(BXIdentity.Current.Id, BXSite.Current.Id);

        this.settings = new BXIBlockImportXmlSettings(BXIdentity.Current.Id, BXSite.Current.Id);
        this.settings.Locale = BXLoc.CurrentLocale;
        this.settings.ImportExportMode = BXIBlockImportExportMode.InfoBlock;
        this.settings.TypeId = this.GetSelectedComboValue(this.TypeCB);
        this.settings.Sites.AddRange(from ListItem item in SitesList.Items where item.Selected select item.Value);
        this.settings.SourceFile = this.SourceFile.Text;

        this.settings.CreatePreviewImage = this.CreatePreviewImage.Checked;
        this.ParseInt(this.PreviewImageWidth.Text, ref this.settings.PreviewImageWidth);
        this.ParseInt(this.PreviewImageHeight.Text, ref this.settings.PreviewImageHeight);

        this.settings.ResizeDetailImage = this.ResizeDetailImage.Checked;
        this.ParseInt(this.DetailImageWidth.Text, ref this.settings.DetailImageWidth);
        this.ParseInt(this.DetailImageHeight.Text, ref this.settings.DetailImageHeight);

        this.settings.ElementOmission = (BXXmlImportOmissionProcessing)this.ElementActions.SelectedIndex;
        this.settings.SectionOmission = (BXXmlImportOmissionProcessing)this.SectionActions.SelectedIndex;
        this.settings.Save();

        this.StartImport();
        this.UpdateControls();
    }