private async void AssetModsDataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { AssetMod editedAssetMod = e.Row.Item as AssetMod; string whichColumn = e.Column.Header as string; if (whichColumn == "Name") { if (String.IsNullOrWhiteSpace(editedAssetMod.Name)) { editedAssetMod.Name = await this.AssetModAPI.GetOldNameBeforeIllegalEdit(editedAssetMod.Id); return; } else if (editedAssetMod.Name == await this.AssetModAPI.GetOldNameBeforeIllegalEdit(editedAssetMod.Id)) { return; } await this.AssetModAPI.UpdateAssetModName(editedAssetMod.Id, editedAssetMod.Name); } else if (whichColumn == "Description") { await this.AssetModAPI.UpdateAssetModDescription(editedAssetMod.Id, editedAssetMod.Description); } }
private async void AssetModDGIsEnabled_Click(object sender, EventArgs e) { AssetMod editedAssetMod = ((FrameworkElement)sender).DataContext as AssetMod; // the sender AssetMod object from the datagrid if (editedAssetMod.IsEnabled) { AssetMod duplicateActiveAssetMod = this.AssetMods.SingleOrDefault(assetMod => assetMod.TargetRPF == editedAssetMod.TargetRPF && assetMod.IsEnabled == editedAssetMod.IsEnabled && assetMod.Id != editedAssetMod.Id); if (duplicateActiveAssetMod != null) { ((ToggleSwitch)sender).IsChecked = false; editedAssetMod.IsEnabled = false; MetroWindow metroWindow = (Application.Current.MainWindow as MetroWindow); // needed to access ShowMessageAsync() method in MetroWindow string errorDialogTitle = "Unable to enable this modification package."; string errorDialogMessage = String.Format("The target .rpf of this modification \"{0}\" is in use by another modification ({1}). Please disable that modification to enable this modification.", editedAssetMod.TargetRPF, duplicateActiveAssetMod.Name); await metroWindow.ShowMessageAsync(errorDialogTitle, errorDialogMessage, MessageDialogStyle.Affirmative); } } await this.AssetModAPI.UpdateAssetModIsEnabled(editedAssetMod.Id, editedAssetMod.IsEnabled); }
private async void MoveAssetModDownButton_Click(object sender, RoutedEventArgs e) { if (this.ModIndexRearrangeAllowed) { this.ModIndexRearrangeAllowed = false; AssetMod chosenAssetMod = ((FrameworkElement)sender).DataContext as AssetMod; if (this.AssetMods.ElementAt(this.AssetMods.Count - 1).Id == chosenAssetMod.Id) { this.ModIndexRearrangeAllowed = true; return; } int oldIndex = this.AssetMods.IndexOf(chosenAssetMod); int newIndex = oldIndex + 1; this.AssetMods.Move(oldIndex, newIndex); await Task.Run(() => this.AssetModAPI.UpdateAssetModOrderIndexes(this.AssetMods)); this.ModIndexRearrangeAllowed = true; } }