Exemple #1
0
        private void FinderStardewFolder_OnSelected(object sender, EventArgsFolderSelected e)
        {
            if (string.IsNullOrWhiteSpace(e.Folder))
            {
                e.Valid = false;
                e.SuppressValidationError = true;
            }

            if (e.Valid)
            {
                try
                {
                    Path.GetFullPath(e.Folder);
                    if (!Path.IsPathRooted(e.Folder))
                    {
                        e.Valid = false;
                        e.ValidationFailureReason = "This is not a valid path";
                    }
                }
                catch (Exception)
                {
                    e.Valid = false;
                    e.ValidationFailureReason = "This is not a valid path";
                }
            }

            if (e.Valid && !Directory.Exists(e.Folder))
            {
                e.Valid = false;
                e.ValidationFailureReason = "Folder does not exist";
            }

            var stardew = Path.Combine(e.Folder, "Stardew Valley.exe");
            var xtile   = Path.Combine(e.Folder, "xTile.dll");
            var content = Path.Combine(e.Folder, "Content");

            if (e.Valid && e.Valid && !File.Exists(stardew))
            {
                e.Valid = false;
                e.ValidationFailureReason = "Could not find StardewValley.exe in folder";
            }

            if (e.Valid && !File.Exists(xtile))
            {
                e.Valid = false;
                e.ValidationFailureReason = "Could not find StardewValley.exe in folder";
            }

            if (e.Valid && !Directory.Exists(content))
            {
                e.Valid = false;
                e.ValidationFailureReason = "Could not find the Content folder in folder";
            }

            this.buttonInstall.IsEnabled = this.finderInstallLocation.IsValid && e.Valid;
        }
        private void FinderInstallLocation_OnSelected(object sender, EventArgsFolderSelected e)
        {
            if (string.IsNullOrWhiteSpace(e.Folder))
            {
                e.Valid = false;
                e.SuppressValidationError = true;
            }

            if (e.Valid)
            {
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    Path.GetFullPath(e.Folder);

                    if (!Path.IsPathRooted(e.Folder))
                    {
                        e.Valid = false;
                        e.ValidationFailureReason = "This is not a valid path";
                    }
                }
                catch (System.Exception)
                {
                    e.Valid = false;
                    e.ValidationFailureReason = "This is not a valid path";
                }
            }

            if (e.Valid && Directory.Exists(e.Folder))
            {
                if (Directory.GetFiles(e.Folder).Length > 0 || Directory.GetDirectories(e.Folder).Length > 0)
                {
                    e.Valid = false;
                    e.ValidationFailureReason = "Install folder must be empty";
                    return;
                }
            }

            if (e.Valid && !string.IsNullOrEmpty(this.finderStardewFolder.Value))
            {
                if (e.Folder.Contains(this.finderStardewFolder.Value))
                {
                    e.Valid = false;
                    e.ValidationFailureReason = "Farmhand cannot be placed in the Stardew Valley folder";
                }
            }

            this.buttonInstall.IsEnabled = e.Valid && this.finderStardewFolder.IsValid;
        }
Exemple #3
0
        private void FinderInstallLocation_OnSelected(object sender, EventArgsFolderSelected e)
        {
            if (string.IsNullOrWhiteSpace(e.Folder))
            {
                e.Valid = false;
                e.SuppressValidationError = true;
            }

            if (e.Valid)
            {
                try
                {
                    Path.GetFullPath(e.Folder);
                    if (!Path.IsPathRooted(e.Folder))
                    {
                        e.Valid = false;
                        e.ValidationFailureReason = "This is not a valid path";
                    }
                }
                catch (Exception)
                {
                    e.Valid = false;
                    e.ValidationFailureReason = "This is not a valid path";
                }
            }

            if (e.Valid && Directory.Exists(e.Folder))
            {
                if (Directory.GetFiles(e.Folder).Length > 0 || Directory.GetDirectories(e.Folder).Length > 0)
                {
                    e.Valid = false;
                    e.ValidationFailureReason = "Install folder must be empty";
                    return;
                }
            }

            this.buttonInstall.IsEnabled = e.Valid && this.finderStardewFolder.IsValid;
        }