Esempio n. 1
0
        private string CreateAutoBookRequest(IReadOnlyCollection <AutoBookInstanceConfiguration> autoBookInstanceConfigurations)
        {
            //AutoDistributed - autoBookRequest needs to be sent with the new API autodistributed model
            // "Id": "imag-dev07-1",
            var respondTo = "http://" + _configuration["Environment:Id"] + "-api.xggamplan.com/autobooks/";

            AutoBookRequestModel autoBookRequest = new AutoBookRequestModel
            {
                respondTo       = respondTo,
                runId           = RunId.ToString(),
                scenarioId      = ScenarioId.ToString(),
                instanceType    = autoBookInstanceConfigurations.First().InstanceType,   //check
                storageSizeGB   = autoBookInstanceConfigurations.First().StorageSizeGb,  //check
                version         = _autoBooks.Settings.ApplicationVersion,
                binariesVersion = _autoBooks.Settings.BinariesVersion,
                maxInstances    = _autoBooks.Settings.MaxInstances,
                mock            = "false" //set to true in dev stage, not needed in prod
                                          //Mock = false in prod, will actually call the nec. lambda:
                                          // otherwise respond with : will have invoked:
                                          // bash aws/request-invoke.sh http://imag-dev07-1-api.xggamplan.com/autobooks/   t3.medium 50 v4.4.0 xg-gameplan-autobook-binaries.2.40.012.120 3
            };

            _auditEventRepository.Insert(AuditEventFactory.CreateAuditEventForInformationMessage(0, 0,
                                                                                                 $"AutoDistributed - AutoBookRequest object: " +
                                                                                                 $"{autoBookRequest.respondTo}, {autoBookRequest.runId}, {autoBookRequest.scenarioId}, {autoBookRequest.instanceType}, " +
                                                                                                 $"{autoBookRequest.storageSizeGB}, {autoBookRequest.version}, {autoBookRequest.binariesVersion}, " +
                                                                                                 $"{autoBookRequest.maxInstances}, {autoBookRequest.mock}"));

            return(_autoBooks.CreateAutoBookRequestRun(autoBookRequest));
        }
Esempio n. 2
0
        /// <summary>
        /// Requests an autobookRequest model
        /// </summary>
        /// <param name="autoBookRequest"></param>
        public string AutoBookRequestRun(AutoBookRequestModel autoBookRequest)
        {
            string url = $"{_apibaseUrl}/run";

            byte[] contentBody = SerializeContentBody(autoBookRequest);
            int    len         = 0;

            len = contentBody.Length;

            _auditEventRepository.Insert(AuditEventFactory.CreateAuditEventForInformationMessage(0, 0,
                                                                                                 $"Creating WebRequest for {nameof(AutoBookRequestRun)}, content body len after serialization: {len.ToString()}, url: {url}, autoBookRequest.mock: {autoBookRequest.mock}"));

            try
            {
                var webRequest = CreateHttpWebRequest(url, "POST", GetAuthHeaders(AuthType, _accessToken), ContentTypeJSON, contentBody);

                using var webResponse = (HttpWebResponse)webRequest.GetResponse();
                ThrowExceptionIfNotSuccess(webResponse, new List <HttpStatusCode>()
                {
                    HttpStatusCode.OK
                });
                using var reader = new StreamReader(webResponse.GetResponseStream());
                {
                    var data = reader.ReadToEnd();
                    _auditEventRepository.Insert(AuditEventFactory.CreateAuditEventForInformationMessage(0, 0,
                                                                                                         $"Created WebRequest for {nameof(AutoBookRequestRun)}, url: {url}, data: {data})"));
                    return(data);
                }
            }
            catch (WebException ex)
            {
                _auditEventRepository.Insert(AuditEventFactory.CreateAuditEventForInformationMessage(0, 0,
                                                                                                     $"Error thrown Creating WebRequest for {nameof(AutoBookRequestRun)}, url: {url}, ex: {ex})"));
                throw ex;
            }
        }
Esempio n. 3
0
 public string AutoBookRequestRun(AutoBookRequestModel autoBookRequest)
 {
     return(string.Empty);
 }