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.Threading;
using System.Net;
using System.IO;
using System.Reflection;
using System.Diagnostics;
namespace MovieTube.Downloader
{
public partial class MainForm : Form
{
private Thread thread;
private static string Folder = @"_MovieTube\MovieTube.Installer.exe";
private static string SetupPath = @"_MovieTube\MovieTube.Setup.msi";
private static string VersionUrl = "http://www.filmkhoj.com/api/appversion";
private static string DownloadUrl = "http://www.filmkhoj.com/Home/Download2";
private WebClient client = new WebClient();
private int progress;
public MainForm()
{
InitializeComponent();
}
private void timer_Tick(object sender, EventArgs e)
{
this.timer.Stop();
this.thread = new Thread(DownloadAndLaunch);
thread.Start();
}
private string FilePath
{
get
{
return Path.Combine(Application.StartupPath, Folder);
}
}
private string DirectoryPath
{
get
{
return Path.GetDirectoryName(FilePath);
}
}
private void DownloadAndLaunch()
{
try
{
var path = FilePath;
//string v;
//Version verion = null;
//Version dVersion = null;
//if (GetResource(VersionUrl, out v))
// verion = new Version(v);
//if (File.Exists(path))
//{
// try
// {
// dVersion = AssemblyName.GetAssemblyName(Path.Combine(Application.StartupPath,)).Version;
// }
// catch { }
//}
//if (dVersion == null || dVersion < verion)
{
var dir = DirectoryPath;
if (Directory.Exists(dir))
Directory.Delete(dir, true);
Directory.CreateDirectory(dir);
Download(DownloadUrl, path);
}
//else
//{
// this.progressBar1.Value = 100;
// LaunchInstaller();
//}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Downloader");
}
}
private void Download(string url, string filePath)
{
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileAsync(new Uri(url), filePath);
}
void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
if (File.Exists(FilePath))
{
LaunchInstaller();
}
else
{
MessageBox.Show(e.Error.Message, "Downloader");
}
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
this.progress = e.ProgressPercentage;
}
private bool GetResource(string url, out string result)
{
result = null;
try
{
using (var client = new WebClient())
{
result = client.DownloadString(url);
}
}
catch { return false; }
return true;
}
private void timerProgress_Tick(object sender, EventArgs e)
{
this.progressBar1.Value = this.progress;
}
private void LaunchInstaller()
{
var pi = new ProcessStartInfo()
{
WorkingDirectory = DirectoryPath,
FileName = FilePath
};
Process.Start(pi);
Application.Exit();
}
}
}