public async Task <IActionResult> Create([Bind("Id,Ano,TipoMedia,Titulo,Url")]  MediaViewModel vm)
        {
            if (ModelState.IsValid && vm.Url.Length > 0)
            {
                MediaEdicao media = new MediaEdicao();
                media.Ano       = vm.Ano;
                media.TipoMedia = vm.TipoMedia;
                media.Titulo    = vm.Titulo;

                Link link = new Link {
                    Categoria = Categoria.Media, Descricao = vm.Titulo, Url = vm.Url
                };
                await _linkRepository.Save(link);

                media.Link   = link;
                media.LinkId = link.Id;


                await _repository.Save(media);

                return(RedirectToAction("Index"));
            }

            return(View(vm));
        }
コード例 #2
0
 public MediaViewModel(MediaEdicao m)
 {
     Id     = m.Id;
     Ano    = m.Ano;
     LinkId = m.LinkId;
     if (m.Link != null)
     {
         Link = m.Link;
         Url  = m.Link.Url;
     }
     Titulo    = m.Titulo;
     TipoMedia = m.TipoMedia;
     Edicao    = new SelectList(Enumerable.Range(2015, DateTime.Now.Year - 2014).Reverse());
 }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Ano,LinkId,TipoMedia,Titulo,Url")] MediaViewModel vm)
        {
            if (id != vm.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    MediaEdicao edicao = await _repository.Get(id);

                    edicao.Ano       = vm.Ano;
                    edicao.TipoMedia = vm.TipoMedia;
                    edicao.Titulo    = vm.Titulo;

                    if (vm.Url != null)
                    {
                        Link link = await _linkRepository.Get(edicao.LinkId);

                        link.Descricao = vm.Titulo;
                        link.Url       = vm.Url;

                        await _linkRepository.Update(link);
                    }
                    await _repository.Update(edicao);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MediaEdicaoExists(vm.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(vm));
        }
コード例 #4
0
        public async Task <IActionResult> GetTransportes([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            MediaEdicao media = await _repository.Get(id);

            Link link = await _linkRepository.Get(media.LinkId);

            media.Link = link;
            MediaViewModel vm = new MediaViewModel(media);

            if (media == null)
            {
                return(NotFound());
            }

            return(Ok(vm));
        }