| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Web; | |
| using System.IO; | |
| using System.Data.SQLite; | |
| using System.Configuration; | |
| using MovieFinder.Web.Data; | |
| namespace MovieFinder.Web | |
| { | |
| public class DataService | |
| { | |
| private static string InstallFile; | |
| private static string DownloadFile; | |
| private static string ShowAdsFile; | |
| static DataService () | |
| { | |
| try | |
| { | |
| DownloadFile = Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data"), "download.txt"); | |
| InstallFile = Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data"), "install.txt"); | |
| ShowAdsFile = Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data"), "showads.txt"); | |
| } | |
| catch { } | |
| } | |
| public static void LogInstall(string message, string computername, string os, string uid) | |
| { | |
| lock (InstallFile) | |
| { | |
| try | |
| { | |
| if (!String.IsNullOrWhiteSpace(message) || | |
| !String.IsNullOrWhiteSpace(computername) || | |
| !String.IsNullOrWhiteSpace(os)) | |
| { | |
| System.IO.File.AppendAllText(InstallFile, | |
| String.Format("Machine:{0},UID:{1},OS:{2},Details:{3},Date:{4}{5}", | |
| computername, uid, os, message, DateTime.Now.ToString(), Environment.NewLine)); | |
| } | |
| } | |
| catch { } | |
| } | |
| } | |
| public static void LogDownload(string ip) | |
| { | |
| lock (DownloadFile) | |
| { | |
| File.AppendAllText(DownloadFile, String.Format("IP: {0}, Time: {1}{2}", | |
| ip, DateTime.Now.ToString(), | |
| Environment.NewLine)); | |
| } | |
| } | |
| public static void RemoveLink(Guid uid, string link) | |
| { | |
| try | |
| { | |
| using (var db = new MovieFinderEntities()) | |
| { | |
| var r = db.AccessLogs.FirstOrDefault(x => x.UniqueID == uid ); | |
| if (r == null) | |
| return; | |
| var ml = db.MovieLinks.FirstOrDefault(x => x.DowloadUrl == link && x.FailedAttempts <= 3); | |
| if (ml != null) | |
| { | |
| if (MovieTube.Client.Scraper.VideoScraperBase.ValidateUrl(ml.DowloadUrl) == MovieTube.Client.Scraper.ScraperResult.VideoDoesNotExist) | |
| { | |
| ml.FailedAttempts = 5; | |
| ml.LastValidatedBy = uid; | |
| db.SaveChanges(); | |
| } | |
| } | |
| } | |
| } | |
| catch { } | |
| } | |
| public static void LogShowAd(Guid uid, string ipAddress, string countryCode, DateTime clientTime, string pcName, string version) | |
| { | |
| try | |
| { | |
| using(var db = new MovieFinderEntities()) | |
| { | |
| var r = db.AccessLogs.FirstOrDefault(x => x.UniqueID == uid); | |
| if (r != null) | |
| r.IPAddress = ipAddress; | |
| else | |
| { | |
| r = new AccessLog | |
| { | |
| IPAddress = ipAddress, | |
| UniqueID = uid | |
| }; | |
| db.AccessLogs.AddObject(r); | |
| } | |
| r.PCName = pcName; | |
| r.ClientTime = clientTime; | |
| r.Timestamp = DateTime.Now; | |
| r.CountryCode = countryCode; | |
| r.Version = version; | |
| r.AccessCount++; | |
| db.SaveChanges(); | |
| } | |
| } | |
| catch { } | |
| } | |
| public static void LogAd() | |
| { | |
| } | |
| public static int MovieDBVersion | |
| { | |
| get | |
| { | |
| var path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["MovieDBRaw"]); | |
| using (var connection = new SQLiteConnection(String.Format("Data Source={0};Version=3;", path))) | |
| { | |
| connection.Open(); | |
| using (var cmd = new SQLiteCommand(connection)) | |
| { | |
| cmd.CommandText = "SELECT * FROM Settings LIMIT 1"; | |
| using (var reader = cmd.ExecuteReader()) | |
| { | |
| reader.Read(); | |
| return (int)reader["Version"]; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } |