Example #1
0
        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();
        }
Example #2
0
        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));
        }
Example #3
0
        // 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));
        }
Example #4
0
        //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));
            }
        }
Example #5
0
        // 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));
            }
        }