public void CreateSalida(RegistroParqueo parqueo) { try { var parqueoResultado = _crudParqueo.Retrieve <RegistroParqueo>(parqueo); if (parqueoResultado == null) { throw new BusinessException(402); } var configuracionResult = _crudConfiguracion.Retrieve <ConfiguracionTerminal>(new ConfiguracionTerminal { TerminalId = parqueo.TerminalId }); parqueo.HoraInicio = parqueoResultado.HoraInicio; parqueo.HoraFin = DateTime.Now; parqueo.TerminalId = parqueo.TerminalId; var cantidadDeHoras = parqueo.HoraFin - parqueoResultado.HoraInicio; if (cantidadDeHoras.Hours < 24) { parqueo.CostoTotal = cantidadDeHoras.Hours * Convert.ToInt32(configuracionResult.CostoParqueoHora); } if (cantidadDeHoras.Hours < 1) { parqueo.CostoTotal = Convert.ToInt32(configuracionResult.CostoParqueoHora); } else if (cantidadDeHoras.Days > 1) { parqueo.CostoTotal = cantidadDeHoras.Days * Convert.ToInt32(configuracionResult.CostoParqueoDia); } else if (cantidadDeHoras.Days == 1) { parqueo.CostoTotal = Convert.ToInt32(configuracionResult.CostoParqueoDia); } _crudParqueo.Update(parqueo); var transactionManager = new TransactionManager(); transactionManager.CreateUserTransaction(new Transaccion { CardUniqueCode = parqueo.TarjetaId, Charge = parqueo.CostoTotal, Description = "Pago de Parqueo Público", Type = "Cobro", Status = "Activo", Terminal = new Terminal { Id = parqueo.TerminalId } }); } catch (Exception ex) { ExceptionManager.GetInstance().Process(ex); } }
public BaseEntity BuildObject(Dictionary <string, object> row) { var parqueo = new RegistroParqueo { EspaciosDisponibles = GetIntValue(row, DB_COL_ESPACIOS_DISPONIBLES) }; return(parqueo); }
public BaseEntity BuildCompleteObject(Dictionary <string, object> row) { var parqueo = new RegistroParqueo { RegistroId = GetIntValue(row, DB_COL_REGISTRO_ID), TerminalId = GetIntValue(row, DB_COL_TERMINAL_ID), CostoTotal = GetIntValue(row, DB_COL_COSTO_TOTAL), HoraInicio = GetDateValue(row, DB_COL_HORA_INICIO), HoraFin = GetDateValue(row, DB_COL_HORA_FINAL), TarjetaId = GetStringValue(row, DB_COL_TARJETA_ID) }; return(parqueo); }
//[ClaimsAuthorization(ClaimType = "action", ClaimValue = "role-registrarSalida")] public IHttpActionResult RegistrarSalida(RegistroParqueo registro) { try { var manager = new ParqueoPublicoManager(); manager.CreateSalida(registro); _apiResponse.Message = "Salida al parqueo registrado"; return(Ok(_apiResponse)); } catch (BusinessException bex) { return(InternalServerError(new Exception(bex.ExceptionId + "-" + bex.AppMessage.Message))); } }
public RegistroParqueo RetrieveByTarjetaId(int terminal, string tarjeta) { var parqueo = new RegistroParqueo(); var parqueoResult = _crudParqueo.Retrieve <RegistroParqueo>(new RegistroParqueo { TarjetaId = tarjeta }); parqueo.TerminalId = terminal; parqueo.TarjetaId = tarjeta; parqueo.EspaciosDisponibles = parqueoResult.EspaciosDisponibles; parqueo.HoraInicio = parqueoResult.HoraInicio; parqueo.HoraFin = parqueoResult.HoraFin; parqueo.CostoTotal = parqueoResult.CostoTotal; return(parqueo); }
public void CreateIngreso(RegistroParqueo parqueo) { try { var tarjeta = _crudTarjeta.Retrieve <Tarjeta>(new Tarjeta { CodigoUnico = parqueo.TarjetaId }); if (tarjeta == null || tarjeta.EstadoTarjeta.EstadoTarjetaId > 1) { throw new BusinessException(407); } else if (tarjeta.Terminal.Id != parqueo.TerminalId) { throw new BusinessException(408); } var parqueoResultado = _crudParqueo.RetrieveEspaciosDisponibles <RegistroParqueo>(parqueo); if (parqueoResultado.EspaciosDisponibles <= 0) { throw new BusinessException(401); } parqueoResultado = _crudParqueo.Retrieve <RegistroParqueo>(parqueo); if (parqueoResultado != null) { throw new BusinessException(406); } parqueo.HoraInicio = DateTime.Now; _crudParqueo.Create(parqueo); } catch (Exception ex) { ExceptionManager.GetInstance().Process(ex); } }
public RegistroParqueo RetrieveByTerminalId(int terminal) { var parqueo = new RegistroParqueo(); var terminalResult = _crudTerminal.Retrieve <Terminal>(new Terminal { Id = terminal }); var configuracionResult = _crudConfiguracion.Retrieve <ConfiguracionTerminal>(new ConfiguracionTerminal { TerminalId = terminal }); var parqueoResult = _crudParqueo.RetrieveEspaciosDisponibles <RegistroParqueo>(new RegistroParqueo { TerminalId = terminal }); parqueo.TerminalId = terminal; parqueo.CostoParqueoDia = string.Format("¢{0}", configuracionResult.CostoParqueoDia.ToString("N2")); parqueo.CostoParqueoHora = string.Format("¢{0}", configuracionResult.CostoParqueoHora.ToString("N2")); parqueo.EspaciosTotales = terminalResult.EspaciosParqueo; parqueo.EspaciosDisponibles = parqueoResult.EspaciosDisponibles; return(parqueo); }