List <LauncherVersion> ILauncherData.GetLatestVersion(string strCurrentVersion)
        {
            //just return the latest version
            LauncherDataContext dc = new LauncherDataContext();

            //grab the current version
            tLauncherVersion curVersion = (from tv in dc.tLauncherVersions
                                           where tv.VersionNumber == strCurrentVersion
                                           select tv).Single();

            var theLatestsVersion = from tv in dc.tLauncherVersions
                                    where tv.DateCreated > curVersion.DateCreated
                                    orderby tv.DateCreated descending
                                    select new LauncherVersion
            {
                DateCreated   = tv.DateCreated,
                PatchNotes    = tv.PatchNotes,
                VersionId     = tv.VersionId,
                VersionNumber = tv.VersionNumber,
                Location      = "/launcher/" + tv.VersionNumber + "/swganhlauncher.msi"
            };

            List <LauncherVersion> lstLatestVersions = theLatestsVersion.ToList();

            if (lstLatestVersions.Count > 0)
            {
                //update the file size on the first one
                FileStream inFile = new FileStream(HostingEnvironment.MapPath("~" + lstLatestVersions[0].Location), FileMode.Open);
                lstLatestVersions[0].FileSize = inFile.Length;
                inFile.Close();
            }

            return(lstLatestVersions);
        }
        LatestFile ILauncherData.GetLatestExecutable()
        {
            LauncherDataContext dc = new LauncherDataContext();
            tLauncherVersion    theLatestsVersion = (from tv in dc.tLauncherVersions
                                                     orderby tv.DateCreated descending
                                                     select tv).First();

            FileStream inFile = new FileStream(HostingEnvironment.MapPath("~/" + theLatestsVersion.DownloadPath), FileMode.Open);

            byte[] arFileFiles = new byte[inFile.Length];
            inFile.Read(arFileFiles, 0, (int)inFile.Length);
            inFile.Close();

            LatestFile myLatestFile = new LatestFile
            {
                FileName  = Path.GetFileName(theLatestsVersion.DownloadPath),
                FileBytes = arFileFiles
            };

            return(myLatestFile);
        }