public async Task<bool> UpdateCourse(CourseUpdateRequest request) { try { HttpResponseMessage httpResp = apiCom.executePutAPI("Course", JsonConvert.SerializeObject(request)); if (httpResp.IsSuccessStatusCode) { return true; } else { return false; } } catch { return false; } }
public async Task<ActionResult> Create(CreateCourseModel model) { if (ModelState.IsValid) { CourseAddRequest car = new CourseAddRequest() { CourseCode = model.CourseCode, CourseName = model.CourseName, DesiredSkillSets = model.DesiredSkillSets, GroupSize = model.GroupSize, CourseDescription = model.CourseDescription, PreferSimiliarSkillSet = model.PreferSimiliarSkillSet, userList = new List<CourseNewUser>() }; switch(model.GroupType) { case "Study Group": car.GroupType = "Study"; break; case "Project Group (Open Projects)": car.GroupType = "OpenProject"; break; case "Project Group (Closed Projects)": car.GroupType = "ClosedProject"; break; } if(model.Users != null && model.Users.Count > 0) { foreach(var user in model.Users) { car.userList.Add(new CourseNewUser() { emailId = user.emailId, roleCode = user.role.ToString() }); } } bool result = _courseCom.AddCourse(car).Result; if (result) //Course is added, now generate intelligent question set and add questionnaire { QuestionnaireAddRequest qar = new QuestionnaireAddRequest() { IsATemplate = false, QuestionnaireCode = DateTime.UtcNow.ToString("MMddyyHmmss"), Questions = new List<DomainDto.Question>() }; List<string> timeZones = TimeZoneInfo.GetSystemTimeZones().Select(x => x.DisplayName).ToList(); qar.Questions.Add(new DomainDto.Question() { questionText = "In what timezone are you mostly available?", questionType = "MultipleChoice", answerChoices = timeZones }); List<string> timeSlots = new List<string>() { "6:00 AM - 9:00 AM", "9:00 AM - 12:00 PM", "12:00 PM - 3:00 PM", "3:00 PM - 6:00 PM", "6:00 PM - 9:00 PM", "9:00 PM - 12:00 AM", "Anytime", "I am not available" }; qar.Questions.Add(new DomainDto.Question() { questionText = "During weekday, what time are you available for group calls?", questionType = "MultipleChoice", answerChoices = timeSlots }); qar.Questions.Add(new DomainDto.Question() { questionText = "During weekends, what time are you available for group calls?", questionType = "MultipleChoice", answerChoices = timeSlots }); if(model.GenerateIntelligentQuestionnaire) { if(model.DesiredSkillSets != null) { foreach(var skl in model.DesiredSkillSets.Split(',')) { qar.Questions.Add(new DomainDto.Question() { questionText = "What is your expertise in " + skl, questionType = "MultipleChoice", answerChoices = new List<string>() { "Beginner", "Intermediate", "Expert"} }); } } } if(model.Questions != null && model.Questions.Count > 0) { foreach(var q in model.Questions) { qar.Questions.Add(new DomainDto.Question() { questionType = q.QuestionType, questionText = q.QuestionText, answerChoices = q.AnswerChoices.Split(',').ToList() }); } } bool res = _questionnaireCom.AddQuestionnaire(qar).Result; if(res)//Questionnaire is added, update course with questionnaire { CourseUpdateRequest cur = new CourseUpdateRequest() { CourseCode = model.CourseCode, QuestionnaireCode = qar.QuestionnaireCode }; bool resp = _courseCom.UpdateCourse(cur).Result; if(!resp) { ModelState.AddModelError("", "Oops! Course was added, but someting wrong happened while adding questionnaire to course"); return View(model); } } MvcApplication.courses.Add(model.CourseCode, model.CourseName); MvcApplication.courseDescription.Add(model.CourseCode, model.CourseDescription); return RedirectToAction("Teacher", "Course"); } } ModelState.AddModelError("", "Oops! Something wrong happened! Please try again."); return View(model); }
public DomainModelResponse Update(CourseUpdateRequest request) { Course course = _repCourse.Get(filter: f => f.CourseCode == request.CourseCode).FirstOrDefault(); bool updateCourse = false; if(request.CourseName != null) //Course name update { course.CourseName = request.CourseName; updateCourse = true; } if (request.CourseDescription != null) { course.CourseDescription = request.CourseDescription; updateCourse = true; } if(request.QuestionnaireCode != null) { EntityModel.Questionnaire questionnaire = _repQuestionnaire.Get(filter: f => f.QuestionnaireCode == request.QuestionnaireCode).FirstOrDefault(); course.QuestionnaireId = questionnaire.QuestionnaireId; course.Questionnaire = questionnaire; updateCourse = true; } if(updateCourse) _repCourse.Update(course); if(request.CourseNewUsers != null) { List<string> roleCodes = request.CourseNewUsers.Select(x => x.roleCode).ToList(); List<string> emailIds = request.CourseNewUsers.Select(x => x.emailId).ToList(); List<EntityModel.Role> roles = _repRole.Get(filter: f => roleCodes.Contains(f.RoleCode)).ToList(); List<UserProfile> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.EmailId)).ToList(); foreach (var user in request.CourseNewUsers) { CourseUserRole cur = new CourseUserRole() { CourseId = course.CourseId, Course = course, Role = roles.Where(x => x.RoleCode == user.roleCode).FirstOrDefault(), RoleId = roles.Where(x => x.RoleCode == user.roleCode).FirstOrDefault().RoleId, UserId = userProfiles.Where(x => x.EmailId == user.emailId).FirstOrDefault().UserId, UserProfile = userProfiles.Where(x => x.EmailId == user.emailId).FirstOrDefault(), LastChangedTime = DateTime.UtcNow }; _repCourseUserRole.Add(cur); } } if (request.CourseDeleteUsers != null) { List<string> roleCodes = request.CourseDeleteUsers.Select(x => x.roleCode).ToList(); List<string> emailIds = request.CourseDeleteUsers.Select(x => x.emailId).ToList(); List<EntityModel.Role> roles = _repRole.Get(filter: f => roleCodes.Contains(f.RoleCode)).ToList(); List<UserProfile> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.EmailId)).ToList(); foreach (var user in request.CourseDeleteUsers) { int RoleId = roles.Where(x => x.RoleCode == user.roleCode).FirstOrDefault().RoleId; int UserId = userProfiles.Where(x => x.EmailId == user.emailId).FirstOrDefault().UserId; CourseUserRole cur = _repCourseUserRole.Get(filter: f => f.RoleId == RoleId && f.CourseId == course.CourseId && f.UserId == UserId).FirstOrDefault(); _repCourseUserRole.Delete(cur); } } _uow.Commit(); _courseResponse.addResponse("Update", MessageCodes.InfoSavedSuccessfully, "Course : " + request.CourseCode); return _courseResponse; }