/// <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); } } }
/// <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); } }
/// <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()); }
/// <summary> /// Basic constructor /// </summary> public MainWindow() { MUVM = new MainUIViewModel(); //Aww, here we go again InitializeComponent(); QuasarGrid.DataContext = MUVM; EventSystem.Subscribe <ModalEvent>(ProcessIncomingModalEvent); }
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; }