private void ReSortNotes(GameHiveNote note) { List <GameHiveNote> lnotes = db.GameHiveNotes.Where(n => n.HiveID == note.HiveID).OrderBy(o => o.SortOrder).ToList(); for (int i = 0; i < lnotes.Count; i++) { lnotes[i].SortOrder = i + 1; } lnotes.ForEach(ln => ln.LastUpdated = DateTime.Now); db.SaveChanges(); }
public HttpResponseMessage PutGameHiveNote(int id, string ParentID, string ObjectType, int SortOrder) //new sort order { GameHiveNote Note = db.GameHiveNotes.Where(le => le.ID == id).Single(); int newRank = SortOrder; int? oldRank = Note.SortOrder; if (newRank > oldRank) { newRank++; } switch (ObjectType) { case "GameHiveNote": List <GameHiveNote> lgameGameHiveNotes = new List <GameHiveNote>(); lgameGameHiveNotes.AddRange(db.GameHiveNotes.Where(le => le.HiveID == ParentID && le.SortOrder < newRank && le.ID != id).OrderBy(ob => ob.SortOrder).ToList()); lgameGameHiveNotes.Add(db.GameHiveNotes.Where(le => le.ID == id).Single()); foreach (GameHiveNote l in db.GameHiveNotes.Where(le => le.HiveID == ParentID).OrderBy(ob => ob.SortOrder)) { if (lgameGameHiveNotes.Where(le => le.ID == l.ID).Count() == 0) { lgameGameHiveNotes.Add(l); } } for (int i = 0; i < lgameGameHiveNotes.Count; i++) { lgameGameHiveNotes[i].SortOrder = i + 1; } lgameGameHiveNotes.ForEach(ln => ln.LastUpdated = DateTime.Now); break; } try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Request.CreateResponse(HttpStatusCode.OK)); }
// DELETE api/Note/5 public HttpResponseMessage DeleteGameHiveNote(int id) { GameHiveNote note = db.GameHiveNotes.Where(nw => nw.ID == id).FirstOrDefault(); if (note == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } db.GameHiveNotes.DeleteObject(note); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Request.CreateResponse(HttpStatusCode.OK, note)); }
//public HttpResponseMessage PutNote(int id, Note note) //{ // if (ModelState.IsValid && id == note.ID) // { // db.Entry(note).State = EntityState.Modified; // try // { // db.SaveChanges(); // } // catch (DbUpdateConcurrencyException) // { // return Request.CreateResponse(HttpStatusCode.NotFound); // } // return Request.CreateResponse(HttpStatusCode.OK); // } // else // { // return Request.CreateResponse(HttpStatusCode.BadRequest); // } //} // POST api/Note public HttpResponseMessage PostGameHiveNote(GameHiveNote note) { if (ModelState.IsValid) { //note.Group = db.Groups.Single(gw => gw.ID == note.GroupID); // note.NoteColor = HttpUtility.UrlDecode(note.NoteColor); note.NoteColor = HttpUtility.UrlDecode(note.NoteColor); note.NoteColor = WebUtility.HtmlDecode(note.NoteColor); note.Note = WebUtility.HtmlDecode(note.NoteColor); note.NoteColor = Utilities.ConvertFromHTML(note.NoteColor); note.LastUpdated = DateTime.Now; //note.GroupReference.Attach(db.Groups.Where(gw => gw.ID == note.GroupID).First()); //note.GroupReference.Load(); //note.Game = db.Games.Where(gw => gw.ID == note.GameID).First(); note.SortOrder = note.SortOrder; // note.SportID = db.Teams.Where(t => t.ID == note.TeamID).SingleOrDefault().SportID; if (note.TeamID != null && note.TeamID > 0) { //note.SportID = db.Teams.Where(t => t.ID == note.TeamID).SingleOrDefault().SportID; // note.LeagueCode = db.Sports.Where(t => t.ID == note.SportID).SingleOrDefault().ShortDisplay; // note.TeamCode = db.Teams.Where(t => t.ID == note.TeamID).SingleOrDefault().Abbreviation; //Task<int> TeamID = Topic(note.TeamCode, note.LeagueCode); //int SDMteamid = Convert.ToInt32(TeamID.Result); //note.TeamID = SDMteamid; } else { note.TeamCode = null; note.LeagueCode = null; } db.GameHiveNotes.AddObject(note); ReSortNotes(note); //note.Note1 = WebUtility.HtmlDecode(note.NoteColor); //db.Refresh(System.Data.Objects.RefreshMode.StoreWins, db.GameHiveNotes); //clean note.Note = Regex.Replace(note.Note, @"[^\u0000-\u02FF]", string.Empty); note.NoteColor = Regex.Replace(note.NoteColor, @"[^\u0000-\u02FF]", string.Empty); note.Note = note.Note.Replace((char)0xA0, ' '); note.NoteColor = note.NoteColor.Replace((char)0xA0, ' '); note.Note = Regex.Replace(note.Note, @"<[^>]*>", string.Empty); note.NoteColor = Regex.Replace(note.NoteColor, @"<[^>]*>", string.Empty); // note.Note = Regex.Replace(note.Note, @"\&.*?;", string.Empty); // note.NoteColor = Regex.Replace(note.NoteColor, @"\&.*?;", string.Empty); note.NoteColor = note.NoteColor;//.ConvertToHTML(note.NoteColor); dynamic resp = new { note.HiveID, note.ClientID, note.Header, note.ID, note.LastUpdated, note.SportID, Note1 = note.Note + (note.UserID != null && note.UserID != 0 ? " last updated by " + db.Users.Where(u => u.UserID == note.UserID).FirstOrDefault().FirstName + " " + db.Users.Where(u => u.UserID == note.UserID).FirstOrDefault().LastName + ", " + note.LastUpdated.ToString() : note.Note), NoteColor = note.NoteColor,//Utilities.ConvertToHTML(note.NoteColor), note.SortOrder, note.TeamID, note.UserID }; var correctedResponse = new { Data = new[] { resp } }; HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, correctedResponse); //HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, note); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = note.ID })); return(response); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
// PUT api/Note/5 public HttpResponseMessage PutGameHiveNote(GameHiveNote note) { if (ModelState.IsValid) { //db.Entry(Note).State = EntityState.Modified; //note.GroupReference.Attach(db.Groups.Where(gw => gw.ID == note.GroupID).First()); //note.GroupReference.Load(); //db.GameHiveNotes.Attach(note); //note.GroupReference.Load(); //Note existingNote = db.GameHiveNotes.Find(note.ID); GameHiveNote existingNote = db.GameHiveNotes.Single(nw => nw.ID == note.ID); //updare sort order if (existingNote.SortOrder != note.SortOrder) { PutGameHiveNote(note.ID, note.HiveID, "GameHiveNote", Convert.ToInt32(note.SortOrder)); //new sort order } //1st remove html tags for plain note, then convert to vz format note.NoteColor = HttpUtility.UrlDecode(note.NoteColor); note.NoteColor = WebUtility.HtmlDecode(note.NoteColor); note.Note = WebUtility.HtmlDecode(note.NoteColor); note.NoteColor = Utilities.ConvertFromHTML(note.NoteColor); existingNote.Header = note.Header; existingNote.NoteColor = note.NoteColor; existingNote.Note = note.Note; if (note.TeamID > 0) { // note.SportID = db.Teams.Where(t => t.ID == note.TeamID).SingleOrDefault().SportID; existingNote.SportID = note.SportID; // existingNote.LeagueCode = db.Sports.Where(t => t.ID == note.SportID).SingleOrDefault().ShortDisplay; existingNote.LeagueCode = note.LeagueCode; existingNote.TeamID = note.TeamID; // existingNote.TeamCode = db.Teams.Where(t => t.ID == note.TeamID).SingleOrDefault().Abbreviation; existingNote.TeamCode = note.TeamCode; } else { existingNote.SportID = null; existingNote.LeagueCode = null; existingNote.TeamID = note.TeamID; existingNote.TeamCode = null; } existingNote.LastUpdated = DateTime.Now; existingNote.SortOrder = note.SortOrder; //db.ApplyCurrentValues("GameHiveNotes",note); //db.ObjectStateManager.ChangeObjectState(note, EntityState.Modified); //clean existingNote.Note = Regex.Replace(existingNote.Note, @"[^\u0000-\u02FF]", string.Empty); existingNote.NoteColor = Regex.Replace(existingNote.NoteColor, @"[^\u0000-\u02FF]", string.Empty); existingNote.Note = existingNote.Note.Replace((char)0xA0, ' '); existingNote.NoteColor = existingNote.NoteColor.Replace((char)0xA0, ' '); //existingNote.NoteColor = Regex.Replace(existingNote.NoteColor, @"<.*?>", string.Empty); existingNote.Note = Regex.Replace(existingNote.Note, @"<[^>]*>", string.Empty); existingNote.NoteColor = Regex.Replace(existingNote.NoteColor, @"<[^>]*>", string.Empty); // existingNote.Note = Regex.Replace(existingNote.Note, @"\&.*?;", string.Empty); // existingNote.NoteColor = Regex.Replace(existingNote.NoteColor, @"\&.*?;", string.Empty); try { db.SaveChanges(); ReSortNotes(note); } catch (DbUpdateConcurrencyException) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }