コード例 #1
0
        private void Duplicate(object sender, RoutedEventArgs e)
        {
            //TODO: Need to move code from if else to the respective classes.
            if (DSDetails.DSType == DataSourceBase.eDSType.MSAccess)
            {
                AccessDataSource dsDetailsCopy = (AccessDataSource)CopyTreeItemWithNewName((RepositoryItemBase)DSDetails);
                if (dsDetailsCopy == null)
                {
                    return;
                }
                //TODO: use Path.Combine instead of string concat
                dsDetailsCopy.FilePath     = DSDetails.ContainingFolder + "\\" + dsDetailsCopy.Name + ".mdb";
                dsDetailsCopy.FileFullPath = DSDetails.ContainingFolderFullPath + "\\" + dsDetailsCopy.Name + ".mdb";

                if (File.Exists(dsDetailsCopy.FileFullPath))
                {
                    Reporter.ToUser(eUserMsgKey.DuplicateDSDetails, dsDetailsCopy.FileFullPath); return;
                }

                File.Copy(DSDetails.FileFullPath, dsDetailsCopy.FileFullPath);

                (WorkSpace.Instance.SolutionRepository.GetItemRepositoryFolder(((RepositoryItemBase)DSDetails))).AddRepositoryItem(dsDetailsCopy);
            }
            else
            {
                GingerLiteDB dsDetailsCopy = (GingerLiteDB)CopyTreeItemWithNewName((RepositoryItemBase)DSDetails);
                if (dsDetailsCopy == null)
                {
                    return;
                }
                dsDetailsCopy.FilePath     = DSDetails.ContainingFolder + "\\" + dsDetailsCopy.Name + ".db";
                dsDetailsCopy.FileFullPath = DSDetails.ContainingFolderFullPath + "\\" + dsDetailsCopy.Name + ".db";

                if (File.Exists(dsDetailsCopy.FileFullPath))
                {
                    Reporter.ToUser(eUserMsgKey.DuplicateDSDetails, dsDetailsCopy.FileFullPath); return;
                }

                File.Copy(DSDetails.FileFullPath, dsDetailsCopy.FileFullPath);

                (WorkSpace.Instance.SolutionRepository.GetItemRepositoryFolder(((RepositoryItemBase)DSDetails))).AddRepositoryItem(dsDetailsCopy);
            }
        }