ValidateAndEmitRequest method

Future<IEwsHttpWebResponse> ValidateAndEmitRequest()
Validates request parameters, and emits the request to the server. The request.

Implementation

Future<IEwsHttpWebResponse> ValidateAndEmitRequest() async {
  this.Validate();

  // todo("implement validation")
  IEwsHttpWebRequest request = await this.BuildEwsHttpWebRequest();
//
//            if (this.service.SendClientLatencies)
//            {
//                String clientStatisticsToAdd = null;
//
//                lock (clientStatisticsCache)
//                {
//                    if (clientStatisticsCache.Count > 0)
//                    {
//                        clientStatisticsToAdd = clientStatisticsCache[0];
//                        clientStatisticsCache.RemoveAt(0);
//                    }
//                }
//
//                if (!StringUtils.IsNullOrEmpty(clientStatisticsToAdd))
//                {
//                    if (request.Headers[ClientStatisticsRequestHeader] != null)
//                    {
//                        request.Headers[ClientStatisticsRequestHeader] =
//                            request.Headers[ClientStatisticsRequestHeader]
//                            + clientStatisticsToAdd;
//                    }
//                    else
//                    {
//                        request.Headers.Add(
//                            ClientStatisticsRequestHeader,
//                            clientStatisticsToAdd);
//                    }
//                }
//            }
//
//            DateTime startTime = DateTime.UtcNow;
  IEwsHttpWebResponse? response = null;
//
//            try
//            {
  response = await this.GetEwsHttpWebResponse(request);
//            }
//            finally
//            {
//                if (this.service.SendClientLatencies)
//                {
//                    int clientSideLatency = (int)(DateTime.UtcNow - startTime).TotalMilliseconds;
//                    String requestId = "";
//                    String soapAction = this.GetType().Name.Replace("Request", "");
//
//                    if (response != null && response.Headers != null)
//                    {
//                        for (String requestIdHeader in ServiceRequestBase.RequestIdResponseHeaders)
//                        {
//                            String requestIdValue = response.Headers.Get(requestIdHeader);
//                            if (!StringUtils.IsNullOrEmpty(requestIdValue))
//                            {
//                                requestId = requestIdValue;
//                                break;
//                            }
//                        }
//                    }
//
//                    StringBuffer sb = new StringBuffer();
//                    sb.write("MessageId=");
//                    sb.write(requestId);
//                    sb.write(",ResponseTime=");
//                    sb.write(clientSideLatency);
//                    sb.write(",SoapAction=");
//                    sb.write(soapAction);
//                    sb.write(";");
//
//                    lock (clientStatisticsCache)
//                    {
//                        clientStatisticsCache.Add(sb.toString());
//                    }
//                }
//            }

  return response;
}