static void ReadMessages(IAWSSQSWrapper awsSQSWrapper, string queueURL)
        {
            ReceiveMessageResponse awsRMR = awsSQSWrapper.ReceiveMessage(queueURL);

            SKUUpsertMessageContract obj = new SKUUpsertMessageContract();

            SKUUpsertMessageContract skuMC = (SKUUpsertMessageContract)awsSQSWrapper.JSONToObject(obj, awsRMR.Messages[0].Body.ToString());

            Console.WriteLine("Received AWS Message: {0}", awsRMR.Messages[0].MessageId.ToString());
            Console.WriteLine("  AWS Message Handle: {0}", awsRMR.Messages[0].ReceiptHandle.ToString());
            Console.WriteLine("Received TGK Message: {0}", skuMC.ID);

            foreach (Message message in awsRMR.Messages)
            {
                Console.WriteLine("  Message");
                Console.WriteLine("    MessageId: {0}", message.MessageId);
                Console.WriteLine("    ReceiptHandle: {0}", message.ReceiptHandle);
                Console.WriteLine("    MD5OfBody: {0}", message.MD5OfBody);
                Console.WriteLine("    Body: {0}", message.Body);

                foreach (KeyValuePair <string, string> entry in message.Attributes)
                {
                    Console.WriteLine("  Attribute");
                    Console.WriteLine("    Name: {0}", entry.Key);
                    Console.WriteLine("    Value: {0}", entry.Value);
                }
            }
        }
        public IActionResult Post([FromBody] SKUUpsertMessageContract value)
        {
            string json = JSONHelper.ObjectToJSON(value);

            DataLayer dl = new DataLayer();

            dl.InsertSKU(json);

            return(Json("Message Received: " + value.GUID));
        }
        static void CreateMessages(IAWSSQSWrapper awsSQSWrapper, string queueURL, int messageCount)
        {
            //GetQueueUrlResponse gQUR = sqsClient.GetQueueUrl("MySQSQueue");

            SKUUpsertMessageContract skuMessage = new SKUUpsertMessageContract();

            skuMessage.ID                           = Guid.NewGuid().ToString();
            skuMessage.Target                       = new MessageTarget();
            skuMessage.Target.Company               = "TGK";
            skuMessage.Target.Warehouse             = "SHP";
            skuMessage.Target.Brand                 = "TGK";
            skuMessage.MessageType                  = "sku_upsert";
            skuMessage.SKU                          = "0EDD1H";
            skuMessage.ProductID                    = "edd1";
            skuMessage.ProductName                  = "Harry Potter House Flag";
            skuMessage.ProductCategory              = "Accessories";
            skuMessage.ProductName                  = "Hufflepuff";
            skuMessage.Dimensions                   = new Dimensions();
            skuMessage.Dimensions.weight            = ".45";
            skuMessage.Dimensions.weight_override   = "0";
            skuMessage.Dimensions.length            = "17";
            skuMessage.Dimensions.height            = ".5";
            skuMessage.Dimensions.depth             = "10";
            skuMessage.Dimensions.volume            = "85";
            skuMessage.Dimensions.case_weight       = "4.5";
            skuMessage.Dimensions.case_length       = "170";
            skuMessage.Dimensions.case_height       = "5";
            skuMessage.Dimensions.case_depth        = "100";
            skuMessage.Dimensions.case_volume       = "8500";
            skuMessage.Identifiers                  = new Identifiers();
            skuMessage.Identifiers.upc_1            = "618480236309";
            skuMessage.Identifiers.upc_2            = "";
            skuMessage.Identifiers.ean              = "";
            skuMessage.Identifiers.jan              = "";
            skuMessage.Identifiers.isbn             = "";
            skuMessage.Identifiers.warehoue_barcode = "0EDD1H";

            int i = 0;

            for (i = 1; i <= messageCount; i++)
            {
                skuMessage.ID = Guid.NewGuid().ToString();
                string message = awsSQSWrapper.ObjectToJSON(skuMessage);

                Console.WriteLine("Creating Message {0}", i);
                SendMessageResponse awsSMR = awsSQSWrapper.SendMessage(queueURL, message);
                Console.WriteLine("Successfully created Message {0}", awsSMR.MessageId.ToString());
            }
        }
        public int InsertSKU(string json)
        {
            SKUUpsertMessageContract obj = new SKUUpsertMessageContract();

            SKUUpsertMessageContract skuUpsert = (SKUUpsertMessageContract)JSONHelper.JSONToObject(obj, json);

            OdbcConnection con = new OdbcConnection(_dbConnectionString);
            OdbcCommand    cmd = new OdbcCommand();

            cmd.Connection  = con;
            cmd.CommandText = _sqlToExecute;
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("P_ERROR_SEQ", 0);
            cmd.Parameters.AddWithValue("P_DATEPROC", 0);
            cmd.Parameters.AddWithValue("P_TIMEPROC", 0);
            cmd.Parameters.AddWithValue("P_BATCH_CTL_NUM", "1");
            cmd.Parameters.AddWithValue("P_DATECREATED", DateTime.Now.ToString("yyyyMMdd"));
            cmd.Parameters.AddWithValue("P_TIMECREATED", DateTime.Now.ToString("hhmmss"));
            cmd.Parameters.AddWithValue("P_USERID", "WMISKU");
            cmd.Parameters.AddWithValue("P_COMPANY", skuUpsert.MessageMetadata.Company);
            cmd.Parameters.AddWithValue("P_DIVISION", skuUpsert.MessageMetadata.Brand);
            cmd.Parameters.AddWithValue("P_SKU", skuUpsert.SKU);
            cmd.Parameters.AddWithValue("P_SEQNUM", 1);
            cmd.Parameters.AddWithValue("P_CAT", skuUpsert.ProductCategory.Substring(0, 3));
            cmd.Parameters.AddWithValue("P_TITLE", skuUpsert.ProductName.ToString());
            cmd.Parameters.AddWithValue("P_PRIMARY_UPC", skuUpsert.identifiers.warehoue_barcode);
            cmd.Parameters.AddWithValue("P_PRICE", 1.00);
            cmd.Parameters.AddWithValue("P_COST", 1.00);
            cmd.Parameters.AddWithValue("P_INNERPACK", 1);
            cmd.Parameters.AddWithValue("P_BOXQTY", 1);
            cmd.Parameters.AddWithValue("P_ACTIVATION_DATE", 0);
            cmd.Parameters.AddWithValue("P_TARIFF_CODE", "");
            cmd.Parameters.AddWithValue("P_COO", "USA");
            cmd.Parameters.AddWithValue("P_MULTI_COO", "N");
            cmd.Parameters.AddWithValue("P_TOP_SHELF", "N");
            cmd.Parameters.AddWithValue("P_VENDOR", "");
            cmd.Parameters.AddWithValue("P_USED_FLAG", "N");
            cmd.Parameters.AddWithValue("P_STATUS", "10");
            cmd.Parameters.AddWithValue("P_DB_FUNCTION", "2");
            cmd.Parameters.AddWithValue("P_PRODUCER", "N");
            cmd.Parameters.AddWithValue("P_NET_COST_VALID", "N");
            cmd.Parameters.AddWithValue("P_LOT_CONTROL_USED", "N");
            cmd.Parameters.AddWithValue("P_STATUS_DESC", "");
            cmd.Parameters.AddWithValue("P_NMFC_CODE", "");
            cmd.Parameters.AddWithValue("P_TRK_SKU_ATTR", "N");
            cmd.Parameters.AddWithValue("P_RETURN_FLAG", "R");
            cmd.Parameters.AddWithValue("P_STSC2", "N");
            cmd.Parameters.AddWithValue("P_STCREX", "");
            cmd.Parameters.AddWithValue("P_STSC3", "N");
            cmd.Parameters.AddWithValue("P_STSC4", "");

            int affectedRows = 0;

            try
            {
                con.Open();
                affectedRows = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                con.Close();
                con.Dispose();
            }

            return(affectedRows);
        }