/// <summary>
        /// create new assignment (assessment with type Other)
        /// </summary>
        /// <param name="studentId"></param>
        /// <param name="assessmentTitle"></param>
        /// <param name="assessmentId"></param>
        /// <param name="dueDate"></param>
        /// <param name="token"></param>
        public static void CreateAssignmentNewsItem(string studentId, string assessmentTitle, string assessmentId, string dueDate, string token)
        {
            try
            {
                var custom = Student.Utility.GetStudentCustom(studentId);
                var customObject = JsonConvert.DeserializeObject<News>(custom);
                var newNews = new NewsItem
                {
                    title = "New assignment " + assessmentTitle + "! Due on " + dueDate,
                    type = "ASSIGNMENT",
                    createdDate = DateTime.Now,
                    relatedObjectId = assessmentId,
                };

                customObject.news.Add(newNews);

                Student.Utility.PostStudentCustom(studentId, JsonConvert.SerializeObject(customObject), token);
            }
            catch (Exception ex)
            {
                var is404 = ex.Message.Contains("(404)"); //404 means there's no data in custom yet. Maybe SLC can provide a better response?
                if (is404)
                {
                    var customObject = new News(); //create new custom object
                    customObject.news = new List<NewsItem>();
                    var newNews = new NewsItem
                    {
                        title = "New assignment " + assessmentTitle + "! Due on " + dueDate,
                        type = "ASSIGNMENT",
                        createdDate = DateTime.Now,
                        relatedObjectId = assessmentId,
                    };

                    customObject.news.Add(newNews);

                    Student.Utility.PostStudentCustom(studentId, JsonConvert.SerializeObject(customObject), token);
                }
            }
        }
        public static bool UpdateStudentAssessmentAssociation(string studentAssessmentId, string studentId, string assessmentId, string score, string administrationDate, string assessmentName, string maxScore)
        {
            if (HttpContext.Current.Session["access_token"] != null)
            {
                try
                {
                    var token = HttpContext.Current.Session["access_token"].ToString();
                    Assessment.Utility.UpdateStudentAssessmentAssociation(studentAssessmentId, studentId, assessmentId, administrationDate, score, token);

                    //create a note
                    try
                    {
                        var custom = Student.Utility.GetStudentCustom(studentId);
                        var customObject = JsonConvert.DeserializeObject<News>(custom);
                        var newNews = new NewsItem
                        {
                            title = "New score for " + assessmentName + "!",
                            type = "ASSESSMENT",
                            createdDate = DateTime.Now,
                            relatedObjectId = assessmentId,
                            scoreResult = score + '/' + maxScore
                        };

                        customObject.news.Add(newNews);

                        Student.Utility.PostStudentCustom(studentId, JsonConvert.SerializeObject(customObject), token);
                    }
                    catch(Exception ex){
                        var is404 = ex.Message.Contains("(404)"); //404 means there's no data in custom yet. Maybe SLC can provide a better response?
                        if (is404)
                        {
                            var customObject = new News(); //create new custom object
                            customObject.news = new List<NewsItem>();
                            var newNews = new NewsItem
                            {
                                title = "New score for " + assessmentName + "!",
                                type = "ASSESSMENT",
                                createdDate = DateTime.Now,
                                relatedObjectId = assessmentId,
                                scoreResult = score + '/' + maxScore
                            };

                            customObject.news.Add(newNews);

                            Student.Utility.PostStudentCustom(studentId, JsonConvert.SerializeObject(customObject), token);
                        }
                    }

                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }
            return false;
        }
        public static void CreateNoteNewsItem(string studentId, string note, string noteDescription, string token)
        {
            try
            {
                var custom = Student.Utility.GetStudentCustom(studentId);
                var customObject = JsonConvert.DeserializeObject<News>(custom);
                var newNews = new NewsItem
                {
                    title = note,
                    description = noteDescription,
                    type = "NOTE",
                    createdDate = DateTime.Now
                };

                customObject.news.Add(newNews);

                Student.Utility.PostStudentCustom(studentId, JsonConvert.SerializeObject(customObject), token);
            }
            catch (Exception ex)
            {
                var is404 = ex.Message.Contains("(404)"); //404 means there's no data in custom yet. Maybe SLC can provide a better response?
                if (is404)
                {
                    var customObject = new News(); //create new custom object
                    customObject.news = new List<NewsItem>();
                    var newNews = new NewsItem
                    {
                        title = note,
                        description = noteDescription,
                        type = "NOTE",
                        createdDate = DateTime.Now
                    };

                    customObject.news.Add(newNews);

                    Student.Utility.PostStudentCustom(studentId, JsonConvert.SerializeObject(customObject), token);
                }
            }
        }