public BanUserFromSubResponse Handle(BanUserFromSub command) { var response = new BanUserFromSubResponse(); try { var user = command.UserId.HasValue ? _membershipService.GetUserById(command.UserId.Value) : _membershipService.GetUserByUserName(command.UserName); if (user == null) { response.Error = "Invalid user."; return(response); } var bannedBy = _membershipService.GetUserById(command.BannedBy); if (bannedBy == null) { response.Error = "Invalid user."; return(response); } var sub = command.SubId.HasValue ? _subService.GetSubById(command.SubId.Value) : _subService.GetSubByName(command.SubName); if (sub == null) { response.Error = "Invalid sub."; return(response); } if (!_permissionDao.CanUserManageSubAccess(bannedBy, sub.Id)) { response.Error = "You are not authorized to ban."; return(response); } _subUserBanService.BanUserFromSub(sub.Id, user.Id, user.UserName, command.DateBanned, command.BannedBy, command.ReasonPrivate, command.ReasonPublic); return(response); } catch (Exception ex) { // TODO: log error response.Error = "An unknown error occured."; return(response); } }
public BanUserFromSubResponse Handle(BanUserFromSub command) { var response = new BanUserFromSubResponse(); try { var user = command.UserId.HasValue ? _membershipService.GetUserById(command.UserId.Value) : _membershipService.GetUserByUserName(command.Username); if (user == null) { response.Error = "Invalid user."; return(response); } var bannedBy = _membershipService.GetUserById(command.BannedBy); if (bannedBy == null) { response.Error = "Invalid user."; return(response); } var sub = command.SubId.HasValue ? _subService.GetSubById(command.SubId.Value) : _subService.GetSubByName(command.SubName); if (sub == null) { response.Error = "Invalid sub."; return(response); } if (!_permissionService.CanUserManageSubAccess(bannedBy, sub.Id)) { response.Error = "You are not authorized to ban."; return(response); } _subUserBanService.BanUserFromSub(sub.Id, user.Id, command.DateBanned, command.BannedBy, command.Reason, command.Expires); } catch (Exception ex) { // todo: log response.Error = ex.Message; } return(response); }