public void Create(Queja queja) { try { _crudQueja.Create(queja); var configManager = new ConfiguracionManager(); var empresaManager = new EmpresaManager(); var sancionManager = new SancionManager(); var rutaManager = new RutaManager(); var ruta = new Ruta(); var empresa = new Empresa(); var configuracionTerminal = new ConfiguracionTerminal(); //Obtengo la empresa a la que se le agregó la queja ruta.Id = queja.Ruta; empresa = empresaManager.RetrieveEmpresaByRuta(ruta); //Obtengo el Id de la terminal ruta = rutaManager.Retrieve(ruta); var terminalId = ruta.TerminalId; //Obtengo la configuración de terminal configuracionTerminal = configManager.RetrieveConfiguracionTerminal(terminalId); //Obtengo la cantidad de quejas para una sanción var cantidadSancion = configuracionTerminal.CantidadQuejasSancion; //Obtengo la cantidad de quejas hechas a una ruta var cantidadQuejas = _crudQueja.RetriveQuejasActivasByRutaStatement <Queja>(queja.Ruta).Count; //Valido si hay quejas suficientes para una sanción if (cantidadSancion <= cantidadQuejas) { var sancion = new Sancion(); sancion.Descripcion = "Sanción generada automaticamente por el sistema"; sancion.Multa = 3000; sancion.Estado = "Activo"; sancion.TerminalId = ruta.TerminalId; sancion.Fecha = DateTime.Now; sancion.Suspencion = "Activo"; sancion.FechaReactivacion = DateTime.Now.AddDays(7); sancion.Empresa = empresa.CedulaJuridica; sancionManager.Create(sancion); } } catch (Exception ex) { ExceptionManager.GetInstance().Process(ex); } }
public void UpdatePassword(Usuario usuario, bool expired = false) { try { var userDb = _crudUsuario.RetrieveAuth <Usuario>(usuario); if (userDb == null) { throw new BusinessException(204); } var mngConfig = new ConfiguracionManager(); var config = mngConfig.RetrieveConfiguracion(); // Validate password length if (usuario.Password.Length < config.CantCaracteresContrasena) { throw new BusinessException(206); } usuario.PasswordSalt = userDb.PasswordSalt; usuario.PasswordHash = GenerateHash(usuario.Password, usuario.PasswordSalt); usuario.PasswordLastSet = DateTime.Now; // Validate password has not been used before. var newPassword = new HistorialContrasena { Fecha = usuario.PasswordLastSet, Email = usuario.Email, PasswordHash = usuario.PasswordHash, Count = config.CantContrasenasAnteriores }; var historial = _crudContrasena.Retrieve <HistorialContrasena>(newPassword); if (historial != null) { throw new BusinessException(205); } _crudUsuario.UpdatePassword(usuario); // Record password has in history _crudContrasena.Create(newPassword); //Clean up password history _crudContrasena.Delete(newPassword); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } }
public void Create(int empresaId) { try { var pagosResalizados = ObtenerPagosPorEmpresa(empresaId); var pagoCreado = false; pagosResalizados.ForEach(p => { var mes = DateTime.Parse(p.Fecha); var now = DateTime.Now; if (mes.Month == now.Month) { pagoCreado = true; } }); if (pagoCreado) { return; } var lineaManager = new LineaManager(); var configuracionTerminal = new ConfiguracionManager(); var lineas = lineaManager.GetAllLines(0, empresaId); var pagos = new List <PagoPendiente>(); lineas.ForEach(l => { var termialConfig = configuracionTerminal.RetrieveConfiguracionTerminal(l.Terminal.Id); pagos.Add(new PagoPendiente { LineaId = l.LineaId, EmpresaId = l.Empresa.CedulaJuridica, Monto = Convert.ToInt32(l.EspaciosParqueo * termialConfig.CostoParqueoBusMes) }); }); pagos.ForEach(p => _crudFactory.Create(p)); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } }
public Usuario ValidateUser(Usuario usuario) { Usuario usuarioDb = null; try { usuarioDb = _crudUsuario.RetrieveAuth <Usuario>(usuario); if (usuarioDb == null) // Does not exist { throw new BusinessException(208); } if (!usuarioDb.Estado.Equals("Activo")) // Not Active { throw new BusinessException(211); } var mngConfig = new ConfiguracionManager(); var config = mngConfig.RetrieveConfiguracion(); if (usuarioDb.PasswordLastSet.AddDays(config.DiasExpiracionContrasena) < DateTime.Today) { throw new BusinessException(209); //Expired password } usuario.PasswordHash = GenerateHash(usuario.Password, usuarioDb.PasswordSalt); if (!usuario.PasswordHash.Equals(usuarioDb.PasswordHash)) // Wrong password { throw new BusinessException(208); } // clean the object usuarioDb.PasswordHash = null; usuarioDb.PasswordSalt = null; usuarioDb.ResetToken = null; } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } return(usuarioDb); // Ok }
public void Create(Terminal terminal) { try { var t = _crudTerminal.RetrieveByName <Terminal>(terminal); if (t != null) { //Terminal ya existe throw new BusinessException(100); } _crudTerminal.Create(terminal); t = _crudTerminal.RetrieveByName <Terminal>(terminal); var configManager = new ConfiguracionManager(); configManager.CreateConfiguracionTerminal(t.Id); } catch (Exception ex) { ExceptionManager.GetInstance().Process(ex); } }
public void Create(Tarjeta card) { try { var getCarsd = GeTarjetaByUniquecode(card.CodigoUnico); if (getCarsd != null) { throw new BusinessException(300); } var config = new ConfiguracionManager(); card.EstadoTarjeta = new EstadoTarjeta { EstadoTarjetaId = 1 }; var terminalConfig = config.RetrieveConfiguracionTerminal(card.Terminal.Id); card.SaldoDisponible = Convert.ToInt32(terminalConfig.MontoInicialTarjeta); var transactionManager = new TransactionManager(); _crudFactory.Create(card); transactionManager.CreateFirstTransaction(new Transaccion { CardUniqueCode = card.CodigoUnico, Charge = Convert.ToInt32(card.SaldoDisponible), Description = "Monto Inicial " + card.NombreTarjeta, Type = "Venta Tarjeta", Status = "Activo", Terminal = card.Terminal }); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } }
public Usuario Retrieve(Usuario usuario) { Usuario usuarioDb = null; try { usuarioDb = _crudUsuario.Retrieve <Usuario>(usuario); if (usuarioDb == null) { throw new BusinessException(204); } var mngConfig = new ConfiguracionManager(); var config = mngConfig.RetrieveConfiguracion(); usuarioDb.PasswordExpiration = usuarioDb.PasswordLastSet.AddDays(config.DiasExpiracionContrasena); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } return(usuarioDb); }
public void RegistrarSalida(Recorrido recorrido) { try { var recorridoDb = _crudRecorrido.Retrieve <Recorrido>(recorrido); if (recorridoDb == null) //No existe { throw new BusinessException(217); } if (ListaRecorridosActuales.FirstOrDefault(r => r.RecorridoId == recorridoDb.RecorridoId) != null || recorridoDb.HoraSalida != DateTime.MinValue) //Ya salio { throw new BusinessException(220); } recorridoDb.HoraSalida = DateTime.Now; var ruta = _crudRuta.Retrieve <Ruta>(new Ruta { Id = recorridoDb.RutaId }); var terminal = _crudTerminal.Retrieve <Terminal>(new Terminal { Id = ruta.TerminalId }); var time = DateTime.Now.TimeOfDay; var tardia = time - recorridoDb.Horario; var configManager = new ConfiguracionManager(); var configuracionTerminal = configManager.RetrieveConfiguracionTerminal(ruta.TerminalId); if (tardia.Minutes > configuracionTerminal.CantidadMinutosTardia) // More than 15 minutes late. { recorridoDb.MinutosTarde = tardia.Minutes; if (_crudRecorrido.RetrieveTardias <Recorrido>().Count >= configuracionTerminal.CantidadTardiasSancion) { var sancionManager = new SancionManager(); var linea = _crudLinea.Retrieve <Linea>(new Linea { LineaId = ruta.LineaId }); var sancion = new Sancion { Descripcion = "Sanción por mas de " + configuracionTerminal.CantidadTardiasSancion + " tardias en el mes.", Multa = 5000, Estado = "Activo", TerminalId = ruta.TerminalId, Fecha = DateTime.Now, Suspencion = "Inactivo", FechaReactivacion = DateTime.Now.AddDays(20), Empresa = linea.Empresa.CedulaJuridica }; sancionManager.Create(sancion); } } _crudRecorrido.UpdateSalida(recorridoDb); recorridoDb.Posicion = new Posicion { RecorridoId = recorridoDb.RecorridoId, Latitude = terminal.Latitude, Longitude = terminal.Longitude, TimeStamp = DateTime.Now }; ListaRecorridosActuales.Add(recorridoDb); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } }