public Task<GrantModershipResponse> GrantModership(GrantModershipRequest request) { return ConnectionManager.SendRequestAndWaitResponse<GrantModershipResponse>(request); }
public GrantModershipResponse GrantModership(ISession session, GrantModershipRequest request) { var response = request.CreateResponse<GrantModershipResponse>(); if (session.User.Role != UserRole.Admin) { //access denied return response; } User targetUser = null; using (var uow = UnitOfWorkFactory.Create()) { targetUser = uow.UsersRepository.FirstMatching(UserSpecification.Id(request.TargetUserId)); if (targetUser == null) { //User not found return response; } targetUser.RemoveModeratorship(); uow.Commit(); } response.Success = true; _sessionManager.SendToEachChatSessions(new ModershipGrantedInfo { ActorName = session.User.Name, TargetName = targetUser.Name, TargetId = targetUser.Id, }); //success return response; }