public ActionResult GetAttributes(string ItemNumber, Guid?InfoTemplateID)
        {
            //var ProductAttributes = _db.GetProductAttributes(ItemNumber.Trim()).ToList();
            //var Attributes = _db.GetProductAndCategoryAttributesAndValues(ItemNumber, InfoTemplateID).ToList();
            //var AttributeSettings = _db.GetAttributeTypeSettings().ToList();

            List <GetProductAttributesResult> ProductAttributes = null;
            List <GetProductAndCategoryAttributesAndValuesResult> Attributes = null;
            List <GetAttributeTypeSettingsResult> AttributeSettings          = null;

            Parallel.Invoke(() =>
            {
                var db            = new DataEntryDataContext();
                ProductAttributes = db.GetProductAttributes(ItemNumber.Trim()).ToList();
            },

                            () =>
            {
                var db     = new DataEntryDataContext();
                Attributes = db.GetProductAndCategoryAttributesAndValues(ItemNumber, InfoTemplateID).ToList();
            },

                            () =>
            {
                var db            = new DataEntryDataContext();
                AttributeSettings = db.GetAttributeTypeSettings().ToList();
            });

            return(GetAttributes(ProductAttributes, Attributes, AttributeSettings));
        }