コード例 #1
0
        public async Task <StoreModifier> GetOneStoreModifier(int id, int storeId)
        {
            var responseStream = await client.GetStreamAsync($"stores/{storeId}/Modifiers/{id}");

            StoreModifier result = await JsonSerializer.DeserializeAsync <StoreModifier>(responseStream);

            return(result);
        }
コード例 #2
0
        public async Task <ActionResult <StoreModifier> > Edit(int id, StoreModifier modifier, int storeId)
        {
            try
            {
                await modifierService.UpdateStoreModifier(id, modifier, storeId);

                return(RedirectToAction(nameof(Index), new { storeId }));
            }
            catch
            {
                return(View());
            }
        }
コード例 #3
0
        public async Task <ActionResult> Delete(int id, StoreModifier modifier, int storeId)
        {
            try
            {
                await modifierService.DeleteStoreModifier(id, storeId);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
コード例 #4
0
        public async Task <ActionResult <StoreModifier> > Create(StoreModifier modifier, int storeId)
        {
            try
            {
                // TODO: Add insert logic here
                await modifierService.AddStoreModifier(modifier, storeId);

                return(RedirectToAction(nameof(Index), new { storeId }));
            }
            catch
            {
                return(View());
            }
        }
コード例 #5
0
        // GET: Items/Create
        public ActionResult Create()
        {
            var model = new EditItemViewModel
            {
                ItemModifiers =
                    StoreModifier.GetAll()
                    .Select(sm => new EditItemModifier
                {
                    Id   = sm.Id,
                    Name = sm.Name,
                })
                    .ToList(),
            };

            return(View(model));
        }
コード例 #6
0
        public async Task <IActionResult> PutModifier(int modifierId, int storeId, StoreModifier modifier)
        {
            if (modifierId != modifier.ModifierId)
            {
                return(BadRequest());
            }

            bool didUpdate = await storeModifierRepository.UpdateModifier(modifierId, storeId, modifier);

            if (!didUpdate)
            {
                return(NotFound());
            }

            return(NoContent());
        }
コード例 #7
0
        public async Task <StoreModifier> UpdateStoreModifier(int id, StoreModifier storeModifier, int storeId)
        {
            using (var content = new StringContent(JsonSerializer.Serialize(storeModifier), System.Text.Encoding.UTF8, "Application/Json"))
            {
                var response = await client.PutAsync($"Stores/{storeId}/modifiers/{id}", content);

                if (response.StatusCode == System.Net.HttpStatusCode.NoContent)
                {
                    return(storeModifier);
                }

                var errorBody = await response.Content.ReadAsStringAsync();

                throw new Exception($"failed to post data: ({ response.StatusCode})");
            }
        }
コード例 #8
0
        public async Task <StoreModifierDTO> SaveNewModifier(StoreModifier modifier, int storeId)
        {
            var newModifier = new StoreModifier
            {
                ModifierId  = modifier.ModifierId,
                Name        = modifier.Name,
                Description = modifier.Description,
                StoreId     = modifier.StoreId
            };

            _context.StoreModifier.Add(newModifier);

            await _context.SaveChangesAsync();

            var modifierToRetun = await GetOneModifier(storeId, modifier.ModifierId);

            return(modifierToRetun);
        }
コード例 #9
0
        public async Task <StoreModifier> AddStoreModifier(StoreModifier storeModifier, int storeId)
        {
            using (var content = new StringContent(JsonSerializer.Serialize(storeModifier),
                                                   System.Text.Encoding.UTF8, "application/Json"))
            {
                var response = await client.PostAsync($"Stores/{storeId}/Modifiers", content);

                if (response.StatusCode == System.Net.HttpStatusCode.Created)
                {
                    var responseStream = response.Content.ReadAsStreamAsync().Result;

                    StoreModifier result = await JsonSerializer.DeserializeAsync <StoreModifier>(responseStream);

                    return(result);
                }

                throw new Exception($"failed to post data: ({response.StatusCode})");
            }
        }
コード例 #10
0
        public async Task <bool> UpdateModifier(int modifierId, int itemId, StoreModifier modifier)
        {
            _context.Entry(modifier).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ModifierExists(modifierId))
                {
                    return(false);
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #11
0
        public async Task <ActionResult <StoreModifierDTO> > PostItem(StoreModifier modifier, int storeId)
        {
            await storeModifierRepository.SaveNewModifier(modifier, storeId);

            return(CreatedAtAction("GetModifier", new { storeId = storeId, modifierId = modifier.ModifierId }, modifier));
        }