public IActionResult GetDetalhesDeModelo(string id)
        {
            var codigo = new CodigoDeModelo(id);

            var modelo = consultaDeModelos.ObtemModelo(codigo);

            var resource = new Resource <Modelo>
            {
                Title = $"Modelo #{modelo.Codigo}",
                HRef  = $"/cadastro/modelos/{modelo.Codigo}",
                Data  = modelo,
                Links = new Link[]
                {
                    new Link {
                        Rel = "recursos-de-modelo", HRef = $"/cadastro/modelos/{modelo.Codigo}/recursos", Text = "Recursos"
                    },
                    new Link {
                        Rel = "alteracao-de-modelos", HRef = $"/cadastro/modelos/{modelo.Codigo}/alteracao-de-modelos", Text = "Alterar"
                    },
                    new Link {
                        Rel = "exclusao-de-modelos", HRef = $"/cadastro/modelos/{modelo.Codigo}/exclusao-de-modelos", Text = "Excluir"
                    }
                }
            };

            return(Ok(resource));
        }
        public IActionResult GetDetalhesDeRecurso(string id, int idDeRecurso)
        {
            var codigo = new CodigoDeModelo(id);

            var modelo = consultaDeModelos.ObtemModelo(codigo);

            var recurso = modelo.ObtemRecurso(idDeRecurso);

            var resource = new Resource <Modelo>
            {
                Title = $"Recurso #{idDeRecurso}",
                HRef  = $"/cadastro/modelos/{codigo.Valor}/recusos/{recurso.Id}",
                Data  = modelo,
                Links = new Link[]
                {
                    new Link {
                        Rel = "alteracao-de-recursos", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}/alteracao-de-recursos", Text = "Alterar"
                    },
                    new Link {
                        Rel = "exclusao-de-recursos", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}/exclusao-de-recursos", Text = "Excluir"
                    }
                }
            };

            return(Ok(resource));
        }
        public IActionResult PostAdicaoDeRecursos(string id, SolicitacaoDeAdicaoDeRecursoDeModelo solicitacao)
        {
            var codigo = new CodigoDeModelo(id);

            var recurso = cadastroDeModelos.AdicionaRecursoDeModelo(solicitacao);

            var resource = new Resource <Recurso>
            {
                Title = $"Recurso #{recurso.Id}",
                HRef  = $"/cadastro/modelos/{codigo.Valor}/recusos/{recurso.Id}/adicao-de-recursos",
                Data  = recurso,
                Links = new Link[]
                {
                    new Link {
                        Rel = "detalhes-de-modelo", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}", Text = "Detalhar"
                    },
                    new Link {
                        Rel = "alteracao-de-recursos", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}/alteracao-de-recursos", Text = "Alterar"
                    },
                    new Link {
                        Rel = "exclusao-de-recursos", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}/exclusao-de-recursos", Text = "Excluir"
                    }
                }
            };

            return(CreatedAtAction(nameof(GetDetalhesDeRecurso), new { id = codigo.Valor, idDeRecurso = recurso.Id }, resource));
        }
Ejemplo n.º 4
0
        public DescricaoDeRecursoDeModeloAlterado(CodigoDeModelo codigo, int id, string descricao)
        {
            Codigo = codigo;

            Id = id;

            Descricao = descricao;
        }
Ejemplo n.º 5
0
        public RecursoDeModeloAdicionado(CodigoDeModelo codigo, TipoDeRecurso tipo, string descricao, decimal custo, int quantidade)
        {
            Codigo = codigo;

            Tipo = tipo;

            Descricao = descricao;

            Custo = custo;

            Quantidade = quantidade;
        }
Ejemplo n.º 6
0
        public Modelo(string codigo, string nome)
        {
            Id = new CodigoDeModelo(codigo);

            Codigo = codigo;

            Nome = nome;

            Recursos = new HashSet <Recurso>();

            //Recursos.CollectionChanged += Recursos_CollectionChanged;
        }
Ejemplo n.º 7
0
        public Modelo ObtemModeloParaEdicao(CodigoDeModelo codigo)
        {
            try
            {
                var modelo = db.Modelos.Find(codigo.Valor);

                return(modelo);
            }
            catch (Exception ex)
            {
                // TODO: Tratar erros de persistência aqui.

                throw new ApplicationException($"Erro ao obter modelo '{codigo.Valor}'.", ex);
            }
        }
