/// <summary> /// 建立學習圈 - [後臺管理API用] /// </summary> /// <returns></returns> public LearningCircle CreateLearningCircle(string name, string circleKey, string description, string token, DateTime startDate, DateTime endDate, int?orgId, string objective = null, int?section = null) { var db = _uow.DbContext; var checkDBEmpty = db.LearningCircle.FirstOrDefault(t => t.LearningOuterKey == circleKey && t.Name == name); if (checkDBEmpty != null) { return(checkDBEmpty); } var now = DateTime.UtcNow; var tokenService = new TokenService(); var creator = tokenService.GetTokenInfo(token).Result; var entity = new LearningCircle() { Created = TimeData.Create(now), Deleted = TimeData.Create(null), Updated = TimeData.Create(null), CreateUser = creator.MemberId, Description = description, Name = name, Enable = true, Visibility = true, StartDate = startDate.ToUniversalTime(), EndDate = endDate.ToUniversalTime(), LCType = 10, Objective = objective }; if (section.HasValue) { entity.Section = section.Value.ToString(); } if (orgId.HasValue) { entity.OrgId = orgId.Value; } if (circleKey == null || circleKey == string.Empty) { circleKey = string.Format("{0}{1}", now.Ticks.ToString(), "course"); } entity.LearningOuterKey = circleKey.ToLower(); db.LearningCircle.Add(entity); db.SaveChanges(); var memberInviteService = new MemberInviteService(); var memerInviteInfo = memberInviteService.CreateFromCreateLearningCircle(circleKey.ToLower()); return(entity); }
public IHttpActionResult Post(CircleMemberRoleRequest requestData) { var response = new Infrastructure.ViewModel.Base.BaseResponse <string>(); var requestService = new Service.Utility.RequestDataHelper <CircleMemberRoleRequest>(); var checkColumnKey = new string[1] { "token" }; var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKey); response.Success = false; if (checkEmpty == false) { response.Message = "遺漏參數"; response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } //後臺新增 if (requestData.InviteCode == null && requestData.RoleId.HasValue) { var authService = new AuthService(); var checkManageAuth = authService.CheckCourseManageAuth(requestData.Token, requestData.CircleKey.ToLower()); //除了課程管理者可以修改,其他角色都不得修改 if (checkManageAuth == null || checkManageAuth.CircleMemberSetting.AddCircleMember == false) { response.Message = "無法加入"; response.State = Infrastructure.ViewModel.Base.LogState.Error; return(Ok(response)); } var proxyReponse = circleMemberService.InsertMutipleCircleMemberRole(requestData); response.Success = proxyReponse; if (proxyReponse) { response.Message = "新增成功"; return(Ok(response)); } else { response.State = Infrastructure.ViewModel.Base.LogState.Error; response.Message = "新增失敗"; return(Ok(response)); } } else { //邀請碼新增 var inviteService = new MemberInviteService(); var inviteInfo = inviteService.GetDetail(requestData.InviteCode.ToLower()); if (inviteInfo == null) { response.Message = "無法加入"; response.State = Infrastructure.ViewModel.Base.LogState.Error; return(Ok(response)); } var inviteResponse = new Infrastructure.ViewModel.Base.BaseResponse <InviteResponseData>(); var organizationService = new OrganizationService(); var checkCanRegister = organizationService.CheckCanRegister(requestData.OrgCode); if (checkCanRegister == false) { inviteResponse.Message = "不允許加入課程"; inviteResponse.State = Infrastructure.ViewModel.Base.LogState.Error; inviteResponse.Data = new InviteResponseData() { InviteStatus = InviteStatusEnum.EndInvite, IsOrgRegister = false, CircleKey = requestData.CircleKey }; return(Ok(inviteResponse)); } var responseData = circleMemberService.InsertCircleMemberRoleByInvite(requestData); inviteResponse.Success = true; inviteResponse.Data = responseData; inviteResponse.Message = responseData.InviteStatus.ToString(); return(Ok(inviteResponse)); } }