Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
            }
        }