示例#1
0
        private void PatchExtendedData(RegisterWlItemData data)
        {
            if (!string.IsNullOrEmpty(data.DisplayName) ||
                !string.IsNullOrEmpty(data.FullName) ||
                !string.IsNullOrEmpty(data.Note))
            {
                var wlItem =
                    ((DataServiceQuery <WlItem>)Container.WatchlistItems.Where(wli => wli.ExternalId == data.ExternalId)
                    ).ExecuteAsync().AwaitSync().ToList().Single();

                WlItemSingle wlItemSingle = Container.WatchlistItems.ByKey(wlItem.Id);
                var          patchDelta   = new ExpandoObject() as IDictionary <string, object>;
                patchDelta.Add(nameof(WlItem.DisplayName), data.DisplayName);
                patchDelta.Add(nameof(WlItem.FullName), data.FullName);
                patchDelta.Add(nameof(WlItem.Note), data.Note);

                wlItemSingle.PatchPropertyAsync((ExpandoObject)patchDelta).AwaitSync();
            }
        }
示例#2
0
        public void Register(RegisterWlItemData data)
        {
            Api.Rpc.RegisterWlItemData payload = new Api.Rpc.RegisterWlItemData();
            data.ImageData.ToList().ForEach(imgData => payload.ImageData.Add(new Api.Rpc.RegisterWlItemImageData
            {
                Data = imgData.Data,
                MIME = imgData.MIME
            }));
            data.WatchlistExternalIds.ToList().ForEach(wl => payload.WatchlistExternalIds.Add(wl));
            payload.ExternalId = data.ExternalId;

            using (WatchlistItemsRpcClient client = new WatchlistItemsRpcClient(ApiDefinition.ApiUrl))
            {
                var result = client.RegisterAsync(payload).AwaitSync();
                if (result.StatusCode != (int)HttpStatusCode.NoContent)
                {
                    throw new ProcessingException($"Request end with status code {result.StatusCode}");
                }
            }

            PatchExtendedData(data);
        }