Beispiel #1
0
        public async Task <IActionResult> UploadPack([FromForm] UploadPack body)
        {
            User user = _userService.UserFromContext(HttpContext);

            if (!user.Role.HasFlag(TradeSaberRole.Admin))
            {
                return(Unauthorized());
            }

            long size = body.Cover.Length;

            if (size > 15000000 || size == 0)
            {
                return(BadRequest());
            }

            List <ProbabilityDatum> probData   = Newtonsoft.Json.JsonConvert.DeserializeObject <List <ProbabilityDatum> >(body.ProbData);
            List <string>           cardData   = Newtonsoft.Json.JsonConvert.DeserializeObject <List <string> >(body.CardData);
            List <Rarity>           rarityData = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Rarity> >(body.RarityData);

            Pack pack = new Pack
            {
                Name               = body.Name,
                Description        = body.Description,
                GuaranteedCards    = cardData,
                GuaranteedRarities = rarityData,
                LockedCardPool     = probData,
                Count              = body.Count,
                Theme              = body.Theme
            };

            _cardDispatcher.Create(pack);

            var path = Path.Combine(Directory.GetCurrentDirectory(), "Images");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            try
            {
                string newPath = path + "/" + pack.Id + Path.GetExtension(body.Cover.FileName);
                using StreamReader sr = new StreamReader(body.Cover.OpenReadStream());
                using Stream stream   = System.IO.File.Create(newPath);
                await body.Cover.CopyToAsync(stream);

                pack.CoverURL = "/images/" + pack.Id + Path.GetExtension(body.Cover.FileName);;
                _cardDispatcher.Update(pack);

                return(Ok(pack));
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
Beispiel #2
0
        public IActionResult UpdateSeries(string id, [FromBody] JsonPatchDocument <Series> series)
        {
            if (!ObjectId.TryParse(id, out _))
            {
                return(NotFound());
            }

            User user = _userService.UserFromContext(HttpContext);

            if (!user.Role.HasFlag(TradeSaberRole.Admin))
            {
                return(Unauthorized());
            }
            Series s = _cardDispatcher.GetSeries(id);

            if (s != null)
            {
                series.ApplyTo(s);
                _cardDispatcher.Update(s);
                return(Ok(s));
            }
            return(NotFound());
        }