public IHttpActionResult AddObservation(StaffObservation data)
        {
            data.Date = DateTime.Now;

            var currentUserId = User.Identity.GetUserId();

            var userPerson = _context.Staff.SingleOrDefault(x => x.UserId == currentUserId);

            var observer = _context.Staff.SingleOrDefault(x => x.Id == data.ObserverId);

            var observee = _context.Staff.Single(x => x.Id == data.ObserveeId);

            if (observee == null || observer == null)
            {
                return(Content(HttpStatusCode.NotFound, "Staff member not found"));
            }

            if (observee.Id == userPerson.Id)
            {
                return(Content(HttpStatusCode.BadRequest, "Cannot add an observation for yourself"));
            }

            data.ObserverId = observer.Id;

            var observationToAdd = data;

            _context.StaffObservations.Add(observationToAdd);
            _context.SaveChanges();

            return(Ok("Observation added"));
        }
        public IHttpActionResult UpdateObservation(StaffObservation data)
        {
            var observationInDb = _context.StaffObservations.Single(x => x.Id == data.Id);

            var currentUserId = User.Identity.GetUserId();

            var observer = _context.Staff.SingleOrDefault(x => x.Id == data.ObserverId);

            var userStaffProfile = _context.Staff.SingleOrDefault(x => x.UserId == currentUserId);

            if (userStaffProfile == null)
            {
                return(Content(HttpStatusCode.NotFound, "Current user profile not found"));
            }

            if (observationInDb == null)
            {
                return(Content(HttpStatusCode.NotFound, "Observation not found"));
            }

            if (observationInDb.ObserveeId == userStaffProfile.Id)
            {
                return(Content(HttpStatusCode.BadRequest, "Cannot modify an observation for yourself"));
            }

            observationInDb.Outcome    = data.Outcome;
            observationInDb.ObserverId = observer.Id;

            _context.SaveChanges();

            return(Ok("Observation updated"));
        }