//-------------------------------------------------------------------------------------------------//
        private ClientSubmissionReport ConvertType(Proxy.ClientSubmissionReport proxyClientSubmissionReport)
        {
            ClientSubmissionReport clientSubmissionReport = null;

            if (proxyClientSubmissionReport != null)
            {
                clientSubmissionReport = new ClientSubmissionReport();
                clientSubmissionReport.ExperimentId = proxyClientSubmissionReport.experimentID;
                clientSubmissionReport.MinTimeToLive = proxyClientSubmissionReport.minTimeToLive;
                clientSubmissionReport.ValidationReport = this.ConvertType(proxyClientSubmissionReport.vReport);
                clientSubmissionReport.WaitEstimate = this.ConvertType(proxyClientSubmissionReport.wait);
            }

            return clientSubmissionReport;
        }
        public ClientSubmissionReport Submit(string labServerID, string experimentSpecification, int priorityHint, bool emailNotification)
        {
            const String methodName = "Submit";
            Logfile.WriteCalled(logLevel, STR_ClassName, methodName);

            ClientSubmissionReport clientSubmissionReport = null;

            try
            {
                this.Authenticate(sbHeader);

                /*
                 * Add the LabServer Id mapping to the database and get the experiment Id
                 */
                ExperimentInfo experimentInfo = new ExperimentInfo(labServerID);
                int experimentId = experimentsDB.Add(experimentInfo);

                /*
                 * Pass to LabServer for processing
                 */
                LabServerAPI labServerAPI = this.GetLabServerAPI(labServerID);
                SubmissionReport submissionReport = labServerAPI.Submit(experimentId, experimentSpecification, STR_UserGroup, priorityHint);

                /*
                 * Convert to return type
                 */
                clientSubmissionReport = new ClientSubmissionReport();
                clientSubmissionReport.ExperimentId = submissionReport.ExperimentId;
                clientSubmissionReport.MinTimeToLive = submissionReport.MinTimeToLive;
                clientSubmissionReport.ValidationReport = submissionReport.ValidationReport;
                clientSubmissionReport.WaitEstimate = submissionReport.WaitEstimate;
            }
            catch (ProtocolException ex)
            {
                throw new SoapException(ex.Message, SoapException.ClientFaultCode);
            }
            catch (Exception ex)
            {
                Logfile.WriteError(ex.Message);
            }

            Logfile.WriteCompleted(logLevel, STR_ClassName, methodName);

            return clientSubmissionReport;
        }