Esempio n. 1
0
        public async Task TestLecturaTransaccionesUrlNotFound()
        {
            HelperLectura.UrlTransactions = "http://quiet-stone-2094.herokuapp.com/transactions.j";
            var lista = await HelperLectura.LecturaTransacciones();

            Assert.True(lista is null);
        }
Esempio n. 2
0
        public async Task TestLecturaTransaccionesUrl()
        {
            HelperLectura.UrlTransactions = "http://quiet-stone-2094.herokuapp.com/transactions.json";
            var lista = await HelperLectura.LecturaTransacciones();

            Assert.True(lista.Any());
        }
Esempio n. 3
0
        public async Task TestLecturaDivisasUrl()
        {
            HelperLectura.UrlRates = "http://quiet-stone-2094.herokuapp.com/rates.json";
            var lista = await HelperLectura.LecturaDivisas();

            Assert.Equal(6, lista.Count());
        }
Esempio n. 4
0
        public async Task TestObtenerTransaccionesProductoUrl()
        {
            HelperLectura.UrlTransactions = "http://quiet-stone-2094.herokuapp.com/transactions.json";
            var lista = await HelperLectura.LecturaTransacciones();

            var item          = lista.FirstOrDefault();
            var listaFiltrada = lista.Where(m => m.Sku.Equals(item.Sku));

            Assert.True(listaFiltrada.Any());
        }
Esempio n. 5
0
        public async Task <IActionResult> DameTransacciones(string sku)
        {
            Logger.LogDebug("'{0}' - Inicio", nameof(DameTransacciones));
            List <Transaccion> listaTransacciones = new List <Transaccion>();

            try
            {
                var jsonTransactions = await HelperLectura.LecturaTransacciones();

                if (jsonTransactions == null)
                {
                    using (var unitOfWork = new UnitOfWork(_context, _loggerD, _loggerT))
                    {
                        var datos = await unitOfWork.RepoTransaccion.DameListado();

                        Logger.LogInformation("Datos obtenidos correctamente");

                        return(Ok(datos));
                    }
                }

                using (var unitOfWork = new UnitOfWork(_context, _loggerD, _loggerT))
                {
                    var datos = await unitOfWork.RepoTransaccion.DameListado();

                    unitOfWork.RepoTransaccion.BorraListado(datos);
                    unitOfWork.Save();

                    unitOfWork.RepoTransaccion.GrabaListado(jsonTransactions);
                    unitOfWork.Save();

                    Logger.LogInformation("Las transacciones se han guardado correctamente");

                    return(Ok(jsonTransactions));
                }
            }
            catch (Exception ex)
            {
                Logger.LogCritical($"Ha ocurrido un error en '{nameof(DameTransacciones)}': {ex}");
            }
            return(BadRequest());
        }
Esempio n. 6
0
        public async Task <IActionResult> DameDivisas()
        {
            Logger.LogDebug("'{0}' - Inicio", nameof(DameDivisas));

            try
            {
                var jsonRates = await HelperLectura.LecturaDivisas();

                if (jsonRates == null)
                {
                    using (var unitOfWork = new UnitOfWork(_context, _loggerD, _loggerT))
                    {
                        var datos = await unitOfWork.RepoDivisa.DameListado();

                        Logger.LogInformation("Datos obtenidos correctamente");

                        return(Ok(datos));
                    }
                }

                using (var unitOfWork = new UnitOfWork(_context, _loggerD, _loggerT))
                {
                    var datos = await unitOfWork.RepoDivisa.DameListado();

                    unitOfWork.RepoDivisa.BorraListado(datos);
                    unitOfWork.Save();

                    List <string> monedas = new List <string> {
                        "EUR", "USD", "AUD", "CAD"
                    };
                    List <Divisa> listaDivisas            = jsonRates.ToList();
                    List <Divisa> listaBusquedaConversion = new List <Divisa>();
                    var           conversionDirecta       = false;

                    for (int i = 0; i < monedas.Count; i++)
                    {
                        conversionDirecta = false;
                        for (int k = 0; k < monedas.Count; k++)
                        {
                            if (monedas[i] != monedas[k])
                            {
                                conversionDirecta = listaDivisas.Where(m => m.From == monedas[i] && m.To == monedas[k]).ToList().Count == 1;
                                if (!conversionDirecta)
                                {
                                    listaDivisas.AddRange(HelperAlgoritmo.BuscarRecorridoDivisas(monedas[i], monedas[k], listaBusquedaConversion, listaDivisas));
                                }
                            }
                        }
                    }

                    unitOfWork.RepoDivisa.GrabaListado(listaDivisas);
                    unitOfWork.Save();

                    Logger.LogInformation("Las divisas se han guardado correctamente");

                    return(Ok(jsonRates));
                }
            }
            catch (Exception ex)
            {
                Logger.LogCritical($"Ha ocurrido un error en '{nameof(DameDivisas)}': {ex}");
            }
            return(BadRequest());
        }
Esempio n. 7
0
        public async Task <IActionResult> DameTransaccionesNombre(string sku)
        {
            Logger.LogDebug("'{0}' - Inicio", nameof(DameTransaccionesNombre));
            List <Transaccion> listaTransacciones = new List <Transaccion>();

            try
            {
                var jsonTransactions = await HelperLectura.LecturaTransacciones();

                if (jsonTransactions == null)
                {
                    using (var unitOfWork = new UnitOfWork(_context, _loggerD, _loggerT))
                    {
                        var datos = await unitOfWork.RepoTransaccion.DameListado();

                        if (!"".Equals(sku))
                        {
                            listaTransacciones = datos.ToList();
                            listaTransacciones = listaTransacciones.Where(m => m.Sku == sku).ToList();
                            List <decimal> cantidades = HelperConversor.SumatorioTransacciones(listaTransacciones, sku);
                            //TODO Falta sacar las conversiones
                            var cantTotalEuros = HelperConversor.ConversionEuros(null, null, null, cantidades);
                        }

                        Logger.LogInformation("Datos obtenidos correctamente");
                        return(Ok(listaTransacciones));
                    }
                }

                using (var unitOfWork = new UnitOfWork(_context, _loggerD, _loggerT))
                {
                    var datos = await unitOfWork.RepoTransaccion.DameListado();

                    unitOfWork.RepoTransaccion.BorraListado(datos);
                    unitOfWork.Save();


                    unitOfWork.RepoTransaccion.GrabaListado(jsonTransactions);
                    unitOfWork.Save();

                    Logger.LogInformation("Las transacciones se han guardado correctamente");

                    listaTransacciones = jsonTransactions.ToList();

                    if (!"".Equals(sku))
                    {
                        listaTransacciones = listaTransacciones.Where(m => m.Sku == sku).ToList();
                        List <decimal> cantidades = HelperConversor.SumatorioTransacciones(listaTransacciones, sku);
                        //TODO Falta sacar las conversiones
                        var cantTotalEuros = HelperConversor.ConversionEuros(null, null, null, cantidades);
                    }

                    return(Ok(listaTransacciones));
                }
            }
            catch (Exception ex)
            {
                Logger.LogCritical($"Ha ocurrido un error en '{nameof(DameTransaccionesNombre)}': {ex}");
            }
            return(BadRequest());
        }