public ActionResult Create([Bind(Include = "Id,Name,CurrentMode,PlayerNumber,MaxPlayer,CurrentMap,IP,Port,DateCreated,LastUpdate")] Server server) { if (ModelState.IsValid) { db.Servers.Add(server); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(server)); }
public ActionResult CreateNewTag(string title) { Tag newTag = new Tag(title); using (var db = new ServerDb()) { var old = db.Tags.Where(m => m.title == newTag.title) .FirstOrDefault(); // Save Existing if (old != null) { db.Tags.Remove(old); db.Tags.Add(newTag); } // Save New else { db.Tags.Add(newTag); } db.SaveChanges(); } return(PartialView(newTag)); }
public object Post([FromBody] MasterEntity content) { var json = this.Request.Content.ReadAsStringAsync().Result; Console.WriteLine(json); using (var db = new ServerDb()) { // Check if the server already exists in the DB var old = db.Servers.Where(m => m.Id == content.Id) .Include(m => m.environment) .Include(m => m.iis) .FirstOrDefault(); // Save Existing Server if (old != null) { db.Servers.Remove(old); db.Servers.Add(content); db.SaveChanges(); } // Save New Server else { db.Servers.Add(content); try { db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { throw; } } } return(Request.CreateResponse(HttpStatusCode.OK, "OK")); }
/// <summary> /// Use to update a server /// </summary> /// <param name="id">The ID of the server you want to update</param> /// <param name="server">The data you want to update (ID is ignored)</param> /// <returns>Return the updated server if it succeeded / return null if it failed and lastExceptionThrown is updated</returns> public Server UpdateServer(int id, Server server) { Server oldServer; server.Id = id; server.LastUpdate = DateTime.Now; using (var db = new ServerDb()) { lock (mutexDbAccess) { oldServer = db.Servers.Find(id); oldServer.Copy(server); db.Entry(oldServer).State = EntityState.Modified; db.SaveChanges(); } } return(server); #region [ === Old Code : For cache memory (no DB) === ] //var ctx = HttpContext.Current; //Server newServer = null; //if (ctx != null) //{ // try // { // var currentData = ((Server[])ctx.Cache[CacheKey]).ToList(); // // Cannot have a double of IDs because it is handled by the DB (Id is the key) // var serverToUpdate = currentData.FirstOrDefault((s) => s.Id == id); // if (serverToUpdate == default(Server)) // throw new Exception("No server found with this ID : " + id); // else // newServer = updateServer(serverToUpdate, server); // ctx.Cache[CacheKey] = currentData.ToArray(); // return newServer; // } // catch (Exception ex) // { // this.lastExceptionThrown = ex; // Console.WriteLine(ex.ToString()); // return null; // } //} //return null; #endregion }
public bool DeleteServer(int id) { Server server; using (var db = new ServerDb()) { lock (mutexDbAccess) { server = db.Servers.Find(id); server = db.Servers.Remove(server); db.SaveChanges(); } } if (server != null) { return(true); } return(false); #region [ === Old Code : For cache memory (no DB) === ] //var ctx = HttpContext.Current; //if (ctx != null) //{ // try // { // var currentData = ((Server[])ctx.Cache[CacheKey]).ToList(); // var serverToDelete = currentData.FirstOrDefault((s) => s.Id == id); // if (serverToDelete == default(Server)) // return false; // currentData.Remove(serverToDelete); // ctx.Cache[CacheKey] = currentData.ToArray(); // return true; // } // catch (Exception ex) // { // this.lastExceptionThrown = ex; // Console.WriteLine(ex.ToString()); // return false; // } //} //return false; #endregion }
/// <summary> /// Use to create a new server /// </summary> /// <param name="server">The server you want to create</param> /// <returns>Return null if fails and LastExceptionThrown is updated / Return the created server if succeeded</returns> public Server SaveServer(Server server) { Server newServer; server.DateCreated = DateTime.Now; server.LastUpdate = DateTime.Now; using (var db = new ServerDb()) { lock (mutexDbAccess) { newServer = db.Servers.Add(server); db.SaveChanges(); } } return(newServer); #region [ === Old Code : For cache memory (no DB) === ] //var ctx = HttpContext.Current; //if (ctx != null) //{ // try // { // var currentData = ((Server[])ctx.Cache[CacheKey]).ToList(); // server.Id = currentData.Select(s => s.Id).Max(); // currentData.Add(server); // ctx.Cache[CacheKey] = currentData.ToArray(); // return server; // } // catch (Exception ex) // { // this.lastExceptionThrown = ex; // Console.WriteLine(ex.ToString()); // return null; // } //} //return null; #endregion }
void serverChecker_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { using (var db = new ServerDb()) { lock (mutexDbAccess) { DateTime now = DateTime.Now; List <Server> removeList = new List <Server>(); TimeSpan? diff; foreach (Server s in db.Servers) { if (s.LastUpdate == null) { diff = null; } else { diff = now - s.LastUpdate.Value; } Trace.Write("Checing timers", "Now is : " + now.ToString() + " && LastUpdate is : " + s.LastUpdate + " && Diff is : " + diff); if (diff == null || diff.Value.TotalSeconds > SERVER_LIFETIME) { Trace.Write("Remove server cauz of timer", "Now is : " + now.ToString() + " && LastUpdate is : " + s.LastUpdate + " && Diff is : " + diff); removeList.Add(s); } } if (removeList.Count > 0) { foreach (Server s in removeList) { db.Servers.Remove(s); } //db.Servers.RemoveRange(removeList); db.SaveChanges(); } } } }