Ejemplo n.º 8
0
        //protected override object AddNewCore()
        //{
        //    var model = new Modelo(
        //        Guid.NewGuid().ToString(),
        //        null,
        //        6000,
        //        20
        //    );

        //    var viewModel = ModeloViewModel.From(model);

        //    OnAddNew(viewModel);

        //    return viewModel;
        //}

        protected override void OnAddNew(ModeloViewModel viewModel)
        {
            //item.BindingList = this;

            var codigo = new CodigoDeModelo(Guid.NewGuid().ToString());

            var model = new Modelo(codigo, "Modelo #");

            viewModel.SetModel(model);

            //await repositorioDeModelos.Add(model);

            //viewModel.Itens.planoComercial = viewModel;

            base.OnAddNew(viewModel);
        }
        public IActionResult GetRecursosDeModelo(string id)
        {
            var codigo = new CodigoDeModelo(id);

            var modelo = consultaDeModelos.ObtemModelo(codigo);

            var data = modelo.Recursos
                       .Select(recurso => new Resource <Recurso>
            {
                Title = $"Recurso #{recurso.Id}",
                HRef  = $"/cadastro/modelos/{codigo.Valor}/recursos",
                Data  = recurso,
                Links = new Link[]
                {
                    new Link {
                        Rel = "detalhes-de-modelo", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}", Text = "Detalhar"
                    },
                    new Link {
                        Rel = "alteracao-de-recursos", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}/alteracao-de-recursos", Text = "Alterar"
                    },
                    new Link {
                        Rel = "exclusao-de-recursos", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/{recurso.Id}/exclusao-de-recursos", Text = "Excluir"
                    }
                }
            })
                       .ToArray();

            var resource = new ResourceCollection <Recurso>
            {
                Title = "Recursos",
                HRef  = $"/cadastro/modelos/{codigo.Valor}/recursos",
                Data  = data,
                Links = new Link[]
                {
                    new Link {
                        Rel = "adicao-de-recursos", HRef = $"/cadastro/modelos/{codigo.Valor}/recursos/adicao-de-recursos", Text = "Adição de Recursos"
                    }
                }
            };

            return(Ok(resource));
        }
Ejemplo n.º 10
0
        public Modelo ObtemModelo(CodigoDeModelo codigo)
        {
            try
            {
                var modelo = db.Modelos
                             .Include(p => p.Recursos)
                             .FirstOrDefault(p => p.Codigo == codigo.Valor);

                if (modelo == default(Modelo))
                {
                    throw new ApplicationException();
                }

                return(modelo);
            }
            catch (Exception ex)
            {
                // TODO: Tratar erros de persistência aqui.

                throw new ApplicationException($"Erro ao obter modelo '{codigo.Valor}'.", ex);
            }
        }
        public IActionResult GetAdicaoDeRecursos(string id)
        {
            var codigo = new CodigoDeModelo(id);

            var solicitacao = new SolicitacaoDeAdicaoDeRecursoDeModelo
            {
                Codigo    = id,
                Descricao = "Recurso #"
            };

            var resource = new ResourceForm <SolicitacaoDeAdicaoDeRecursoDeModelo>
            {
                Title  = "Adição de Recursos",
                HRef   = $"/cadastro/modelos/{codigo.Valor}/recursos/adicao-de-recursos",
                Data   = solicitacao,
                Method = "POST",
                Action = $"/cadastro/modelos/{codigo.Valor}/recursos/adicao-de-recursos",
                Links  = new Link[] { }
            };

            return(Ok(resource));
        }
Ejemplo n.º 12
0
        public NomeDeModeloAlterado(CodigoDeModelo codigo, string nome)
        {
            Codigo = codigo;

            Nome = nome;
        }
Ejemplo n.º 13
0
 public Modelo ObtemModelo(CodigoDeModelo codigo)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 14
0
        public async Task <Modelo> ObtemModelo(CodigoDeModelo codigo)
        {
            var modelo = await db.ObtemModelo(codigo);

            return(modelo);
        }
Ejemplo n.º 15
0
        public Modelo ObtemModelo(CodigoDeModelo codigo)
        {
            var modelo = db.ObtemModelo(codigo);

            return(modelo);
        }
Ejemplo n.º 16
0
 public void AlteraCodigo(CodigoDeModelo codigo)
 {
     Apply(new CodigoDeModeloAlterado(codigo));
 }
Ejemplo n.º 17
0
 public ModeloExcluido(CodigoDeModelo codigo)
 {
     Codigo = codigo;
 }
Ejemplo n.º 18
0
        public ModeloCriado(CodigoDeModelo codigo, string nome)
        {
            Codigo = codigo;

            Nome = nome;
        }
Ejemplo n.º 19
0
 public CodigoDeModeloAlterado(CodigoDeModelo codigo)
 {
     Codigo = codigo;
 }
Ejemplo n.º 20
0
 internal void AlteraCodigo(CodigoDeModelo codigo)
 {
     Id = codigo;
 }
Ejemplo n.º 21
0
        public Modelo(CodigoDeModelo codigo, string nome)
        {
            Apply(new ModeloCriado(codigo, nome));

            Recursos = new HashSet <Recurso>();
        }