This repository has been archived on 2025-05-24. You can view files and clone it, but cannot push or open issues or pull requests.
Files
RomVault/ROMVault2/frmSplashScreen.cs
2014-09-23 12:06:15 -07:00

160 lines
5.1 KiB
C#

/******************************************************
* ROMVault2 is written by Gordon J. *
* Contact gordon@romvault.com *
* Copyright 2014 *
******************************************************/
using System;
using System.ComponentModel;
using System.ServiceModel;
using System.Threading;
using System.Windows.Forms;
using ROMVault2.Properties;
using ROMVault2.RVRef;
using ROMVault2.RvDB;
namespace ROMVault2
{
public partial class FrmSplashScreen : Form
{
private double _opacityIncrement = 0.05;
public FrmSplashScreen()
{
InitializeComponent();
lblVersion.Text = @"Version " + Program.Version + @"." + Program.SubVersion + Resources.FixFiles_FixZip_Colon + Application.StartupPath;
Opacity = 0;
timer1.Interval = 50;
label1.Text = @"Registered to : " + Settings.Username + @" Contact Email (" + Settings.EMail + @")";
bgWork.DoWork += StartUpCode;
bgWork.ProgressChanged += BgwProgressChanged;
bgWork.RunWorkerCompleted += BgwRunWorkerCompleted;
}
private void FrmSplashScreenShown(object sender, EventArgs e)
{
bgWork.RunWorkerAsync(SynchronizationContext.Current);
timer1.Start();
}
private void StartUpCode(object sender, DoWorkEventArgs e)
{
BasicHttpBinding b = new BasicHttpBinding { SendTimeout = new TimeSpan(0, 0, 20), ReceiveTimeout = new TimeSpan(0, 0, 20) };
EndpointAddress ep = new EndpointAddress(@"http://services.romvault.com/Service1.svc");
Service1Client s = new Service1Client(b, ep);
if (string.IsNullOrEmpty(Settings.Username) || string.IsNullOrEmpty(Settings.EMail))
{
FrmRegistration freg = new FrmRegistration();
freg.ShowDialog();
freg.Dispose();
}
bool isNetworkAvailable = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
string r = "OK";
try
{
if (isNetworkAvailable)
r = s.SendUser1(Settings.Username, Settings.EMail, Program.Version, Program.SubVersion);
}
catch (Exception)
{
r = "OK";
}
if (r != "OK")
{
Program.ErrorMessage=Resources.Program_Main_You_are_not_Authorised_to_use_this_program;
return;
}
// normal check ends
string thisV = Program.Version + "." + Program.SubVersion.ToString("0000");
string v = thisV;
try
{
if (isNetworkAvailable)
v = s.GetLatestVersion1(Program.Version, Program.SubVersion);
}
catch (Exception)
{
v = thisV;
}
if (String.Compare(v, thisV, StringComparison.Ordinal) > 0)
{
Program.URL = s.GetUpdateLink1(Program.Version, Program.SubVersion);
Program.ErrorMessage=Resources.Program_Main_There_is_a_new_release_download_now_from + Program.URL;
return;
}
s.Close();
RepairStatus.InitStatusCheck();
Settings.SetDefaults();
DB.Read(sender,e);
}
private void BgwProgressChanged(object sender, ProgressChangedEventArgs e)
{
if (e.UserState == null)
{
if (e.ProgressPercentage >= progressBar.Minimum && e.ProgressPercentage <= progressBar.Maximum)
progressBar.Value = e.ProgressPercentage;
return;
}
bgwSetRange bgwSr = e.UserState as bgwSetRange;
if (bgwSr != null)
{
progressBar.Minimum = 0;
progressBar.Maximum = bgwSr.MaxVal;
progressBar.Value = 0;
return;
}
bgwText bgwT = e.UserState as bgwText;
if (bgwT != null)
{
lblStatus.Text = bgwT.Text;
}
}
private void BgwRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
_opacityIncrement = -0.1;
timer1.Start();
}
private void Timer1Tick(object sender, EventArgs e)
{
if (_opacityIncrement > 0)
{
if (Opacity < 1)
Opacity += _opacityIncrement;
else
timer1.Stop();
}
else
{
if (Opacity > 0)
Opacity += _opacityIncrement;
else
{
timer1.Stop();
Close();
}
}
}
}
}