Пример #1
0
        public async Task TestPutChannel()
        {
            var gen = new RandomGenerator();
            var anyChannel = data_channels.First();

            var model = new ChannelUpdateViewModel
            {
                Id = anyChannel.Id,
                Name = gen.Phrase(10),
                Loops = gen.Boolean(),
            };

            var result = await controller.PutChannel(model);
            var response = await result.ExecuteAsync(CancellationToken.None);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
Пример #2
0
        public async Task<IHttpActionResult> PutChannel(ChannelUpdateViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new ValidationException();
                }

                var channel = await _channels.Find(model.Id);
                if (channel == null)
                {
                    throw new KeyNotFoundException();
                }

                model.Update(channel);
                await _channels.Update(channel);
                return Ok();
            }
            catch (ValidationException)
            {
                // All validations errors are already in ModelState.
            }
            catch (KeyNotFoundException)
            {
                return NotFound();
            }
            catch (Exception e)
            {
                ModelState.AddModelError(e.GetType().ToString(), e.Message);
            }

            return BadRequest(ModelState);
        }