public async Task ClearCachedPrefabReferencesAsync(PrefabTargetType type, int targetId)
        {
            var content = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("targetId", targetId.ToString()),
            };

            (await creyClient_.DeleteAsync <NoData, Error>(PrefabsDefaults.SERVICE_NAME, GetCachePath(type), null, new FormUrlEncodedContent(content)))
            .UnwrapOr(err => throw new CommandErrorException <NoData>(err.Message));
        }
        private string GetCachePath(PrefabTargetType type)
        {
            switch (type)
            {
            case PrefabTargetType.LevelContent: return("v1/prefabs/cache/level");

            case PrefabTargetType.Box: return("v1/prefabs/cache/box");
            }

            throw new Exception($"Invalid PrefabTargetType: {type}");
        }
        public async Task <Result <List <PrefabInfo>, Error> > SetCachedReferencesAsync(PrefabTargetType type, int targetId,
                                                                                        IEnumerable <OwningPolicy> allowedOwnership,
                                                                                        ICollection <string> prefabs)
        {
            var content = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("targetId", targetId.ToString()),
            };

            foreach (var pref in prefabs)
            {
                content.Add(new KeyValuePair <string, string>("prefab", pref));
            }

            return(await creyClient_.PutAsync <List <PrefabInfo>, Error>(PrefabsDefaults.SERVICE_NAME, GetCachePath(type), null, new FormUrlEncodedContent(content)));
        }
        public async Task <Result <List <PrefabInfo>, Error> > CheckCachedReferencesAsync(PrefabTargetType type, int targetId, IEnumerable <OwningPolicy> allowedOwnership)
        {
            var content = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("targetId", targetId.ToString()),
            };

            if (allowedOwnership != null)
            {
                foreach (var ownership in allowedOwnership)
                {
                    content.Add(new KeyValuePair <string, string>("allowedOwnership", ((int)ownership).ToString()));
                }
            }

            return(await creyClient_.GetAsync <List <PrefabInfo>, Error>(PrefabsDefaults.SERVICE_NAME, GetCachePath(type) + "/check", null, new FormUrlEncodedContent(content)));
        }
        public async Task <Result <List <PrefabInfo>, Error> > GetCachedPrefabReferencesAsync(PrefabTargetType type, int targetId)
        {
            var content = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("targetId", targetId.ToString()),
            };

            return(await creyClient_.GetAsync <List <PrefabInfo>, Error>(PrefabsDefaults.SERVICE_NAME, GetCachePath(type), null, new FormUrlEncodedContent(content)));
        }