public AddTablesAndColumnsConfirmation(DatabaseSchemaViewModel vm)
        {
            ViewModel      = vm;
            SelectedSprint = vm.SelectedSprint;

            Ok     = new DelegateCommand(() => DoOk());
            Cancel = new DelegateCommand(() => DoCancel());
        }
예제 #2
0
        protected override void ConfigureContainerBuilder(ContainerBuilder builder)
        {
            base.ConfigureContainerBuilder(builder);

            var eventAggregator = new EventAggregator();

            builder.RegisterInstance <IEventAggregator>(eventAggregator).As <IEventAggregator>().SingleInstance();

            var uiSprints         = new UISprints();
            var databaseViewModel = new DatabaseSchemaViewModel(eventAggregator);
            var mainViewModel     = new MainViewModel(eventAggregator, uiSprints, databaseViewModel);
            var pathViewModel     = new PathViewModel(eventAggregator, mainViewModel);

            // just one instance in all application - combos etc..
            builder.RegisterInstance <UISprints>(uiSprints).As <UISprints>().SingleInstance();
            builder.RegisterInstance <DatabaseSchemaViewModel>(databaseViewModel).As <DatabaseSchemaViewModel>().SingleInstance();
            builder.RegisterInstance <MainViewModel>(mainViewModel).As <MainViewModel>().SingleInstance();
            builder.RegisterInstance <PathViewModel>(pathViewModel).As <PathViewModel>().SingleInstance();
        }
예제 #3
0
        public UISprint(IEventAggregator evAgg, ObservableCollection <UISprint> sprints, NodeRoot root, MainViewModel viewModel, DatabaseSchemaViewModel databaseSchemaViewModel)
        {
            this.viewModel = viewModel;
            this.databaseSchemaViewModel = databaseSchemaViewModel;

            EvAgg        = evAgg;
            Root         = root;
            Sprints      = sprints;
            InsertSprint = new DelegateCommand(() => DoInsertSprint());
            RemoveSprint = new DelegateCommand(() => DoRemoveSprint());
            CopySprint   = new DelegateCommand(() => DoCopySprint());

            this.ConfirmationRequest = new InteractionRequest <IConfirmation>();
        }
예제 #4
0
        //public static List<Sprint> LoadSprints()
        //{
        //    var list = new List<Sprint>();
        //    var exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
        //    var dataPath = string.Format("{0}\\Data", exePath);

        //    var data = string.Format("{0}\\sprints.json", dataPath);
        //    var fi = new FileInfo(data);

        //    using (var stream = fi.OpenText())
        //    {
        //        var json = stream.ReadToEnd();
        //        var rr = JsonConvert.DeserializeObject<Sprints>(json).List;
        //        list = rr;
        //    }

        //    return list;

        //}

        public static bool Load(ref ObservableCollection <UISprint> sprints, IEventAggregator evAgg, MainViewModel viewModel, DatabaseSchemaViewModel dataViewModel)
        {
            Logger.Logger.Log.Info("Loading sprints...");

            var ret = false;

            //var exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
            //var dataPath = string.Format("{0}\\Data", exePath);

            var data = FoldersHelper.DataPath; // string.Format("{0}\\sprints.json", dataPath);
            var di   = new DirectoryInfo(FoldersHelper.DataFolder);

            if (!di.Exists)
            {
                di.Create();
            }

            var fi = new FileInfo(data);

            try
            {
                using (var stream = fi.OpenText())
                {
                    var json = stream.ReadToEnd();
                    var rr   = JsonConvert.DeserializeObject <Sprints>(json);

                    foreach (var s in rr.List)
                    {
                        var nodeRoot = new NodeRoot(evAgg, viewModel);
                        var sprint   = new UISprint(evAgg, sprints, nodeRoot, viewModel, dataViewModel)
                        {
                            Guid = s.Guid, Number = s.Number, Name = s.Name, Version = s.Version
                        };
                        sprint.DbSchemaTables = DbSchemaHelper.ConvertDbSchemaTables(s.DbSchemaTables);
                        sprints.Add(sprint);

                        var result = new ObservableCollection <NodeExcel>();
                        nodeRoot.Nodes = result;
                        if (s.Excels == null)
                        {
                            continue;
                        }
                        foreach (var r in s.Excels)
                        {
                            var ne = new NodeExcel(evAgg, nodeRoot, viewModel)
                            {
                                Name = r.Name, Description = r.Description
                            };
                            result.Add(ne);
                            ne.Nodes = new ObservableCollection <NodeTab>();
                            if (r.Nodes == null)
                            {
                                continue;
                            }
                            foreach (var t in r.Nodes)
                            {
                                var nt = new NodeTab(evAgg, ne, viewModel)
                                {
                                    Name = t.Name, Description = t.Description
                                };
                                ne.Nodes.Add(nt);
                                nt.Nodes = new ObservableCollection <NodeDbTable>();
                                if (t.Nodes == null)
                                {
                                    continue;
                                }
                                foreach (var table in t.Nodes)
                                {
                                    var ntable = new NodeDbTable(evAgg, nt, viewModel)
                                    {
                                        Name = table.Name, Description = table.Description
                                    };
                                    nt.Nodes.Add(ntable);
                                    ntable.Nodes = new ObservableCollection <NodeDbColumn>();
                                    if (table.Nodes == null)
                                    {
                                        continue;
                                    }
                                    foreach (var c in table.Nodes)
                                    {
                                        var nc = new NodeDbColumn(evAgg, ntable, viewModel)
                                        {
                                            Name = c.Name, Description = c.Description
                                        };
                                        ntable.Nodes.Add(nc);
                                    }
                                }
                            }
                        }
                    }
                }
                ret = true;
                Logger.Logger.Log.Info("Loading sprints -> SUCCESS!");
                return(ret);
            }
            catch (Exception ex)
            {
                Logger.Logger.Log.Error("Error loading sprints...", ex);
                ret = false;

                Logger.Logger.Log.Info("Creating sprints ...");

                try
                {
                    using (var s = fi.CreateText())
                    {
                        var sss = "{ \"List\": [ { \"Number\": 0, \"Name\": \"Sprint 0\", \"Version\": \"0.0.0.0\" } ] }";
                        s.Write(sss);
                    }

                    Logger.Logger.Log.Info("Creating sprints -> SUCCESS!");
                    // again ->
                    return(Load(ref sprints, evAgg, viewModel, dataViewModel));
                }
                catch (Exception ex2)
                {
                    Logger.Logger.Log.Error("Error creating sprints data file...", ex2);
                }

                return(ret);
            }
        }