/// <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); } } }