public async Task <string> AddMetaFeilds(List <Product> products, string shopifyurl, string token) { foreach (var item in products) { long id = Convert.ToInt64(item.Id); var service = new MetaFieldService(shopifyurl, token); var count = await service.CountAsync(id, "products"); var metafields = await service.ListAsync(id, "products"); foreach (var item1 in metafields.Items) { await service.DeleteAsync(Convert.ToInt64(item1.Id)); } var metafield1 = new MetaField() { Namespace = "products/update", Key = "myKey", Value = "5", ValueType = "integer", Description = "This is a test meta field. It is an integer value.", OwnerResource = "products/update", }; //Create a new metafield on a product metafield1 = await service.CreateAsync(metafield1, id, "products"); } return(""); }
static public async Task UpdateMetafieldsAsync() { while (!AllGetQueueFilled || metafieldUpdateQueue.Count > 0) { if (metafieldUpdateQueue.Count == 0) { await Task.Delay(500); } MetaField p = null; // SQLDone can become true whithout adding anything to Queue if (metafieldUpdateQueue.TryDequeue(out p)) { try { //var result = await updateMetafieldService.UpdateAsync((long)p.OwnerId, p); var result = await updateMetafieldService.CreateAsync(p); //GeneralAdapter.OutputString(result.ToString()); } catch (Exception e) { /* * try * {*/ GeneralAdapter.OutputString($"{e.Message}"); /* * var result = await updateMetafieldService.CreateAsync(p); * GeneralAdapter.OutputString(result.ToString());*/ /* * } * catch (Exception e2) * { * GeneralAdapter.OutputString(e2.Message); * }*/ } } } metafieldUpdateDone = true; GeneralAdapter.OutputString("metafieldUpdate Done."); }
static public bool CreateMetadata(string type, long id, string ns, string key, object value, string description = null) { if (value == null) { return(false); } string valueType; if (value is int) { valueType = "integer"; } else if (value is string) { valueType = "string"; if (string.IsNullOrEmpty(value as string)) { return(false); } } else { return(false); } MetaField meta = new MetaField() { Namespace = ns, Key = key, Value = value, ValueType = valueType }; MetaField t = MetaFieldService.CreateAsync(meta, id, type).Result; IEnumerable <MetaField> metas = MetaFieldService.ListAsync(id, type).Result; return(true); }