示例#1
0
    public void IniciarWatchComanda(bool ehParaAdicionar)
    {
        PnlSemComanda.SetActive(!ehParaAdicionar);
        PnlComComanda.SetActive(ehParaAdicionar);

        if (ehParaAdicionar)
        {
            this.ComandaId = Cliente.ClienteLogado.configClienteAtual.comanda;
        }

        string comandaIdAtual = (ehParaAdicionar) ? Cliente.ClienteLogado.configClienteAtual.comanda : this.ComandaId;

        ComandaFirebase.Watch(comandaIdAtual, ehParaAdicionar);

        if (ComandaValorTotalFirebase == null)
        {
            ComandaValorTotalFirebase = new GenericFirebase <double>($"comandas/{comandaIdAtual}/valorTotal")
            {
                Callback = (valorTotal) =>
                {
                    valorTotalComanda = valorTotal;
                    StartCoroutine(calcularTotaisComanda());
                }
            };
        }

        ComandaValorTotalFirebase.Watch(ehParaAdicionar);

        if (!ehParaAdicionar)
        {
            this.ComandaId            = string.Empty;
            ComandaValorTotalFirebase = null;
        }
    }
示例#2
0
    private void iniciarWatchsFirebase()
    {
        //inicia o watch na comanda do fire
        //comandaClienteFirebase = new GenericFirebase<string>($"clientes/{Cliente.ClienteLogado._id}/configClienteAtual/comanda")
        //{
        //    Callback = (data) =>
        //    {
        //        Cliente.ClienteLogado.configClienteAtual.comanda = data;
        //        Debug.Log("iniciarWatchsFirebase");
        //        bool temComanda = (string.IsNullOrEmpty(Cliente.ClienteLogado.configClienteAtual.comanda)) ? false : true;
        //        MenuComanda.IniciarWatchComanda(temComanda);
        //    }
        //};

        clienteConfigAtualFirebase = new GenericFirebase <Cliente.ConfigClienteAtual>($"clientes/{Cliente.ClienteLogado._id}/configClienteAtual")
        {
            Callback = (data) =>
            {
                if (data != null)
                {
                    Cliente.ClienteLogado.configClienteAtual = data;

                    ClienteEstaNoEstabelecimento();
                }
            }
        };

        clienteAvatarInfoFirebase = new GenericFirebase <Cliente.AvatarInfo>($"clientes/{Cliente.ClienteLogado._id}/avatar/info")
        {
            Callback = (data) =>
            {
                bool upouLevel = data.level > Cliente.ClienteLogado.avatar.info.level;

                Cliente.ClienteLogado.avatar.info = data;
                if (upouLevel)
                {
                    AppManager.Instance.AtivarLevelUp();
                }

                atualizarExp();
                PreencherInfoLevel.Invoke();
            }
        };

        clieteGoldFirebase = new ClienteFirebase()
        {
            AcaoGoldPorEstabelecimento = (goldEstab, tipoAcao) =>
            {
                if (tipoAcao == ClienteFirebase.TipoAcao.Adicionar)
                {
                    Cliente.ClienteLogado.goldPorEstabelecimento.Add(goldEstab);
                    return;
                }

                int indexGold = Cliente.ClienteLogado.goldPorEstabelecimento.FindIndex(x => x.estabelecimento == goldEstab.estabelecimento);

                if (tipoAcao == ClienteFirebase.TipoAcao.Modificar)
                {
                    Cliente.ClienteLogado.goldPorEstabelecimento.RemoveAt(indexGold);
                    Cliente.ClienteLogado.goldPorEstabelecimento.Add(goldEstab);
                    MenuEstabelecimento.AtualizarInfoGold(goldEstab.estabelecimento);
                }

                if (tipoAcao == ClienteFirebase.TipoAcao.Remover)
                {
                    Cliente.ClienteLogado.goldPorEstabelecimento.RemoveAt(indexGold);
                }
            }
        };

        clienteConfigAtualFirebase.Watch(true);
        clienteAvatarInfoFirebase.Watch(true);
        clieteGoldFirebase.WatchGoldPorEstab(Cliente.ClienteLogado._id, true);
    }