public async Task <ActionResult> CreateUserInMeeting(UserInMeetingModel model, int meetingId) { if (!_permissionService.Authorize(PermissionProvider.ManageUser)) { return(AccessDeniedView()); } if (model.User == null || model.User.Id < 1) { return(Content("User is invalid!")); } if (ModelState.IsValid) { var meeting = await _meetingService.GetByIdAsync(model.MeetingId); var existUser = meeting.UserInMeetings.FirstOrDefault(u => u.UserId == model.User.Id); if (existUser != null) { return(Content(model.User.Name + " has Existed!")); } if (!model.IsLeader) { if (model.IsCurrentLeader) { return(Content("Please set leader before set current leader")); } } var userInMeeting = new UserInMeeting() { MeetingId = model.MeetingId, UserId = model.User.Id, IsLeader = model.IsLeader, Order = model.Order }; await _userInMeetingService.InsertAsync(userInMeeting); ////if set user is current leader or chua co ai la leader and this user isleader //if (model.IsCurrentLeader || (meeting.CurrentLeaderId == 0 && userInMeeting.IsLeader)) if (model.IsCurrentLeader) { await _meetingService.UpdateMeetingLeader(meeting.Id, meeting.CurrentLeaderId, model.User.Id); meeting.CurrentLeaderId = model.User.Id; await _meetingService.UpdateAsync(meeting); } return(Json(new { status = "success", })); } // If we got this far, something failed, redisplay form return(Content("Can not Create User in Meeting because model state is invalid")); }
public async Task <ActionResult> UpdateUserInMeeting(UserInMeetingModel model) { if (!_permissionService.Authorize(PermissionProvider.ManageUser)) { return(AccessDeniedView()); } if (model.User == null || model.User.Id < 1) { return(Content("User is invalid!")); } if (ModelState.IsValid) { var meeting = await _meetingService.GetByIdAsync(model.MeetingId); var existUser = meeting.UserInMeetings.FirstOrDefault(u => u.UserId == model.User.Id); //check user has existed and is not current user if (existUser != null && existUser.Id != model.Id) { return(Content(model.User.Name + " has Existed in Meeting")); } if (!model.IsLeader) { if (model.IsCurrentLeader) { return(Content("Please set is leader before set is current leader")); } } //if(!model.IsCurrentLeader) // if(meeting.CurrentLeaderId == model.User.Id) // return Content("This user is current leader, can't set it isn't current leader"); var userInMeeting = await _userInMeetingService.GetByIdAsync(model.Id); if (userInMeeting == null) { throw new ArgumentException("No meeting found with the specified id"); } userInMeeting.UserId = model.User.Id; userInMeeting.IsLeader = model.IsLeader; userInMeeting.Order = model.Order; //if (model.IsCurrentLeader || (meeting.CurrentLeaderId == 0 && userInMeeting.IsLeader)) if (model.IsCurrentLeader) { await _meetingService.UpdateMeetingLeader(meeting.Id, meeting.CurrentLeaderId, model.User.Id); meeting.CurrentLeaderId = model.User.Id; await _meetingService.UpdateAsync(meeting); } else { if (meeting.CurrentLeaderId == model.User.Id) { await _meetingService.UpdateMeetingLeader(meeting.Id, meeting.CurrentLeaderId, 0); meeting.CurrentLeaderId = 0; await _meetingService.UpdateAsync(meeting); } } await _userInMeetingService.UpdateAsync(userInMeeting); return(Json(new { status = "success", })); } return(Content("Can not Edit User in Meeting because model state is invalid")); }