niobures's picture
VideoSearch
e26fba6 verified
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
using System.Diagnostics;
namespace MovieFinder.Client
{
public partial class MainForm : Form
{
#region Fields
private Thread downloaderThread;
private UpdaterService updaterService = new UpdaterService();
#endregion
#region Constructor
public MainForm()
{
InitializeComponent();
}
#endregion
#region Methods
private void removeImagesToolStripMenuItem_Click(object sender, EventArgs e)
{
if (Directory.Exists(Movie.ImgDirectory))
{
try
{
foreach (var file in Directory.GetFiles(Movie.ImgDirectory))
File.Delete(file);
}
catch { }
}
}
private void toolStripMenuItemOpen_Click(object sender, EventArgs e)
{
ShowApp();
}
private void toolStripMenuItemLaunch_Click(object sender, EventArgs e)
{
Process.Start(UrlConstants.WebsiteUrl);
}
private void toolStripMenuItemMovieCheck_Click(object sender, EventArgs e)
{
CheckMovieDBUpdate(true);
}
private void toolStripMenuItemExit_Click(object sender, EventArgs e)
{
this.FormClosing -= new FormClosingEventHandler(MainForm_FormClosing);
Application.Exit();
}
private void MainForm_Resize(object sender, EventArgs e)
{
if (FormWindowState.Minimized == this.WindowState)
{
this.Hide();
}
}
private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
ShowApp();
}
private void ShowApp()
{
this.Show();
this.WindowState = FormWindowState.Maximized;
this.BringToFront();
}
#endregion
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
this.Hide();
e.Cancel = true;
}
private void aboutMovieFinderToolStripMenuItem_Click(object sender, EventArgs e)
{
new AboutBox().ShowDialog();
}
private void MainForm_Load(object sender, EventArgs e)
{
this.movieListWidget.LoadData(false);
UpdateStatusBar();
timerDB_Tick(null, null);
}
private void DownloadWorker()
{
CheckMovieDBUpdate(false);
if (updaterService.DownloadAppUpdate())
ReloadApp();
downloaderThread = null;
}
private void timerDB_Tick(object sender, EventArgs e)
{
if (downloaderThread == null)
{
downloaderThread = new Thread(DownloadWorker);
downloaderThread.IsBackground = true;
downloaderThread.Start();
}
}
private void ReloadDB()
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
this.movieListWidget.LoadData(true);
UpdateStatusBar();
});
}
else
{
this.movieListWidget.LoadData(true);
UpdateStatusBar();
}
}
private void ReloadApp()
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
this.timerDB.Enabled = false;
MessageBox.Show("A new version of the application is downloaded. The application will be closed while installing", "Movie Finder");
new UpdaterService().ExecuteUpdater();
BusinessCardRenderer.StopThread();
Environment.Exit(1);
});
}
else
{
MessageBox.Show("A new version of the application is downloaded. The application will be closed while installing", "Movie Finder");
new UpdaterService().ExecuteUpdater();
BusinessCardRenderer.StopThread();
Environment.Exit(1);
}
}
private void checkForNewNewMoviesToolStripMenuItem_Click(object sender, EventArgs e)
{
CheckMovieDBUpdate(true);
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Hide();
}
private void onlineHelpToolStripMenuItem_Click(object sender, EventArgs e)
{
Process.Start(UrlConstants.WebsiteUrl);
}
private void UpdateStatusBar(string message = "")
{
if (String.IsNullOrEmpty(message))
this.toolStripStatusLabel1.Text = "Total Movies: " + this.movieListWidget.Movies.Count;
else
this.toolStripStatusLabel1.Text = message;
}
private void CheckMovieDBUpdate(bool showMsg)
{
if (updaterService.DownloadMovieDatabase())
ReloadDB();
else if(showMsg)
MessageBox.Show("No new movies found", "Movie Finder");
}
private void suggestionBugReportingToolStripMenuItem_Click(object sender, EventArgs e)
{
new SuggestionForm().ShowDialog();
}
}
}