//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; } }
public List <Item> RetrieveAllBySucursal(int id_sucursal) { var cm = new ItemManagement(); return(cm.RetrieveAllBySucursal(id_sucursal)); }