public IHttpActionResult PostPaRequestNotes(PaRequestNote paRequestNote)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var headers = Request.Headers;

            if (headers.Contains("token"))
            {
                var userToken = headers.GetValues("token").First();

                string userName = JwtTokenHelper.GetTokenPayloadValue(userToken, "unique_name");
                paRequestNote.Created        = DateTime.Now;
                paRequestNote.CreatedBy      = userName;
                paRequestNote.LastModified   = DateTime.Now;
                paRequestNote.LastModifiedBy = userName;

                db.PaRequestNotes.Add(paRequestNote);
                db.SaveChanges();
            }

            return(CreatedAtRoute("DefaultApi", new { id = paRequestNote.Id }, paRequestNote));
        }
        public IHttpActionResult GetPaRequestNotes(int id)
        {
            PaRequestNote paRequestNote = db.PaRequestNotes.Find(id);

            if (paRequestNote == null)
            {
                return(NotFound());
            }

            return(Ok(paRequestNote));
        }
        public IHttpActionResult PutPaRequestNote(int id, PaRequestNote paRequestNote)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != paRequestNote.Id)
            {
                return(BadRequest());
            }
            var headers = Request.Headers;

            if (headers.Contains("token"))
            {
                var userToken = headers.GetValues("token").First();

                string userName = JwtTokenHelper.GetTokenPayloadValue(userToken, "unique_name");
                string userRole = JwtTokenHelper.GetTokenPayloadValue(userToken, "role");

                if (userRole != "Administrator") //Need to check that the userName is the same as the created by
                {
                    if (userName != paRequestNote.CreatedBy)
                    {
                        return(BadRequest("Editing user is not an Administrator or did not create the original note."));
                    }
                }
                // paRequest.CompletedTimeStamp = DateTime.Now;
                paRequestNote.LastModified   = DateTime.Now;
                paRequestNote.LastModifiedBy = userName;

                db.Entry(paRequestNote).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PaRequestNoteExists(id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult DeletePaRequestNote(int id)
        {
            PaRequestNote paRequestNote = db.PaRequestNotes.Find(id);

            if (paRequestNote == null)
            {
                return(NotFound());
            }

            db.PaRequestNotes.Remove(paRequestNote);
            db.SaveChanges();

            return(Ok(paRequestNote));
        }