Esempio n. 1
0
        public async Task <IActionResult> AddMedia([FromBody] PostMediaRequest mediaToAdd)
        {
            await Task.Delay(3000);

            //   *1.make sure its valid
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else
            {
                //   *2.add to the db
                var media = new MediaItem
                {
                    Title         = mediaToAdd.Title,
                    Kind          = mediaToAdd.Kind,
                    Consumed      = false,
                    DateConsumed  = null,
                    RecommendedBy = mediaToAdd.RecommendedBy,
                    Removed       = false
                };
                Context.MediaItems.Add(media);
                await Context.SaveChangesAsync();

                var response = new MediaResponseItem
                {
                    Id            = media.Id,
                    Title         = media.Title,
                    Consumed      = media.Consumed,
                    DateConsumed  = media.DateConsumed,
                    Kind          = media.Kind,
                    RecommendedBy = media.RecommendedBy
                };
                //   *3. return a 201(Created) status code
                //   *4. return a location header w url of new resource
                //   *5.give them a copy of the new resource[because its nice]

                return(CreatedAtRoute("media#getbyid", new { id = response.Id }, response));
            }



            return(Ok($"Adding {mediaToAdd.Title}"));
        }
Esempio n. 2
0
        public async Task <IActionResult> AddMedia([FromBody] PostMediaRequest mediaToAdd)
        {
            // ADD A FAKE DELAY to simulate more "real world"
            await Task.Delay(3000);

            //1. Make sure it is is valid.
            //   -- If it isn't, return a 400 with some error information if you want.
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else
            {
                // 2. Add it to the database.
                var media = new MediaItem
                {
                    Title         = mediaToAdd.Title,
                    Kind          = mediaToAdd.Kind,
                    Consumed      = false,
                    DateConsumed  = null,
                    RecommendedBy = mediaToAdd.RecommendedBy,
                    Removed       = false
                };
                Context.MediaItems.Add(media);
                await Context.SaveChangesAsync();

                var response = new MediaResponseItem
                {
                    Id            = media.Id,
                    Title         = media.Title,
                    Consumed      = media.Consumed,
                    DateConsumed  = media.DateConsumed,
                    Kind          = media.Kind,
                    RecommendedBy = media.RecommendedBy
                };
                // 3. Return a 201 (Created) status code.
                // 4. Return a Location header with the URL of the new resource
                // 5. It's nice just to give them a copy of the new resource.

                // TEMP:
                return(CreatedAtRoute("media#getbyid", new { id = response.Id }, response));
            }
        }