Files
open-save-cloud-client/OpenSaveCloudClient/AddGameForm.cs
2022-08-08 18:00:11 +02:00

106 lines
3.6 KiB
C#

using OpenSaveCloudClient.Core;
using OpenSaveCloudClient.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace OpenSaveCloudClient
{
public partial class AddGameForm : Form
{
private GameSave result;
private SaveManager saveManager;
public GameSave Result { get { return result; } }
public AddGameForm()
{
InitializeComponent();
saveManager = SaveManager.Instance;
NoCoverLabel.Text = "IGDB is not configured";
}
private void NameBox_TextChanged(object sender, EventArgs e)
{
NameWarningLabel.Visible = saveManager.Saves.Exists(g => g.Name == NameBox.Text);
}
private void pathButton_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new();
if (dialog.ShowDialog() == DialogResult.OK)
{
string path = dialog.SelectedPath;
LocationBox.Text = path;
if (string.IsNullOrWhiteSpace(NameBox.Text))
{
NameBox.Text = path.Split(Path.DirectorySeparatorChar).Last();
}
bool exist = saveManager.Saves.Exists(g => g.FolderPath == path);
if (exist)
{
AddButton.Enabled = false;
PathErrorLabel.Visible = true;
} else
{
AddButton.Enabled = true;
PathErrorLabel.Visible = false;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
LockControls(true);
try
{
if (string.IsNullOrWhiteSpace(LocationBox.Text))
{
MessageBox.Show("File folder cannot be empty", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (!Directory.Exists(LocationBox.Text))
{
MessageBox.Show("This directory does not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (string.IsNullOrWhiteSpace(NameBox.Text))
{
NameBox.Text = LocationBox.Text.Split(Path.DirectorySeparatorChar).Last();
}
if (NameWarningLabel.Visible)
{
if (MessageBox.Show(
"There is already a game with this name in the library. Would you like to add it anyway?",
"This name already exist",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.No) {
return;
}
}
result = new GameSave(NameBox.Text, "", LocationBox.Text, null, 0);
DialogResult = DialogResult.OK;
Close();
} finally
{
LockControls(false);
}
}
private void LockControls(bool value)
{
value = !value;
AddButton.Enabled = value;
NameBox.Enabled = value;
LocationBox.Enabled = value;
pathButton.Enabled = value;
}
}
}