Example #1
0
 public List <ColaModelo> ObtenerColasDeATencionACliente()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         return(db.Cola.Select(MapearAAplicacion).ToList());
     }
 }
Example #2
0
 public ClienteModelo ObtenerClienteModeloConMaxId()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         return(db.Cliente.Where(c => c.Id == db.Cliente.Max(m => m.Id))
                .Select(MapearAAplicacion).SingleOrDefault());
     }
 }
Example #3
0
 public void RegistrarCliente(ClienteModelo clienteModelo)
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         db.Cliente.Add(MapearABaseDeDatos(clienteModelo));
         db.SaveChanges();
     }
 }
Example #4
0
 public int ObtenerTiempoDeDuracionAtencion(int idCola)
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         return(db.Cola.Where(x => x.IdCola == idCola)
                .Select(x => x.TiempoDuracionAtencion).SingleOrDefault());
     }
 }
 public void AsignarClienteAUnaCola(ColaClienteModelo colaClienteModelo)
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         db.ColaCliente.Add(MapearABaseDeDatos(colaClienteModelo));
         db.SaveChanges();
     }
 }
 public int ObtenerIdColaConTiempoDuracionMininaEnAtencionAlCliente()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         return((from co in db.Cola
                 where co.TiempoDuracionAtencion == db.Cola.Min(c => c.TiempoDuracionAtencion)
                 select new { co.IdCola }).SingleOrDefault().IdCola);
     }
 }
 public int ObtenerIdColaAAsignarAlCliente()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         var idColaVacia            = ObtenerUnaColaVacia();
         int idColaMinimaDeClientes = ObtenerColaMinimaDeClientes();
         return(idColaVacia > 0 ? idColaVacia : idColaMinimaDeClientes > 0 ? idColaMinimaDeClientes : ObtenerIdColaConTiempoDuracionMininaEnAtencionAlCliente());
     }
 }
 public int ObtenerTotalDeNumerosDeClientesMinimoDeUnaCola()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         return
             (((from c in db.Cola
                join cc in db.ColaCliente on c.IdCola equals cc.IdCola into colaCliente
                from ccg in colaCliente.DefaultIfEmpty()
                group ccg by new { c.IdCola } into ccg
                let contarCliente = ccg.Sum(x => x != null ? 1 : 0)
                                    select new { ContarCliente = contarCliente })).Min(m => m.ContarCliente));
     }
 }
 public ActionResult AddCliente(ClienteModelo clienteModelo)
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         if (clienteModelo.Nombres != null)
         {
             _repositorioCliente.RegistrarCliente(clienteModelo);
             return(RedirectToAction("/AsignarClienteAUnaCola"));
         }
         else
         {
             return(View());
         }
     }
 }
 public int ObtenerUnaColaVacia()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         var colaAAsignar = (from co in db.Cola
                             join cc in db.ColaCliente on co.IdCola equals cc.IdCola into ccli
                             from cvg in ccli.DefaultIfEmpty()
                             group cvg by new { co.IdCola } into cvg
                             let contarCliente = cvg.Sum(cv => cv != null ? 1: 0)
                                                 where contarCliente == 0
                                                 orderby contarCliente ascending
                                                 select new { cvg.Key.IdCola }).ToList();
         return(colaAAsignar.Count() > 1 ? 0 : colaAAsignar.Count() != 0 ? colaAAsignar.SingleOrDefault().IdCola : 0);
     }
 }
 public List <ColaClienteModelo> AgruparClientesPorCola()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         return((from c in db.Cola
                 join cc in db.ColaCliente on c.IdCola equals cc.IdCola
                 join cli in db.Cliente on cc.IdCliente equals cli.Id
                 orderby c.IdCola, cc.IdCliente
                 where cc.EstadoAtencion == "N"
                 select new ColaClienteModelo
         {
             IdCliente = cc.IdCliente,
             IdCola = cc.IdCola,
             NombreCliente = cc.IdCliente + "-" + cli.Nombres,
             EstadoAtencion = cc.EstadoAtencion
         }).ToList());
     }
 }
 public int ObtenerColaMinimaDeClientes()
 {
     using (var db = new db_Tickek_AtencionClienteEntities())
     {
         int totalNumeroDeClienteMinimo = ObtenerTotalDeNumerosDeClientesMinimoDeUnaCola();
         if (totalNumeroDeClienteMinimo > 0)
         {
             var listaIdsConClienteMinimo = (from cm in db.Cola
                                             join ccm in db.ColaCliente on cm.IdCola equals ccm.IdCola into colaMinina
                                             from cmg in colaMinina.DefaultIfEmpty()
                                             group cmg by new { cmg.IdCola } into cmg
                                             let totalClientes = cmg.Sum(cli => cli != null ? 1 : 0)
                                                                 where totalClientes == totalNumeroDeClienteMinimo
                                                                 select new { IdCola = cmg.Key.IdCola });
             return(listaIdsConClienteMinimo.Count() > 1? 0:listaIdsConClienteMinimo.Select(x => x.IdCola).SingleOrDefault());
         }
         else
         {
             return(0);
         }
     }
 }