public IHttpActionResult GetId(int id) { try { BLPaquete bl = new BLPaquete(); SPaquete p = bl.getPaquete(id); string rolToken = TokenInfo.getClaim(Request, "role"); if (rolToken == "Cliente") { string emailToken = TokenInfo.getClaim(Request, "email"); BLCliente blc = new BLCliente(); SCliente c = blc.getClienteByEmail(emailToken); if (p.IdDestinatario == c.Id || p.IdRemitente == c.Id) { return(Ok(p)); } else { throw new ECompartida("Alto ahi maleante! No tienes acceso a esta informacion"); } } else { return(Ok(p)); } } catch (Exception e) { return(Content(HttpStatusCode.InternalServerError, e.Message)); } }
public SPaquete addPaquete(SPaquete a) { try { if (new BLTrayecto().validarTrayecto((int)a.IdTrayecto)) { a.Id = 0; a.FechaIngreso = DateTime.Now; a.FechaEntrega = DateTime.Now; a.CodigoConfirmacion = Randoms.RandomString(6); a.Codigo = ""; a.Borrado = false; //a.ListaPaquetePuntoControl = null; SPaquete p = _dal.addPaquete(a); if (p != null) { QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(p.Id.ToString(), QRCodeGenerator.ECCLevel.Q); Base64QRCode qrCode = new Base64QRCode(qrCodeData); p.Codigo = qrCode.GetGraphic(20); SPaquete pr = _dal.updatePaquete(p); BLEmail.nuevoPaquete(pr); return(pr); } throw new ECompartida("Algun error raro en a;adir el paquete"); } throw new ECompartida("El trayecto no cumple con las condiciones necesarias, reviselo y vuelva a intentarlo"); } catch (Exception) { throw; } }
public SPaquete updatePaquete(SPaquete a) { try { return(_dal.updatePaquete(a)); } catch (Exception) { throw; } }
public IHttpActionResult updatePaquete(SPaquete a) { try { BLPaquete bl = new BLPaquete(); return(Ok(bl.updatePaquete(a))); } catch (Exception e) { return(Content(HttpStatusCode.InternalServerError, e.Message)); } }
public SPaquetePuntoControl entregaCliente(SPaquetePuntoControl ppc, string codigo) { try { SPaquete p = _dal.getPaquete(ppc.IdPaquete); if (p.CodigoConfirmacion == codigo) { var _dalPPC = new DALPaquetePuntoControl(); var _dalPC = new DALPuntoControl(); var _dalT = new DALTrayecto(); ppc.FechaLlegada = DateTime.Now; ppc.Borrado = false; var pclist = _dalPC.puntosControlDeUnTrayecto((int)p.IdTrayecto); ppc.IdPuntoControl = pclist.Max(x => (int)x.Id); List <SPaquetePuntoControl> ppcList = _dalPPC.getAllByPaquete((int)p.Id); ppcList.ForEach(x => { if (x.IdPuntoControl == ppc.IdPuntoControl) { throw new ECompartida("El paquete ya fue entregado al cliente anteriormente"); } }); if (ppcList.Count != (pclist.Count - 1)) { throw new ECompartida("Aun falta avanzar pasos antes de poder entregar al cliente"); } int tiempoEstimado = 0; pclist.ForEach(x => { if (x.Orden <= pclist.First(z => z.Id == ppc.IdPuntoControl).Orden) { tiempoEstimado += x.Tiempo; } }); int tiempoViaje = (p.FechaIngreso - ppc.FechaLlegada).Seconds; if ((tiempoViaje <= tiempoEstimado)) { ppc.Retraso -= (tiempoEstimado - tiempoViaje); } else { ppc.Retraso += (tiempoViaje - tiempoEstimado); } return(_dalPPC.addPaquetePuntoControl(ppc)); } throw new ECompartida("El codigo no coincide con el paquete"); } catch (Exception) { throw; } }
public Paquete entidadAModelo(SPaquete p, Paquete pa) { //pa.id = p.Id; pa.idDestinatario = p.IdDestinatario; pa.idRemitente = p.IdRemitente; pa.IdTrayecto = p.IdTrayecto; pa.codigo = p.Codigo; pa.codigoConfirmacion = p.CodigoConfirmacion; pa.fechaIngreso = p.FechaIngreso; pa.fechaEntrega = p.FechaEntrega; pa.borrado = p.Borrado; return(pa); }
public Paquete entidadAModelo(SPaquete p) { Paquete paquete = new Paquete() { id = (int)p.Id, idDestinatario = p.IdDestinatario, idRemitente = p.IdRemitente, IdTrayecto = p.IdTrayecto, codigo = p.Codigo, codigoConfirmacion = p.CodigoConfirmacion, fechaIngreso = p.FechaIngreso, fechaEntrega = p.FechaEntrega, borrado = p.Borrado }; return(paquete); }
static public string actualizacionEstado(SPaquete paquete) //blpaquete linea 133, 176 { try { var client = new RestClient("https://api.sendinblue.com/v3/smtp/email"); var request = setRequest("post"); BLTrayecto _blT = new BLTrayecto(); BLPaquete _blP = new BLPaquete(); var dp = _blP.detallesPaquete("", "Admin", (int)paquete.Id); DateTime tiempoEstimado = DateTime.Now; string paquetePuntoControl = ""; SPaquetePuntoControl ppcActual = new SPaquetePuntoControl() { Id = 0 }; foreach (var item in dp.PaquetePuntoControl) { if (item.Id > ppcActual.Id) { ppcActual = item; } } foreach (var item in dp.Trayecto.ListaPuntosControl) { if (item.Id > ppcActual.Id) { tiempoEstimado = tiempoEstimado.AddSeconds(item.Tiempo); } if (item.Id == ppcActual.IdPuntoControl) { paquetePuntoControl += "||" + item.Nombre + " / Tu paquete se encuentra aquí actualmente || - "; } else { paquetePuntoControl += item.Nombre + " - "; } } request.AddParameter("application/json", "{\"sender\":{\"email\":\"[email protected]\"},\"to\":[{\"email\":\"" + dp.Destinatario.Email + "\"}],\"replyTo\":{\"email\":\"[email protected]\"},\"templateId\":3,\"params\":{\"remitenteNombre\":\"" + dp.Remitente.NombreCompleto + "\",\"remitenteEmail\":\"" + dp.Remitente.Email + "\",\"remitenteTelefono\":\"" + dp.Remitente.Telefono + "\",\"codigoEntrega\":\"" + paquete.CodigoConfirmacion + "\",\"puntoControlPaquete\":\"" + paquetePuntoControl + "\",\"fechaEntregaEstimada\":\"" + tiempoEstimado.ToString() + "\"}}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); return(response.Content); } catch (Exception) { throw; } }
public SPaquete updatePaquete(SPaquete a) { using (trackingFULLEntities en = new trackingFULLEntities()) { try { Paquete ag = en.Paquete.Find(a.Id); ag = _conv.entidadAModelo(a, ag); en.SaveChanges(); return(_conv.modeloAEntidad(ag)); } catch (Exception e) { throw; } } }
public string consultarEstado(string codigo, string email) { try { BLCliente _blC = new BLCliente(); SCliente c = _blC.getClienteByEmail(email); SPaquete p = _dal.consultaEstado(c.Id, codigo); if (p.FechaEntrega == p.FechaIngreso) { return("El paquete se encuentra en viaje actualmente, para mas detalles: " + Direcciones.Web + "paquete/details/" + p.Id); } return("El paquete ya fue entregado, para mas detalles: " + Direcciones.Web + "paquete/details/" + p.Id); } catch (Exception) { throw; } }
public IHttpActionResult retroceder(SPaquete es) { try { string email = TokenInfo.getClaim(Request, "email"); BLUsuario _blU = new BLUsuario(); SUsuario u = _blU.getUsuarioByEmail(email); BLPaquete bl = new BLPaquete(); return(Ok(bl.retroceder(new SPaquetePuntoControl() { IdPaquete = (int)es.Id, IdEmpleado = u.Id }))); } catch (Exception e) { return(Content(HttpStatusCode.InternalServerError, e.Message)); } }
public bool updateEnvioDomicilio(SDomicilio d, string email) { try { SPaquete p = getPaquete(d.IdPaquete); BLCliente _blC = new BLCliente(); SCliente c = _blC.getCliente((int)p.IdDestinatario); if (c.Email == email) { return(_dal.updateEnvioDomicilio(d)); } throw new ECompartida("No tienes permisos para realizar esta accion"); } catch (Exception) { throw; } }
public dynamic detallesPaquete(string email, string role, int idPaquete) { try { SPaquete paquete = this.getPaquete(idPaquete); BLCliente blCliente = new BLCliente(); if (role != "Admin") { SCliente cliente = blCliente.getClienteByEmail(email); if (cliente != null) { if (cliente.Id != paquete.IdDestinatario && cliente.Id != paquete.IdRemitente) { throw new ECompartida("No tienes acceso a la informacion de este paquete"); } } else { throw new ECompartida("El email enviado en la solicitud no pertenece a un cliente del sistema"); } } SCliente Remitente = blCliente.getCliente((int)paquete.IdRemitente); SCliente Destinatario = blCliente.getCliente((int)paquete.IdDestinatario); BLTrayecto bLTrayecto = new BLTrayecto(); STrayecto Trayecto = bLTrayecto.getTrayecto((int)paquete.IdTrayecto); BLPuntoControl bLPuntoControl = new BLPuntoControl(); Trayecto.ListaPuntosControl = bLPuntoControl.puntosControlDeUnTrayecto((int)paquete.IdTrayecto); BLPaquetePuntoControl bLPaquetePuntoControl = new BLPaquetePuntoControl(); List <SPaquetePuntoControl> PaquetePuntosControl = bLPaquetePuntoControl.puntosControlDeUnPaquete((int)paquete.Id); dynamic respuesta = new ExpandoObject(); respuesta.IdTrayecto = paquete.Id; respuesta.Qr = paquete.Codigo; respuesta.Trayecto = Trayecto; respuesta.Remitente = Remitente; respuesta.Destinatario = Destinatario; respuesta.PaquetePuntoControl = PaquetePuntosControl; return(respuesta); } catch (Exception) { throw; } }
public SPaquete addPaquete(SPaquete a) { using (trackingFULLEntities en = new trackingFULLEntities()) { try { Paquete ag = en.Paquete.Add(_conv.entidadAModelo(a)); en.SaveChanges(); SPaquete p = _conv.modeloAEntidad(ag); //en.Domicilio5.Add(new Domicilio5() { idPaquete = (int)p.Id, envio = false }); //en.SaveChanges(); return(p); } catch (Exception e) { throw; } } }
//PAQUETE public SPaquete modeloAEntidad(Paquete p) { if (p == null) { return(null); } SPaquete paquete = new SPaquete() { Id = p.id, IdDestinatario = (int)p.idDestinatario, IdRemitente = (int)p.idRemitente, IdTrayecto = (int)p.IdTrayecto, Codigo = p.codigo, CodigoConfirmacion = p.codigoConfirmacion, FechaIngreso = (DateTime)p.fechaIngreso, FechaEntrega = (DateTime)p.fechaEntrega, Borrado = (bool)p.borrado }; return(paquete); }
public IHttpActionResult Authenticate(SAEData d) { try { SUsuario usuario = d.usuario; SEATrayecto trayecto = d.trayecto; STrayecto ActualTrayecto = null; SAEPaquete p = d.paquete; BLCliente bl = new BLCliente(); BLUsuario blusuario = new BLUsuario(); SUsuario oUsuario = blusuario.login(usuario); BLPaquete blPaquete = new BLPaquete(); if (usuario == null) { return(Content(HttpStatusCode.Unauthorized, "El usuario no existe")); } else if (oUsuario.Rol != "Admin" && oUsuario.Rol != "Funcionario" && oUsuario.Rol != "Encargado") { return(Content(HttpStatusCode.Unauthorized, "El usuario no esta autorisado para usar elte servicio")); } if (p.adelanta != null) { if (p.Id == null) { return(Content(HttpStatusCode.Unauthorized, "Error en paquete, se intento adelantar pero no se recibio el identificador")); } else { return(Ok(blPaquete.avanzar(new SPaquetePuntoControl() { IdPaquete = (int)p.Id, IdEmpleado = oUsuario.Id }))); } } if (p.atrasa != null) { if (p.Id == null) { return(Content(HttpStatusCode.Unauthorized, "Error en paquete, se intento retroceder pero no se recibio el identificador")); } else { return(Ok(blPaquete.retroceder(new SPaquetePuntoControl() { IdPaquete = (int)p.Id, IdEmpleado = oUsuario.Id }))); } } if (p.entrega != null) { if (p.Id == null) { return(Content(HttpStatusCode.Unauthorized, "Error en paquete, se intento entregar pero no se recibio el identificador")); } else if (p.code == null) { return(Content(HttpStatusCode.Unauthorized, "Error en paquete, se intento entregar pero no se recibio el codigo")); } else { return(Ok(blPaquete.entregaCliente(new SPaquetePuntoControl() { IdEmpleado = oUsuario.Id, IdPaquete = (int)p.Id }, p.code))); } } STrayecto t = trayecto; if ((p.IdDestinatario == p.IdRemitente && p.IdRemitente != null) || (p.Remitente != null && p.Destinatario != null && p.Destinatario.NumeroDocumento == p.Remitente.NumeroDocumento)) { return(Content(HttpStatusCode.NotFound, "Error en el paquete, el destinatario no puede ser el remitente")); } string sMsg = p.validacion(); if (sMsg != "") { return(Content(HttpStatusCode.NotFound, sMsg)); } else { SCliente cActualDestinatario = null; SCliente cActualRemitente = null; if (p.IdDestinatario != null) { cActualDestinatario = bl.getCliente((int)p.IdDestinatario); } else { bl.validacion(p.Destinatario); } if (p.IdRemitente != null) { cActualRemitente = bl.getCliente((int)p.IdRemitente); } else { bl.validacion(p.Remitente); } if (cActualDestinatario == null && p.Destinatario == null) { return(Content(HttpStatusCode.NotFound, "Error en el paquete, el destinatario no existe en el sistema")); } if (cActualRemitente == null && p.Remitente == null) { return(Content(HttpStatusCode.NotFound, "Error en el paquete, el remitente no existe en el sistema")); } if (p.IdTrayecto != null && p.IdTrayecto != t.Id) { return(Content(HttpStatusCode.NotFound, "Error en el paquete, no pertenece al trayecto enviado")); } else if (trayecto == null && d.IdTrayecto == null) { return(Content(HttpStatusCode.NotFound, "Error en el trayecto, faltan los datos")); } else if (d.IdTrayecto != null) { BLTrayecto blTrayecto = new BLTrayecto(); ActualTrayecto = blTrayecto.getTrayecto((int)d.IdTrayecto); if (ActualTrayecto == null) { return(Content(HttpStatusCode.NotFound, "El trayecto no existe.")); } } else if (trayecto != null) { BLTrayecto blTrayecto = new BLTrayecto(); string sMsgTrayecto = trayecto.validasionCrearAgencias(); if (sMsgTrayecto != "") { return(Content(HttpStatusCode.NotFound, sMsgTrayecto)); } else if (trayecto.Id == null) { ActualTrayecto = blTrayecto.addTrayecto(creaAgencias(trayecto)); } else { if (blTrayecto.paquetesTransito(trayecto) != 0) { return(Content(HttpStatusCode.NotFound, "Hay paquetes en transito")); } else { ActualTrayecto = blTrayecto.updateTrayecto(creaAgencias(trayecto)); } } } if (p.IdTrayecto == null) { p.IdTrayecto = ActualTrayecto.Id; } if (p.Destinatario != null && cActualDestinatario != null) { cActualDestinatario = bl.updateCliente(p.Destinatario); } else if (p.Destinatario != null && cActualDestinatario == null) { p.Destinatario.Id = 0; cActualDestinatario = bl.addCliente(p.Destinatario); } if (p.Remitente != null && cActualRemitente != null) { cActualRemitente = bl.updateCliente(p.Remitente); } else if (p.Remitente != null && cActualRemitente == null) { p.Remitente.Id = 0; cActualRemitente = bl.addCliente(p.Remitente); } p.IdDestinatario = cActualDestinatario.Id; p.IdRemitente = cActualRemitente.Id; SPaquete np = null; if (p.Id == null) { np = blPaquete.addPaquete(p); } else { np = blPaquete.updatePaquete(p); } return(Ok(new SAERespuesta() { usuario = usuario, trayecto = t, paquete = np })); } } catch (Exception e) { return(Content(HttpStatusCode.InternalServerError, e.Message)); } }
public SPaquetePuntoControl avanzar(SPaquetePuntoControl ppc) { try { var _dalPPC = new DALPaquetePuntoControl(); var _dalPC = new DALPuntoControl(); var _dalT = new DALTrayecto(); SPaquete p = _dal.getPaquete(ppc.IdPaquete); if (p != null && p.Borrado == false) { STrayecto t = _dalT.getTrayecto((int)p.IdTrayecto); List <SPaquetePuntoControl> ppcList = _dalPPC.getAllByPaquete((int)p.Id); ppc.FechaLlegada = DateTime.Now; ppc.Borrado = false; if (ppcList.Count > 0) { if (t.ListaPuntosControl.Max(x => x.Orden) > ppcList.Max(y => t.ListaPuntosControl.First(z => z.Id == y.IdPuntoControl).Orden) + 1) { SPuntoControl pcActual = t.ListaPuntosControl.First(x => x.Orden == ppcList.Max(y => t.ListaPuntosControl.First(z => z.Id == y.IdPuntoControl).Orden) + 1); ppc.IdPuntoControl = (int)t.ListaPuntosControl.First(x => x.Orden == pcActual.Orden).Id; int tiempoEstimado = 0; t.ListaPuntosControl.ForEach(x => { if (x.Orden <= pcActual.Orden) { tiempoEstimado += x.Tiempo; } }); int tiempoViaje = (p.FechaIngreso - ppc.FechaLlegada).Seconds; if ((tiempoViaje <= tiempoEstimado)) { ppc.Retraso -= (tiempoEstimado - tiempoViaje); } else { ppc.Retraso += (tiempoViaje - tiempoEstimado); } BLEmail.actualizacionEstado(new BLPaquete().getPaquete(ppc.IdPaquete)); return(_dalPPC.addPaquetePuntoControl(ppc)); } else if (t.ListaPuntosControl.Max(x => x.Orden) == ppcList.Max(y => t.ListaPuntosControl.First(z => z.Id == y.IdPuntoControl).Orden) + 1) { throw new ECompartida("Solo queda el ultimo paso de entrega, para esto debe realizar la peticion correspondiente enviando el codigo proporcionado por el cliente"); } else { throw new ECompartida("El paquete ya llego a su punto final, no se puede avanzar mas"); } } else { ppc.IdPuntoControl = (int)t.ListaPuntosControl.First(x => x.Orden == 1).Id; return(_dalPPC.addPaquetePuntoControl(ppc)); } } throw new ECompartida("Error"); } catch (Exception) { throw; } }