/// <summary>
        /// Method for Calling the Azure Endpoint.
        /// </summary>
        /// <param name="request">Request that is passed by Tenant.</param>
        /// <returns>Returns the EmailDataList to Calling method.</returns>
        internal AzureTBNService.EmailDataList CallGetEmailDetails(AzureTBNService.RequestForReturnEmailList request, out Guid requestID)
        {
            int exceptionCount = 0;

            AzureTBNService.EmailDataList azure_EmailDataList       = null;
            AzureTBNService.TriggerRequestNotificationClient client = null;
            for (int retryCount = 0; retryCount < retryAttempts; retryCount++)
            {
                try
                {
                    using (client = new AzureTBNService.TriggerRequestNotificationClient(PrimaryEndpoint))
                    {
                        azure_EmailDataList = client.GetEmailDetailsV2(out requestID, request as AzureTBNService.RequestForReturnEmailList);
                    }
                    return(azure_EmailDataList);
                }
                catch (Exception ex)
                {
                    if (client == null)
                    {
                        throw;
                    }

                    exceptionCount++;

                    // Throw exception if maxm retry attempts are exhausted
                    if (exceptionCount == retryAttempts)
                    {
                        throw new Exception(GenericExceptionMessagePredicate + ex.Message.ToString());
                    }
                }
            }
            requestID = Guid.Empty;
            return(azure_EmailDataList);
        }
        public AzureTBNService.EmailDataList GetEmailDetails(AzureTBNService.RequestForReturnEmailList requestForReturnEmailList, out System.Guid requestID)
        {
            if (requestForReturnEmailList == null)
            {
                throw new ArgumentNullException(ErrorExceptionMessagePredicate + RequestNullException);
            }

            if (((DateTime.Compare(requestForReturnEmailList.Date.Date, DateTime.Today.ToUniversalTime()) > 0) || requestForReturnEmailList.Date.Equals(DateTime.MinValue) && requestForReturnEmailList.FolderId <= 0) || requestForReturnEmailList.TenantAccountID <= 0)
            {
                throw new Exception(ErrorExceptionMessagePredicate + ServiceInvalidRequestException);
            }

            AzureTBNService.EmailDataList emailDataList = new AzureTBNService.EmailDataList();
            emailDataList = CallGetEmailDetails(requestForReturnEmailList, out requestID);

            return(emailDataList);
        }