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); }
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); }
//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); } } }
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); }