private void matchGroup(EnterpriseCourseMember groupUser, EnterpriseCourseMember profile) { if (groupUser.ContractID != profile.ContractID) { return; } foreach (var course in groupUser.EnterpriseCourseContract.EnterpriseCourseContent.Where(c => c.EnterpriseLessonType.Status == (int)Naming.LessonPriceStatus.團體學員課程)) { RegisterLesson groupLesson = course.RegisterLessonEnterprise .Select(t => t.RegisterLesson) .Where(r => r.UID == groupUser.UID).FirstOrDefault(); if (groupLesson == null) { continue; } RegisterLesson lesson = course.RegisterLessonEnterprise .Select(t => t.RegisterLesson) .Where(r => r.UID == profile.UID).FirstOrDefault(); if (lesson == null) { continue; } if (groupLesson.RegisterGroupID != lesson.RegisterGroupID) { lesson.RegisterGroupID = groupLesson.RegisterGroupID; models.SubmitChanges(); } } }
public ActionResult CommitMember(EnterpriseGroupMemberViewModel viewModel) { if (!viewModel.UID.HasValue) { return(View("~/Views/Shared/JsAlert.cshtml", model: "請選擇學員!!")); } var item = models.GetTable <EnterpriseCourseContract>().Where(c => c.ContractID == viewModel.ContractID).FirstOrDefault(); if (item == null) { return(View("~/Views/Shared/JsAlert.cshtml", model: "合約資料錯誤!!")); } try { var member = item.EnterpriseCourseMember.Where(m => m.UID == viewModel.UID).FirstOrDefault(); if (member == null) { member = new EnterpriseCourseMember { ContractID = item.ContractID, UID = viewModel.UID.Value }; models.GetTable <EnterpriseCourseMember>().InsertOnSubmit(member); models.SubmitChanges(); } checkMemberLesson(member); var groupMember = item.EnterpriseCourseMember.Where(m => m.UID == viewModel.GroupUID).FirstOrDefault(); if (groupMember != null) { if (groupMember.GroupingLesson == null) { groupMember.GroupingLesson = new GroupingLesson { }; } member.GroupingLesson = groupMember.GroupingLesson; models.SubmitChanges(); matchGroup(groupMember, member); } return(Json(new { result = true })); } catch (Exception ex) { Logger.Error(ex); return(Json(new { result = false, message = ex.Message })); } }
private void checkMemberLesson(EnterpriseCourseMember profile) { var priceType = models.GetTable <LessonPriceType>().Where(p => p.Status == (int)Naming.LessonPriceStatus.企業合作方案).FirstOrDefault(); foreach (var course in profile.EnterpriseCourseContract.EnterpriseCourseContent) { RegisterLesson lesson = course.RegisterLessonEnterprise .Select(t => t.RegisterLesson) .Where(r => r.UID == profile.UID).FirstOrDefault(); if (lesson == null) { lesson = new RegisterLesson { RegisterDate = DateTime.Now, //Lessons = course.Lessons.Value, Attended = (int)Naming.LessonStatus.準備上課, GroupingMemberCount = course.EnterpriseLessonType.Status == (int)Naming.LessonPriceStatus.團體學員課程 ? course.EnterpriseCourseContract.GroupingMemberCount : 1, IntuitionCharge = new IntuitionCharge { Payment = "CreditCard", FeeShared = 0, ByInstallments = 1 }, LessonPriceType = priceType, AdvisorID = Settings.Default.DefaultCoach, AttendedLessons = 0, UID = profile.UID }; course.RegisterLessonEnterprise.Add(new RegisterLessonEnterprise { RegisterLesson = lesson }); } lesson.Lessons = course.Lessons.Value; if (!lesson.RegisterGroupID.HasValue) { lesson.GroupingLesson = new GroupingLesson { } } ; models.SubmitChanges(); } }