Beispiel #1
0
        //SE MUESTRA LA INFORMACION QUE HA PEDIDO EL USUARIO
        private static async void BotOnCallbackQueryReceived(object sender, CallbackQueryEventArgs callbackQueryEventArgs)
        {
            //var message = messageEventArgs.Message;
            var callbackQuery = callbackQueryEventArgs.CallbackQuery;

            switch (callbackQuery.Data.Split(":")[0])
            {
            case "comercios":     //MUESTRA LA LISTA DE LOS COMERCIOS

                var             usuario        = Int32.Parse(callbackQuery.Data.Split(":")[1]);
                List <Comercio> listaComercios = new List <Comercio>();
                listaComercios = comercios.ObtenerTodoComercio();

                var Botcomercios = new InlineKeyboardButton[listaComercios.Count()][];
                int counter      = 0;
                foreach (var lista in listaComercios)
                {
                    var row = new[]
                    {
                        InlineKeyboardButton.WithCallbackData(text: lista.Nombre, callbackData: "sucursales:" + lista.Id + ":" + usuario)
                    };
                    Botcomercios[counter] = row;
                    counter++;
                }

                await Bot.SendTextMessageAsync(
                    chatId : callbackQuery.Message.Chat.Id,
                    text : "Lista de comercios:",
                    replyMarkup : new InlineKeyboardMarkup(Botcomercios));


                break;

            case "sucursales":

                var usuario_1 = Int32.Parse(callbackQuery.Data.Split(":")[2]);


                var sucursal = new Sucursal {
                    IdComercio = Int32.Parse(callbackQuery.Data.Split(":")[1])
                };

                List <Sucursal> listaSucursales = new List <Sucursal>();

                listaSucursales = sucursales.ObtenerTodoSucursal(sucursal);

                var Botsucursales = new InlineKeyboardButton[listaSucursales.Count()][];
                int iterable      = 0;
                foreach (var list in listaSucursales)
                {
                    var row = new[]
                    {
                        InlineKeyboardButton.WithCallbackData(text: list.Nombre, callbackData: "opcionesSucursales:" + usuario_1 + ":" + list.Id)
                    };
                    Botsucursales[iterable] = row;
                    iterable++;
                }

                await Bot.SendTextMessageAsync(
                    chatId : callbackQuery.Message.Chat.Id,
                    text : "Lista de sucursales:",
                    replyMarkup : new InlineKeyboardMarkup(Botsucursales));

                break;


            case "opcionesSucursales":

                var sucursalList = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData(
                            text: "Dirección",
                            callbackData: "direccion: " + Int32.Parse(callbackQuery.Data.Split(":")[2])),//lo que se manda al case
                        InlineKeyboardButton.WithCallbackData(
                            text: "Servicios",
                            callbackData: "servicios: " + Int32.Parse(callbackQuery.Data.Split(":")[1]) + ":" + Int32.Parse(callbackQuery.Data.Split(":")[2])),//lo que se manda al case
                    }
                });
                await Bot.SendTextMessageAsync(
                    chatId : callbackQuery.Message.Chat.Id,
                    text : "Opciones: ",
                    replyMarkup : sucursalList);


                break;

            case "direccion":

                var sucursalDireccion = new Sucursal {
                    Id = Int32.Parse(callbackQuery.Data.Split(":")[1])
                };
                Sucursal direccion = sucursales.ObtenerSucursal(sucursalDireccion);

                await Bot.SendLocationAsync(
                    chatId : callbackQuery.Message.Chat.Id,
                    latitude : float.Parse(direccion.Latitud),
                    longitude : float.Parse(direccion.Longitud)
                    );

                break;


            case "servicios":


                //var Id = Int32.Parse(callbackQuery.Data.Split(":")[1]);
                var usuario_2   = Int32.Parse(callbackQuery.Data.Split(":")[1]);
                var id_sucursal = Int32.Parse(callbackQuery.Data.Split(":")[2]);

                List <Item> listItem = new List <Item>();

                listItem = items.RetrieveAllBySucursal(id_sucursal);

                var BotItem = new InlineKeyboardButton[listItem.Count()][];
                int count1  = 0;
                foreach (var list in listItem)
                {
                    if (list.tipo.Equals("Servicio"))
                    {
                        var row = new[]
                        {
                            InlineKeyboardButton.WithCallbackData(text: list.nombre, callbackData: "itemOpciones:" + usuario_2 + ":" + list.id + ":" + id_sucursal)
                        };
                        BotItem[count1] = row;
                        count1++;
                    }
                    else if (listItem.Count().Equals(0))
                    {
                        var sucursalError = new InlineKeyboardMarkup(new[]
                        {
                            new []
                            {
                                InlineKeyboardButton.WithCallbackData(
                                    text: "Comercios",
                                    callbackData: "comercios: " + usuario_2),//lo que se manda al case
                            }
                        });
                        await Bot.SendTextMessageAsync(
                            chatId : callbackQuery.Message.Chat.Id,
                            text : "No se encontraron servicios, ingrese a un nuevo comercio: ",
                            replyMarkup : sucursalError);

                        return;
                    }
                    else if (list.tipo.Equals("Producto"))
                    {
                        var row = new[]
                        {
                            InlineKeyboardButton.WithCallbackData(text: list.nombre + "/No puede sacar citas de productos", callbackData: "comercios: " + usuario_2)
                        };
                        BotItem[count1] = row;
                        count1++;
                    }
                }
                await Bot.SendTextMessageAsync(
                    chatId : callbackQuery.Message.Chat.Id,
                    text : "Lista de servicios:",
                    replyMarkup : new InlineKeyboardMarkup(BotItem));


                break;

            case "itemOpciones":

                var opcionesItem = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData(
                            text: "Nueva Cita",
                            callbackData: "nuevaCita: " + Int32.Parse(callbackQuery.Data.Split(":")[1]) + ":" + Int32.Parse(callbackQuery.Data.Split(":")[2]) + ":" + Int32.Parse(callbackQuery.Data.Split(":")[3])),//lo que se manda al case, el id del item
                    }
                });
                await Bot.SendTextMessageAsync(
                    chatId : callbackQuery.Message.Chat.Id,
                    text : "Citas: ",
                    replyMarkup : opcionesItem);


                break;

            case "nuevaCita":

                var id_item    = Int32.Parse(callbackQuery.Data.Split(":")[2]);
                var idSucursal = Int32.Parse(callbackQuery.Data.Split(":")[3]);

                datosCitas[1] = id_item.ToString();
                datosCitas[3] = idSucursal.ToString();

                int id_usuario = Int32.Parse(callbackQuery.Data.Split(":")[1]);    //id del usuario pos 1


                if (id_usuario == 0)
                {
                    await Bot.SendTextMessageAsync(
                        chatId : callbackQuery.Message.Chat.Id,
                        text : "Debe iniciar sesión antes de sacar un cita, ingrese su correo electrónico y contraseña separados por una coma",
                        replyMarkup : new ForceReplyMarkup());
                }
                else
                {
                    List <EmpleadosXItem> empleados = new List <EmpleadosXItem>();

                    empleados = items.obtenerEmpleadosItem(id_item);

                    var BotEmpleado = new InlineKeyboardButton[empleados.Count()][];
                    int count3      = 0;
                    foreach (var list in empleados)
                    {
                        var nuevo_empleado = new Empleado {
                            id = list.id_empleado
                        };

                        Empleado nombre_empleado = empleado.RetrieveById(nuevo_empleado);

                        var usuario_empleado = new Usuario {
                            Id = nombre_empleado.id_usuario
                        };

                        Usuario usuarioMostrar = usuarios.RetrieveById(usuario_empleado);


                        var row = new[]
                        {
                            InlineKeyboardButton.WithCallbackData(text: usuarioMostrar.Nombre, callbackData: "datosCita:" + list.id_empleado + ":" + id_item + ":" + id_usuario + ":" + idSucursal)//mas el id del cliente ,mas el item
                        };
                        BotEmpleado[count3] = row;
                        count3++;

                        datosCitas[0] = list.id_empleado.ToString();

                        datosCitas[2] = id_usuario.ToString();
                    }

                    await Bot.SendTextMessageAsync(
                        chatId : callbackQuery.Message.Chat.Id,
                        text : "Empleados disponibles:",
                        replyMarkup : new InlineKeyboardMarkup(BotEmpleado));
                }

                break;

            case "datosCita":

                await Bot.SendTextMessageAsync(
                    chatId : callbackQuery.Message.Chat.Id,
                    text : "Ingrese la fecha, la hora de inicio, la hora de fin de la cita. Ejemplo: 2020-08-24,17:00:00,18:00:00",
                    replyMarkup : new ForceReplyMarkup());

                break;
            }
        }
Beispiel #2
0
        public List <Item> RetrieveAllBySucursal(int id_sucursal)
        {
            var cm = new ItemManagement();

            return(cm.RetrieveAllBySucursal(id_sucursal));
        }