Exemple #1
0
        public fmProjectsEditor(DBScriptViewModel viewModel)
        {
            InitializeComponent();

            Vm = viewModel;

            DataContext = Vm;
        }
        public static void UpdateContextMenu()
        {
            var menu = new ContextMenu();

            var Settings = new DBScriptViewModel();

            foreach (var proj in Settings.Projects)
            {
                var ProjectItem = new MenuItem
                {
                    Header = proj.Name,
                    Tag    = proj
                };
                menu.Items.Add(ProjectItem);

                foreach (var db in proj.DataBases)
                {
                    bool HasConnect = false;

                    try
                    {
                        SqlConnection conn = new SqlConnection(db.GetConnectionString());
                        conn.Open();
                        HasConnect = true;
                    }
                    catch (Exception) {}

                    var DBItem = new MenuItem
                    {
                        IsEnabled = false,
                        Header    = db.Name + (!HasConnect ? @"(Нет подключения)" : ""),
                        Tag       = db
                    };
                    ProjectItem.Items.Add(DBItem);

                    var AddScriptItem = new MenuItem
                    {
                        Header = @"Добавить миграцию",
                        Tag    = db
                    };
                    AddScriptItem.PreviewMouseDown += AddScriptItem_PreviewMouseDown;;
                    AddScriptItem.Icon              = new Image()
                    {
                        Source = new BitmapImage(new Uri("pack://*****:*****@"Зависимости развёртывания",
                        Tag    = db
                    };
                    DBDependenciesItem.PreviewMouseDown += DBDependenciesItem_PreviewMouseDown;
                    DBDependenciesItem.Icon              = new Image()
                    {
                        Source = new BitmapImage(new Uri("pack://*****:*****@"Обновить",
                        Tag    = db
                    };
                    UpdateDBItem.PreviewMouseDown += UpdateDBItem_PreviewMouseDown;
                    UpdateDBItem.Icon              = new Image()
                    {
                        Source = new BitmapImage(new Uri("pack://*****:*****@"Настройки объектов БД",
                        Tag    = db
                    };
                    DBSettingsItem.PreviewMouseDown += DBSettingsItem_PreviewMouseDown;;
                    DBSettingsItem.Icon              = new Image()
                    {
                        Source = new BitmapImage(new Uri("pack://*****:*****@"Настройки проекта",
                    Tag    = proj
                };
                ProjectSettingsItem.PreviewMouseDown += ProjectSettingsItem_PreviewMouseDown;;
                ProjectSettingsItem.Icon              = new Image()
                {
                    Source = new BitmapImage(new Uri("pack://application:,,,/DBScriptSaver;component/img/Settings.png")), Width = 16, Height = 16
                };
                ProjectItem.Items.Add(ProjectSettingsItem);
            }

            menu.Items.Add(new Separator());

            var SettingsItem = new MenuItem
            {
                Header = "Настройки"
            };

            SettingsItem.PreviewMouseDown += SettingsItem_PreviewMouseDown;
            SettingsItem.Icon              = new Image()
            {
                Source = new BitmapImage(new Uri("pack://application:,,,/DBScriptSaver;component/img/Settings.png")), Width = 16, Height = 16
            };
            menu.Items.Add(SettingsItem);

            menu.Items.Add(new Separator());

            var CloseItem = new MenuItem
            {
                Header = "Выход"
            };

            CloseItem.PreviewMouseDown += CloseItem_PreviewMouseDown;
            menu.Items.Add(CloseItem);

            tbi.ContextMenu = menu;
        }