Exemple #1
0
        /// <summary>
        /// Updates all Content Items for a specific Library Mod
        /// </summary>
        /// <param name="MUVM"></param>
        /// <param name="li"></param>
        /// <param name="ScannedResults"></param>
        public static void UpdateContents(MainUIViewModel MUVM, LibraryItem li, ObservableCollection <ContentItem> ScannedResults = null)
        {
            string ModFolder = String.Format(@"{0}\Library\Mods\{1}\", Properties.Settings.Default.DefaultDir, li.Guid);

            //Getting all scanned Content Items
            ObservableCollection <ContentItem> ScanResults;

            if (ScannedResults == null)
            {
                ScanResults = ScanMod(ModFolder, MUVM.QuasarModTypes, MUVM.Games[0], li);
            }
            else
            {
                ScanResults = ScannedResults;
            }

            //Getting all stored Content Items with the same Library Item
            List <ContentItem> ItemsToUpdate = MUVM.ContentItems.Where(c => c.LibraryItemGuid == li.Guid).ToList();
            List <ContentItem> UpdatedItems  = new List <ContentItem>();

            foreach (ContentItem ScannedItem in ScanResults)
            {
                List <ContentItem> MatchingContentItems = MUVM.ContentItems.Where(ci => ci.LibraryItemGuid == ScannedItem.LibraryItemGuid && ci.GameElementID == ScannedItem.GameElementID && ci.SlotNumber == ScannedItem.SlotNumber && ci.QuasarModTypeID == ScannedItem.QuasarModTypeID).ToList();
                if (MatchingContentItems.Count < 1)
                {
                    //If there are no Content Items matching the Scanned Item
                    ScannedItem.Guid = Guid.NewGuid();
                    MUVM.ContentItems.Add(ScannedItem);
                }
                else
                {
                    bool Matched = false;
                    foreach (ContentItem ci in MatchingContentItems)
                    {
                        if (ci.ScanFiles[0].OriginPath.Replace('/', '\\') == ScannedItem.ScanFiles[0].OriginPath.Replace('/', '\\'))
                        {
                            int i = MUVM.ContentItems.IndexOf(ci);
                            MUVM.ContentItems[i].Name      = ScannedItem.Name;
                            MUVM.ContentItems[i].ScanFiles = ScannedItem.ScanFiles;
                            Matched = true;
                            UpdatedItems.Add(ci);
                        }
                    }
                    if (!Matched)
                    {
                        //If there are no Content Items matching the Scanned Item
                        ScannedItem.Guid = Guid.NewGuid();
                        MUVM.ContentItems.Add(ScannedItem);
                    }
                }
            }

            foreach (ContentItem ci in ItemsToUpdate)
            {
                if (!UpdatedItems.Contains(ci))
                {
                    MUVM.ContentItems.Remove(ci);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Launches the update process from 1.5 to 2.1
        /// </summary>
        /// <param name="MUVM"></param>
        public static void LaunchUltraCleaning(MainUIViewModel MUVM)
        {
            try
            {
                MUVM.QuasarLogger.Info("Starting Ultra Clean");
                MUVM.QuasarLogger.Info("Creating base Folders");
                CreateBaseFolders();
                MUVM.QuasarLogger.Info("Creating base Workspace");
                CreateBaseWorkspace();
                MUVM.QuasarLogger.Info("Moving Old Library");
                GetMoveOldLibrary(MUVM.QuasarLogger);


                MUVM.LoadData();
                Scannerino.ScanAllMods(MUVM);
                JSonHelper.SaveContentItems(MUVM.ContentItems);

                LastCleanup();

                EventSystem.Publish <ModalEvent>(new ModalEvent()
                {
                    Action    = "LoadOK",
                    EventName = "UltraCleaning"
                });
            }
            catch (Exception e)
            {
                MUVM.QuasarLogger.Error("Error While processing old files");
                MUVM.QuasarLogger.Error(e.Message);
                MUVM.QuasarLogger.Error(e.StackTrace);
            }
        }
Exemple #3
0
 /// <summary>
 /// Does a full scan for every mod in the Library
 /// </summary>
 /// <param name="MUVM"></param>
 public static void ScanAllMods(MainUIViewModel MUVM)
 {
     foreach (LibraryItem li in MUVM.Library)
     {
         UpdateContents(MUVM, li);
     }
 }
        public void InitializeViewTest()
        {
            MainUIViewModel vm = new MainUIViewModel();

            vm.InitializeView();
            Assert.AreEqual(2, vm.WeatherSource.Count);
        }
        public void DownloadCommandTest_Yahoo()
        {
            MainUIViewModel vm = new MainUIViewModel();

            vm.InitializeView();
            Assert.AreEqual(2, vm.WeatherSource.Count);
            vm.DownloadCityWeatherDetailsCommand.Execute("Yahoo");
            Assert.AreSame(typeof(YahooWeatherViewModel), vm.CurrentpageViewModel.GetType());
        }
Exemple #6
0
        /// <summary>
        /// Basic constructor
        /// </summary>
        public MainWindow()
        {
            MUVM = new MainUIViewModel();



            //Aww, here we go again
            InitializeComponent();

            QuasarGrid.DataContext = MUVM;

            EventSystem.Subscribe <ModalEvent>(ProcessIncomingModalEvent);
        }
Exemple #7
0
        public static void Rescan(MainUIViewModel MUVM)
        {
            MUVM.ActiveWorkspace.Associations = new ObservableCollection <Association>();
            MUVM.ContentItems = new ObservableCollection <ContentItem>();

            Scannerino.ScanAllMods(MUVM);
            JSonHelper.SaveContentItems(MUVM.ContentItems);

            foreach (LibraryItem li in MUVM.Library)
            {
                List <ContentItem> contentItems = MUVM.ContentItems.Where(ci => ci.LibraryItemGuid == li.Guid).ToList();
                MUVM.ActiveWorkspace = Slotter.AutomaticSlot(contentItems, MUVM.ActiveWorkspace, MUVM.QuasarModTypes);
            }

            JSonHelper.SaveWorkspaces(MUVM.Workspaces);

            EventSystem.Publish <ModalEvent>(new ModalEvent()
            {
                Action    = "LoadOK",
                EventName = "UltraScanning"
            });
        }
 public MainUI()
 {
     InitializeComponent();
     viewmodel   = new MainUIViewModel();
     DataContext = viewmodel;
 }