예제 #1
0
        public CornetTransactionRegistrationReply RegisterCornetTransaction(CornetTransaction cornetTransaction)
        {
            Console.WriteLine("In RegisterCornetTransaction");
            CornetTransactionRegistrationReply cornetregreply = new CornetTransactionRegistrationReply();

            CornetTransactionRegistration.getInstance().Add(cornetTransaction);
            cornetregreply.ResponseMessage = "Success";
            cornetregreply.ResponseCode    = "1";

            return(cornetregreply);
        }
        public CornetTransactionRegistrationReply RegisterCornetTransaction(CornetTransaction cornetTransaction)
        {
            Console.WriteLine(DateTime.Now + " In RegisterCornetTransaction");
            CornetTransactionRegistrationReply cornetregreply = new CornetTransactionRegistrationReply();

            CornetTransactionRegistration.getInstance().Add(cornetTransaction);
            Console.WriteLine(DateTime.Now + " Received data from Cornet");

            var t = Task.Run(() => CallDynamicsWithCornetData(_configuration, cornetTransaction));

            t.Wait();
            Console.WriteLine(DateTime.Now + " Sent data to Dynamics");

            if (t.Result.Contains("Cornet Notification "))
            {
                cornetregreply.ResponseCode    = "200";
                cornetregreply.ResponseMessage = "Success";
                Console.WriteLine(DateTime.Now + " Response Success");
            }
            else
            {
                //JObject tempJson = JObject.Parse(t.Result);
                //CornetDynamicsReply replyJson = new CornetDynamicsReply();

                //if (t.IsCompletedSuccessfully == true)
                //{
                //    cornetregreply.ResponseMessage = "Success";
                //    cornetregreply.ResponseCode = null;// t.Result;
                //    Console.WriteLine(DateTime.Now + " Response Success");
                //}
                //else
                //{
                cornetregreply.ResponseMessage = "Failure";
                cornetregreply.ResponseCode    = t.Result;
                Console.WriteLine(DateTime.Now + " Response Fail");
                //}
            }

            // Responses as follows:
            // 200 - Status OK - Automatically Done
            // 400 - Bad Request (Malformed JSON) - Automatically Done
            // 500 - Internal Server Error (Something wrong on our end)
            // 201 - If anything is being created on our end based on the notification sent
            // This next line is just a sample of how to do it:
            //this.HttpContext.Response.StatusCode = 444;

            Console.WriteLine(DateTime.Now + " Exit RegisterCornetTransaction");
            return(cornetregreply);
        }
예제 #3
0
        public IActionResult InsertCornetTransaction(CornetTransaction cornetTransaction)
        {
            try
            {
                Console.WriteLine("In InsertCornetTransaction");
                CornetTransactionRegistrationReply casregreply = new CornetTransactionRegistrationReply();
                CornetTransactionRegistration.getInstance().Add(cornetTransaction);
                casregreply.ResponseMessage = "Success";

                return(Ok(casregreply));
            }
            catch (Exception e)
            {
                Console.WriteLine("Error in InsertCornetTransaction. " + e.ToString());
                return(StatusCode(e.HResult));
            }
        }
예제 #4
0
        public static CornetDynamicsModel ToCornetDynamicsModel(this CornetTransaction model)
        {
            CornetDynamicsModel cornetTransaction = new CornetDynamicsModel();

            cornetTransaction.EventId      = model.event_message_id;
            cornetTransaction.EventType    = model.message_event_type_cd;
            cornetTransaction.EventDate    = model.event_dtm;
            cornetTransaction.DataElement1 = model.event_data[0].data_element_nm;
            cornetTransaction.DataValue1   = model.event_data[0].data_value_txt;
            cornetTransaction.DataElement2 = model.event_data[1].data_element_nm;
            cornetTransaction.DataValue2   = model.event_data[1].data_value_txt;
            cornetTransaction.DataElement3 = model.event_data[2].data_element_nm;
            cornetTransaction.DataValue3   = model.event_data[2].data_value_txt;
            cornetTransaction.DataElement4 = model.event_data[3].data_element_nm;
            cornetTransaction.DataValue4   = model.event_data[3].data_value_txt;
            return(cornetTransaction);
        }
예제 #5
0
        public static CornetDynamicsModel ToCornetDynamicsModel(this CornetTransaction model)
        {
            CornetDynamicsModel cornetTransaction = new CornetDynamicsModel();

            cornetTransaction.EventId      = model.event_message_id;
            cornetTransaction.EventType    = model.message_event_type_cd;
            cornetTransaction.EventDate    = model.event_dtm;
            cornetTransaction.OrgJSON      = JsonConvert.SerializeObject(model); // TODO: Remove for PROD
            cornetTransaction.DataElement1 = model.event_data[0].data_element_nm;
            cornetTransaction.DataValue1   = model.event_data[0].data_value_txt;
            cornetTransaction.DataElement2 = model.event_data[1].data_element_nm;
            cornetTransaction.DataValue2   = model.event_data[1].data_value_txt;
            cornetTransaction.DataElement3 = model.event_data[2].data_element_nm;
            cornetTransaction.DataValue3   = model.event_data[2].data_value_txt;
            cornetTransaction.DataElement4 = model.event_data[3].data_element_nm;
            cornetTransaction.DataValue4   = model.event_data[3].data_value_txt;
            return(cornetTransaction);
        }
        private static async Task <string> CallDynamicsWithCornetData(IConfiguration configuration, CornetTransaction model)
        {
            Console.WriteLine(DateTime.Now + " In CallDynamicsWithCornetData");
            HttpClient httpClient = null;

            try
            {
                var cornetData = model.ToCornetDynamicsModel();
                JsonSerializerSettings settings = new JsonSerializerSettings();
                settings.NullValueHandling = NullValueHandling.Ignore;
                var cornetJson = JsonConvert.SerializeObject(cornetData, settings);
                cornetJson = cornetJson.Replace("odatatype", "@odata.type");

                // Get results into the tuple
                var endpointAction = "vsd_CreateCORNETNotifications";
                Console.WriteLine(DateTime.Now + " Set endpoint " + endpointAction);
                var tuple = await GetDynamicsHttpClientNew(configuration, cornetJson, endpointAction);

                Console.WriteLine(DateTime.Now + " Got result from Dynamics");

                string tempResult = tuple.Item1.ToString();

                string tempJson = tuple.Item3.ToString();
                tempJson = tempJson.Replace("@odata.context", "oDataContext");

                DynamicsResponseModel deserializeJson = JsonConvert.DeserializeObject <DynamicsResponseModel>(tempJson);

                DynamicsResponse dynamicsResponse = new DynamicsResponse();

                dynamicsResponse.IsSuccess = deserializeJson.IsSuccess;
                dynamicsResponse.Result    = deserializeJson.Result;

                if (dynamicsResponse.Result == null)
                {
                    dynamicsResponse.odatacontext = tempJson;
                }
                else
                {
                    dynamicsResponse.odatacontext = dynamicsResponse.Result;
                }

                Console.WriteLine(DateTime.Now + " Return results from Dynamics");
                return(dynamicsResponse.odatacontext);
            }
            finally
            {
                if (httpClient != null)
                {
                    httpClient.Dispose();
                }
            }
        }