public bool ObtainUserSubmissionTokens(string mailboxServer, int mailboxServerVersion, Guid mailboxGuid, int recipientCount, ADObjectId throttlingPolicyId, OrganizationId organizationId, string clientInfo) { Unlimited <uint> userSubmissionQuota = MailboxThrottle.GetUserSubmissionQuota(throttlingPolicyId, organizationId); MailboxThrottle.tracer.TraceDebug <Guid, Unlimited <uint>, int>(0L, "Submission quota for mailbox <{0}> is {1}, requesting {2} tokens.", mailboxGuid, userSubmissionQuota, recipientCount); return(this.ObtainTokens(mailboxServer, mailboxServerVersion, mailboxGuid, RequestedAction.UserMailSubmission, recipientCount, userSubmissionQuota, clientInfo)); }
private bool ObtainTokensViaOldApi(string mailboxServer, Guid mailboxGuid, int requestedTokenCount, int quota) { ThrottlingRpcClientImpl rpcClient = this.GetRpcClient(mailboxServer); ThrottlingRpcResult result = rpcClient.ObtainSubmissionTokens(mailboxGuid, requestedTokenCount, quota, 0); return(MailboxThrottle.ThrottlingRpcResultToBoolean(result)); }
private bool ObtainTokensViaNewApi(string mailboxServer, Guid mailboxGuid, RequestedAction requestedAction, int requestedTokenCount, int quota, string clientInfo) { ThrottlingRpcClientImpl rpcClient = this.GetRpcClient(mailboxServer); ThrottlingRpcResult result = rpcClient.ObtainTokens(mailboxGuid, requestedAction, requestedTokenCount, quota, clientInfo); return(MailboxThrottle.ThrottlingRpcResultToBoolean(result)); }
private bool ObtainTokens(string mailboxServer, int mailboxServerVersion, Guid mailboxGuid, RequestedAction requestedAction, int requestedTokenCount, Unlimited <uint> totalTokenCount, string clientInfo) { this.ThrowIfInvalid(mailboxServer, requestedTokenCount, totalTokenCount); int quota; bool flag; if (MailboxThrottle.TryAnswerWithoutRpc(mailboxGuid, requestedTokenCount, totalTokenCount, out quota, out flag)) { return(flag); } if (mailboxServerVersion >= MailboxThrottle.NewRpcVersion) { flag = this.ObtainTokensViaNewApi(mailboxServer, mailboxGuid, requestedAction, requestedTokenCount, quota, clientInfo); this.testabilityLastCallUsedNewRpc = true; } else if (requestedAction == RequestedAction.UserMailSubmission) { flag = this.ObtainTokensViaOldApi(mailboxServer, mailboxGuid, requestedTokenCount, quota); this.testabilityLastCallUsedNewRpc = false; } else { flag = true; this.testabilityLastCallUsedNewRpc = false; } if (!flag) { ThrottlingRpcClientImpl.EventLogger.LogEvent(ThrottlingClientEventLogConstants.Tuple_MailboxThrottled, mailboxGuid.ToString(), new object[] { mailboxGuid, mailboxServer, requestedAction, requestedTokenCount, totalTokenCount, clientInfo, Process.GetCurrentProcess().ProcessName }); } return(flag); }