예제 #1
0
        public async Task <bool> AddOP(int idUser, OpViewModel operacion)
        {
            bool state = false;

            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    var oPersona = db.personas.Where(x => x.idpersona == operacion.idPersona).FirstOrDefault();
                    oPersona.localidad       = operacion.localidad;
                    oPersona.calle           = operacion.calle;
                    oPersona.altura          = operacion.altura.ToString();
                    oPersona.piso            = operacion.piso.ToString();
                    oPersona.dpto            = operacion.dpto;
                    db.Entry(oPersona).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                    db.SaveChanges();

                    var      Op   = new cerrados();
                    DateTime hora = DateTime.Parse(operacion.hora);
                    Op.idpersona   = operacion.idPersona;
                    Op.idproducto  = 1;
                    Op.idusuario   = idUser;
                    Op.idstate     = 1;
                    Op.idargumento = 3;
                    Op.fechacierre = DateTime.Now.Date;
                    Op.fecha       = DateTime.Parse(operacion.fecha);
                    Op.hora        = TimeSpan.Parse(hora.ToString("HH:mm"));
                    Op.comentario  = operacion.comentario;

                    db.Add(Op);
                    db.SaveChanges();

                    await transaction.CommitAsync();

                    state = true;
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    state = false;
                }
            }

            return(state);
        }
예제 #2
0
        public string CreateToken(int IdUser)
        {
            string Token = "";

            try
            {
                var oUser = db.usuarios.Where(x => x.iduser == IdUser).FirstOrDefault();
                Token       = Guid.NewGuid().ToString();
                oUser.token = Token;



                db.Entry(oUser).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                Token = "";
            }
            return(Token);
        }
예제 #3
0
        //actualiza los datos de la llamada y la persona
        public async Task <bool> UpdateCall(ColaViewModel pllamada)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    var hoy = DateTime.Now.Date;

                    var llamada = db.llamados.Where(x => x.idllamado == pllamada.idLlamado).FirstOrDefault();
                    llamada.idstate   = pllamada.idState;
                    llamada.intentos += 1;
                    llamada.hora      = DateTime.Now.TimeOfDay;

                    db.Entry(llamada).State = Microsoft.EntityFrameworkCore.EntityState.Modified;

                    var persona = db.personas.Where(x => x.idpersona == pllamada.idPersona).FirstOrDefault();

                    if (pllamada.idState == 3 || pllamada.idState == 5)
                    {
                        persona.lastcall = hoy;
                    }
                    else if (pllamada.idState == 4)
                    {
                        persona.lastcall = hoy;
                        persona.lastcom  = hoy;
                    }

                    if (pllamada.noapto == true)
                    {
                        var apto = false;
                        persona.apto = apto;
                    }
                    else if (pllamada.noapto == false)
                    {
                        var apto = true;
                        persona.apto = apto;
                    }

                    if (pllamada.idState != 2)
                    {
                        if (persona.used == false)
                        {
                            persona.used = true;
                        }

                        persona.conformeos = pllamada.conformeos;
                        persona.aportes    = pllamada.aportes;
                    }


                    if (pllamada.cambioOS != null)
                    {
                        persona.cambioos = DateTime.Parse(pllamada.cambioOS);
                    }

                    db.Entry(persona).State = Microsoft.EntityFrameworkCore.EntityState.Modified;

                    db.SaveChanges();
                    await transaction.CommitAsync();

                    return(true);
                }

                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(false);
                }
            }
        }
예제 #4
0
파일: Call.cs 프로젝트: pminkevich/Repos
        public async Task <bool> GoToCall <T>(int idUser, T model)
        {
            bool state = false;
            //uso reflexion
            PropertyInfo personaid  = model.GetType().GetProperty("idPersona");
            PropertyInfo productoid = model.GetType().GetProperty("idProducto");

            int idPersona  = int.Parse(personaid.GetValue(model).ToString());
            int idProducto = int.Parse(productoid.GetValue(model).ToString());


            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    DateTime hoy      = DateTime.Now.Date;
                    var      enCola   = db.llamados.Where(x => x.fecha == hoy && x.idusuario == idUser && x.idpersona == idPersona);
                    var      llamando = db.llamados.Where(x => x.fecha == hoy && x.idusuario == idUser && x.callstate.valor == "llamando");


                    if (llamando.Count() > 0)
                    {
                        //paso el estado a  en cola

                        var llamandoahora = llamando.FirstOrDefault();
                        llamandoahora.idstate         = 1;
                        db.Entry(llamandoahora).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                        db.SaveChanges();
                    }

                    if (enCola.Count() > 0)
                    {
                        //cambio el estado a llamando
                        var llamadoencola = enCola.FirstOrDefault();
                        llamadoencola.idstate         = 2;
                        db.Entry(llamadoencola).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        //agrego el seguimiento a la cola de hoy
                        var newcall = new llamados();
                        newcall.idusuario   = idUser;
                        newcall.idpersona   = idPersona;  //seguimiento.idPersona;
                        newcall.idproducto  = idProducto; //seguimiento.idProducto;
                        newcall.idargumento = 3;
                        newcall.idstate     = 2;
                        newcall.fecha       = DateTime.Now;
                        newcall.hora        = DateTime.Now.TimeOfDay;
                        db.Add(newcall);
                        db.SaveChanges();
                    }

                    await transaction.CommitAsync();

                    state = true;
                }
                catch (Exception ex)
                {
                }
            }

            return(state);
        }