public ActionResult Create(CreateDatabaseModel model) { if (Databases.GetList().Count(d => d.Owner.ID == UserAccount.ID && d.Name == model.Name) != 0) { ModelState.AddModelError("Name", String.Format("You already have database with name '{0}'.", model.Name)); } if (ModelState.IsValid) { Database database = new Database { Name = model.Name, Revision = 1, OwnerID = UserAccount.ID, PublicIdentifier = Guid.NewGuid().ToString() }; Databases.Add(database); DatabaseRevision revision = new DatabaseRevision { DatabaseID = database.ID, Content = model.Content, Timestamp = DateTime.Now, Revision = 1 }; Revisions.Add(revision); ShowMessage("Database created"); return(RedirectToAction("index")); } return(View(model)); }
public string Update(string identifier) { byte[] buffer = new byte[Request.TotalBytes]; Request.InputStream.Read(buffer, 0, Request.TotalBytes); Database database = Databases.GetList().FirstOrDefault(d => d.PublicIdentifier == identifier); if (database != null) { DatabaseRevision revision = new DatabaseRevision { DatabaseID = database.ID, Content = Encoding.UTF8.GetString(buffer, 0, buffer.Length), Revision = database.Revision + 1, Timestamp = DateTime.Now }; Revisions.Add(revision); database.Revision = revision.Revision; Databases.Update(database); return(revision.Content); } //Request.InputStream return(null); }
public string Get(string identifier) { DatabaseRevision revision = Revisions.GetList().Where(r => r.Database.PublicIdentifier == identifier).OrderByDescending(r => r.Revision).FirstOrDefault(); if (revision != null) { return(revision.Content); } return(null); }
public ActionResult DeleteRevision(int id) { DatabaseRevision revision = Revisions.Get(id); if (revision == null || revision.Database.OwnerID != UserAccount.ID) { ShowMessage("No such revision", HtmlMessageType.Error); return(RedirectToAction("index")); } Revisions.Delete(revision); ShowMessage("Database revision deleted."); return(RedirectToAction("edit", new { id = revision.DatabaseID })); }
public ActionResult EditRevision(int id) { DatabaseRevision revision = Revisions.Get(id); if (revision == null || revision.Database.OwnerID != UserAccount.ID) { ShowMessage("No such revision", HtmlMessageType.Error); return(RedirectToAction("index")); } return(View(new EditRevisionModel { RevisionID = revision.ID, DatabaseID = revision.DatabaseID, Content = revision.Content })); }
public ActionResult EditRevision(EditRevisionModel model) { Database database = Databases.GetList().FirstOrDefault(d => d.ID == model.DatabaseID); if (database == null || database.OwnerID != UserAccount.ID) { ShowMessage("No such database", HtmlMessageType.Error); return(RedirectToAction("index")); } if (ModelState.IsValid) { if (model.RevisionID == 0) { DatabaseRevision revision = new DatabaseRevision { DatabaseID = database.ID, Content = model.Content, Timestamp = DateTime.Now, Revision = database.Revision + 1 }; Revisions.Add(revision); database.Revision = revision.Revision; Databases.Update(database); ShowMessage("Database revision created."); return(RedirectToAction("edit", new { id = revision.DatabaseID })); //TODO: Updating revision count on database seems not working } else { DatabaseRevision revision = Revisions.Get(model.RevisionID); if (revision != null) { revision.Content = model.Content; revision.Timestamp = DateTime.Now; Revisions.Update(revision); ShowMessage("Database revision updated."); return(RedirectToAction("edit", new { id = revision.DatabaseID })); } } } return(View()); }
public DatabaseRows(dynamic obj) { id = obj.id; key = obj.key; value = new DatabaseRevision(obj.value); }