Esempio n. 1
0
        private void SearchCDInCDArchive()
        {
            CCDArchive cdarchive = new CCDArchive();

            int searchError = 0;

            cdarchive.Search(CD, 1, ref searchError, 0, IntPtr.Zero);

            // Falls die CD eine Kategorie hat, die nicht vorhanden ist, diese anlegen
            dataBase.AllCategories.GetIdByName(CD.Category, true);
        }
        private void ButtonImportCDs_Click(object sender, RoutedEventArgs e)
        {
            // Alle markierten CDs in den aktuellen Katalog übernehmen.
            foreach (CDItemResult item in DataGridResult.SelectedItems)
            {
                if (CurrentCD != null)
                {
                    /*CString sSaveIdentity = CD->Identity;
                     * int iSaveNumberOfTracks = CD->NumberOfTracks;
                     * Big3::Hitbase::DataBaseEngine::CD^ cd = gcnew Big3::Hitbase::DataBaseEngine::CD();
                     * BOOL bError = FALSE;
                     * BOOL bCanceled = FALSE;
                     *
                     * cd->Identity = gcnew String(m_saIdentities[iSelItem]);
                     *
                     * theApp.m_CDArchives->DownloadCD(gcnew IntPtr(pHttpConnection), cd, bCanceled, bError, TRUE);
                     *
                     * CD = cd;
                     *
                     * CD->Identity = gcnew String(sSaveIdentity);
                     * CD->NumberOfTracks = iSaveNumberOfTracks;*/
                }
                else
                {
                    CD  cd       = new CD();
                    int error    = 0;
                    int canceled = 0;

                    CDArchiveConfig cdArchiveConfig = ((ComboBoxArchiveItem)ComboBoxCDArchives.SelectedItem).ArchiveConfig;

                    if (cdArchiveConfig.Type == CDArchiveType.BIG3)
                    {
                        cd.Identity = item.Identity;

                        CCDArchive cdarchive = new CCDArchive();

                        cdarchive.SearchCDInInternetBig3(cdArchiveConfig, cd, ref canceled, ref error);
                    }

                    if (cdArchiveConfig.Type == CDArchiveType.CDArchiveLocal)
                    {
                        cd.Identity = item.Identity;

                        CCDArchive cdarchive = new CCDArchive();

                        CDArchiveLocalFile.SearchCDInCDArchiveLocalFile(cdArchiveConfig.ArchiveName, cd);
                    }

                    cd.Save(dataBase);
                }
            }

            Close();
        }
        private void FillCDArchives()
        {
            CCDArchive cdarchive = new CCDArchive();

            foreach (CDArchiveConfig archivConfig in Settings.Current.CDArchives)
            {
                if (cdarchive.IsArchiveBrowseable(archivConfig))
                {
                    ComboBoxCDArchives.Items.Add(new ComboBoxArchiveItem()
                    {
                        ArchiveConfig = archivConfig
                    });
                }
            }

            if (ComboBoxCDArchives.Items.Count > 0)
            {
                ComboBoxCDArchives.SelectedIndex = 0;
            }
        }
        private void ShowDetails()
        {
            CD  cd       = new CD();
            int error    = 0;
            int canceled = 0;

            CDItemResult selItem = ((CDItemResult)this.DataGridResult.SelectedItem);

            if (selItem == null)
            {
                return;
            }

            CDArchiveConfig cdArchiveConfig = ((ComboBoxArchiveItem)ComboBoxCDArchives.SelectedItem).ArchiveConfig;

            if (cdArchiveConfig.Type == CDArchiveType.BIG3)
            {
                cd.Identity = selItem.Identity;

                CCDArchive cdarchive = new CCDArchive();

                cdarchive.SearchCDInInternetBig3(cdArchiveConfig, cd, ref canceled, ref error);
            }

            if (cdArchiveConfig.Type == CDArchiveType.CDArchiveLocal)
            {
                cd.Identity = selItem.Identity;

                CCDArchive cdarchive = new CCDArchive();

                CDArchiveLocalFile.SearchCDInCDArchiveLocalFile(cdArchiveConfig.ArchiveName, cd);
            }

            WindowAlbum windowAlbum = new WindowAlbum(cd, dataBase);

            windowAlbum.SaveAlbumOnOK = false;
            windowAlbum.ShowDialog();
        }
        private void DoUpload()
        {
            // Zuerst alle CDs
            Big3.Hitbase.DataBaseEngine.CDDataSetTableAdapters.CDTableAdapter cdAdap = new Big3.Hitbase.DataBaseEngine.CDDataSetTableAdapters.CDTableAdapter(DataBase);
            CDDataSet.CDDataTable cdQuery = cdAdap.GetDataByAudioCD();

            Dispatcher.BeginInvoke(new Action(delegate
            {
                TextBlockTitle.Text       = string.Format(StringTable.UploadCatalog, cdCount);
                ProgressBarUpload.Maximum = cdCount;
            }
                                              ));

            int iCount = 0;

            CCDArchive cdarchive = new CCDArchive();

            foreach (CDDataSet.CDRow cdRow in cdQuery)
            {
                if (canceled)
                {
                    break;
                }

                CD cd = DataBase.GetCDById(cdRow.CDID);

                if (cd.Type != AlbumType.AudioCD)       // Nur richtige CDs
                {
                    continue;
                }

                Dispatcher.BeginInvoke(new Action(delegate
                {
                    ProgressBarUpload.Value = iCount;
                }
                                                  ));

                UploadDownloadItem newItem = new UploadDownloadItem();
                newItem.Artist = cd.Artist;
                newItem.Title  = cd.Title;
                newItem.Status = StringTable.SendingData + "...";

                Dispatcher.BeginInvoke(new Action(delegate
                {
                    uploadItems.Add(newItem);
                    dataGrid.UpdateLayout();
                    dataGrid.ScrollIntoView(newItem);
                }
                                                  ));

                int    iResult = 0;
                string status  = "";

                try
                {
                    cdarchive.Upload(cd, ref iResult, IntPtr.Zero, 0);

                    switch ((CDArchivUploadResults)iResult)
                    {
                    case CDArchivUploadResults.UPLOAD_ARCHIV_ERROR:
                    case CDArchivUploadResults.UPLOAD_ARCHIV_CD_ERROR:
                    {
                        status = StringTable.Failed;
                        Dispatcher.BeginInvoke(new Action(delegate
                            {
                                TextBoxDetails.Text += cdarchive.m_sLastDetailMessage + "\r\n\r\n";
                            }
                                                          ));
                        break;
                    }

                    case CDArchivUploadResults.UPLOAD_ARCHIV_CD_EXISTS:
                        status = StringTable.CDExists;
                        break;

                    case CDArchivUploadResults.UPLOAD_ARCHIV_NEW_CD:
                        status = StringTable.Success;
                        break;

                    default:
                        System.Diagnostics.Debug.Assert(false);
                        break;
                    }
                }
                catch (Exception e)
                {
                    Dispatcher.BeginInvoke(new Action(delegate
                    {
                        TextBoxDetails.Text += e.ToString() + "\r\n\r\n";
                    }
                                                      ));
                    status = StringTable.Failed;
                }

                newItem.Status = status;

                iCount++;
            }

            Dispatcher.BeginInvoke(new Action(delegate
            {
                TextBlockTitle.Text = StringTable.UploadCompleted;

                ButtonCancel.Content = StringTable.Close;
            }
                                              ));

            // Wenn fertig, dann setzen wir canceled auf true, damit im Cancel_Click Event das Fenster geschlossen wird.
            canceled = true;
        }