Пример #1
0
        /// <summary>Creates baseline setting request context.</summary>
        /// <param name="endpoint">The endpoint.</param>
        /// <param name="elementId">Identifier for the element.</param>
        /// <param name="requestId">Identifier for the request.</param>
        /// <param name="sessionId">Identifier for the session.</param>
        /// <param name="timeout">The timeout.</param>
        /// <param name="baselineVersion">The baseline version.</param>
        /// <param name="PISBaseVersion">The pis base version.</param>
        /// <param name="PISMissionVersion">The pis mission version.</param>
        /// <param name="PISInfotainmentVersion">The pis infotainment version.</param>
        /// <param name="LMTVersion">The lmt version.</param>
        /// <returns>The new baseline setting request context.</returns>
        public IRequestContext CreateBaselineSettingRequestContext(string endpoint, string elementId, Guid requestId, Guid sessionId, uint timeout, string baselineVersion, string PISBaseVersion, string PISMissionVersion, string PISInfotainmentVersion, string LMTVersion)
        {
            BaselineSettingRequestContext requestContext   = new BaselineSettingRequestContext(endpoint, elementId, requestId, sessionId, timeout, baselineVersion, PISBaseVersion, PISMissionVersion, PISInfotainmentVersion, LMTVersion);
            IRequestContextProcessor      requestProcessor = new BaselineSettingRequestContextProcessor();

            requestContext.RequestProcessor = requestProcessor;
            return(requestContext);
        }
        /// <summary>Process the set request described by request.</summary>
        /// <exception cref="NotSupportedException">Thrown when the requested operation is not supported.</exception>
        /// <param name="request">The request.</param>
        private void ProcessSetRequest(IRequestContext request)
        {
            BaselineSettingRequestContext requestContext = request as BaselineSettingRequestContext;

            if (requestContext == null)
            {
                throw new NotSupportedException("Can't process setting baseline with a invalid request context.");
            }

            try
            {
                using (PIS.Ground.DataPackage.DataPackageTrainServiceClient lTrainDataPackageClient = new PIS.Ground.DataPackage.DataPackageTrainServiceClient("DataPackageEndpoint", requestContext.Endpoint))
                {
                    try
                    {
                        string requestIdStr = request.RequestId.ToString();
                        lTrainDataPackageClient.SetBaselineVersion(requestIdStr, requestContext.BaselineVersion, requestContext.PISBasePackageVersion, requestContext.PISMissionPackageVersion, requestContext.PISInfotainmentPackageVersion, requestContext.LmtPackageVersion);
                        requestContext.TransmissionStatus = true;
                        requestContext.CompletionStatus   = true;
                    }
                    catch (Exception ex)
                    {
                        if (false == requestContext.OnCommunicationError(ex))
                        {
                            // At this stage nothing can be done, put the request state to completed in order to be deleted.
                            requestContext.CompletionStatus = true;
                        }
                    }
                    finally
                    {
                        if (lTrainDataPackageClient.State == CommunicationState.Faulted)
                        {
                            lTrainDataPackageClient.Abort();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                if (false == requestContext.OnCommunicationError(ex))
                {
                    requestContext.CompletionStatus = true;
                }
            }
        }