public Prato Create(RegistrarPratoComando command)
        {
            var prato = new Prato(command.Nome, command.Preco, command.RestauranteId);

            prato.RegisterPrato();
            _repository.Create(prato);

            if (Commit())
            {
                return(prato);
            }

            return(null);
        }
        public Task <HttpResponseMessage> PostCad([FromBody] dynamic body) // Cadastra os pratos
        {
            var response = new HttpResponseMessage();

            try
            {
                var pratoExiste = _service.GetOne((string)body.nome);
                try
                {
                    if (pratoExiste.Nome.Equals((string)body.nome))
                    {
                        response = Request.CreateResponse(HttpStatusCode.OK, "Este prato já esta cadastrado!");
                    }
                }
                catch
                {
                    var restaurante = _serviceRestaurante.GetOne((string)body.restaurante);

                    var command = new RegistrarPratoComando(
                        nome: (string)body.nome,
                        preco: (string)body.preco,
                        restauranteId: restaurante.RestauranteId
                        );

                    var pratos = _service.Create(command);

                    return(CreateResponse(HttpStatusCode.Created, pratos));
                }
            }
            catch
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, "Não foi criado o prato!");
            }
            var tsc = new TaskCompletionSource <HttpResponseMessage>();

            tsc.SetResult(response);
            return(tsc.Task);
        }