public IHttpActionResult PostDone(Pedido model)
        {
            try
            {
                using (PizzariaDataContext context = new PizzariaDataContext())
                {
                    var subject  = "Seu Pedido esta a caminho!!!";
                    var body     = "Seu pedido, já foi preparado, e esta saindo para entrega!";
                    var pedidoDb = context.Pedidos.FirstOrDefault(x => x.PedidoId == model.PedidoId);
                    pedidoDb = context.Pedidos.FirstOrDefault(x => x.Id == model.Id);

                    var email     = model.entrega.Email;
                    var isCreated = false;

                    pedidoDb.Status       = true;
                    isCreated             = true;
                    pedidoDb.DataInclusao = DateTime.Now;

                    context.Entry(pedidoDb).State = EntityState.Modified;
                    context.SaveChanges();
                    EmailController.Execute(email, body, subject).Wait();
                    if (isCreated)
                    {
                        return(Created($"{Request.RequestUri.ToString()}/{pedidoDb.PedidoId}", pedidoDb));
                    }

                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Post(Cliente model)
        {
            try
            {
                using (PizzariaDataContext context = new PizzariaDataContext())
                {
                    var clienteDb = context.Clientes.FirstOrDefault(x => x.Telefone == model.Telefone);
                    var isCreated = false;

                    if (clienteDb == null)
                    {
                        model.Id               = context.Clientes.OrderByDescending(x => x.Id).First().Id + 1;
                        model.ClienteId        = context.Clientes.OrderByDescending(x => x.ClienteId).First().ClienteId + 1;
                        clienteDb              = context.Clientes.Add(model);
                        isCreated              = true;
                        clienteDb.DataInclusao = DateTime.Now;
                        clienteDb.UltimaCompra = clienteDb.DataInclusao;
                    }
                    else
                    {
                        clienteDb.DataAlteracao = DateTime.Now;
                        clienteDb.UltimaCompra  = DateTime.Now;
                    }

                    context.SaveChanges();

                    if (isCreated)
                    {
                        return(Created($"{Request.RequestUri.ToString()}/{clienteDb.ClienteId}", clienteDb));
                    }

                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Post(Pedido model)
        {
            try
            {
                using (PizzariaDataContext context = new PizzariaDataContext())
                {
                    var subject = "Seu Pedido foi Confirmado!!!";
                    var body    = "Seu pedido, foi recebido e já será preparado por nossos chefs!";

                    var clienteDb = context.Clientes.FirstOrDefault(x => x.Telefone == model.entrega.Telefone);
                    var pedidoDb  = context.Pedidos.FirstOrDefault(x => x.PedidoId != model.PedidoId);
                    model.cliente = clienteDb;
                    var email = model.entrega.Email;

                    var isCreated = false;

                    model.Id                = context.Pedidos.OrderByDescending(x => x.Id).First().Id + 1;
                    model.PedidoId          = context.Pedidos.OrderByDescending(x => x.PedidoId).First().PedidoId + 1;
                    model.cliente.ClienteId = context.Clientes.OrderByDescending(x => x.ClienteId).First().ClienteId + 1;

                    pedidoDb              = context.Pedidos.Add(model);
                    isCreated             = true;
                    pedidoDb.DataInclusao = DateTime.Now;

                    context.SaveChanges();
                    EmailController.Execute(email, body, subject).Wait();
                    if (isCreated)
                    {
                        return(Created($"{Request.RequestUri.ToString()}/{pedidoDb.PedidoId}", pedidoDb));
                    }

                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }