Exemple #1
0
        public async Task <ActionResult> LastAnnualizedSelic252()
        {
            try
            {
                Selic selic = collectorService.Get_Selic_Last_Annualized_252();

                if (selic == null)
                {
                    HttpClient request     = new HttpClientBuilder().Build();
                    var        responseBCB = await request.GetAsync(Links.GetLink(Link.SELIC_ANUALIZADA_BASE_252_LAST_VALUE));

                    var statusCode = responseBCB.StatusCode;
                    if (statusCode != System.Net.HttpStatusCode.OK)
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                    }

                    selic = JsonConvert.DeserializeObject <List <Selic> >(JToken.Parse(responseBCB.Content.ReadAsStringAsync().Result).ToString())[0];

                    collectorService.Set_Selic_Last_Annualized_252(selic);
                }
                return(Ok(JsonConvert.SerializeObject(selic)));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Exemple #2
0
        public async Task <ActionResult> GetSelic()
        {
            try
            {
                List <Selic> list = collectorService.Get_Selic_Last_12_Periods();

                if (list == null)
                {
                    //Debug.WriteLine($"{Links.GetLink(Link.SELIC_LAST_12_PERIODS)}");

                    HttpClient request       = new HttpClientBuilder().Build();
                    var        responseBCAPI = await request.GetAsync(Links.GetLink(Link.SELIC_LAST_12_PERIODS));

                    var statusCode = responseBCAPI.StatusCode;

                    if (statusCode != System.Net.HttpStatusCode.OK)
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                    }

                    //Debug.WriteLine($"{JsonConvert.SerializeObject(responseBCAPI.Content.ReadAsStringAsync().Result)}");

                    list = JsonConvert.DeserializeObject <List <Selic> >(JToken.Parse(responseBCAPI.Content.ReadAsStringAsync().Result).ToString());

                    collectorService.Set_Selic_last_12_periods(list);
                }

                return(Ok(JsonConvert.SerializeObject(list)));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Exemple #3
0
        public async Task <ActionResult> LastAnnualAvarageIPCA()
        {
            try
            {
                Ipca ipca = collectorService.Get_Ipca_Annual_Average_Last_Period();

                if (ipca == null)
                {
                    HttpClient request      = new HttpClientBuilder().Build();
                    var        responseIBGE = await request.GetAsync(Links.GetLink(Link.IPCA_ANNUAL_AVERAGE_LAST_PERIOD));

                    var statusCode = responseIBGE.StatusCode;
                    if (statusCode != System.Net.HttpStatusCode.OK)
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                    }

                    ipca = JsonConvert.DeserializeObject <List <Ipca> >(JToken.Parse(responseIBGE.Content.ReadAsStringAsync().Result).ToString())[1];

                    collectorService.Set_Ipca_Annual_Average_Last_Period(ipca);
                }

                return(Ok(JsonConvert.SerializeObject(ipca)));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Exemple #4
0
        public async Task <ActionResult> DeleteContact(string email)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    bool isValidEmail = utilities.CheckEmail(email);

                    if (isValidEmail == false)
                    {
                        return(StatusCode(StatusCodes.Status400BadRequest, TxTResponses.GetTxTResponse(TxTResponse.validEmail)));
                    }

                    Contact contact = (from c in contactRepository.GetByQuery()
                                       where c.email == email
                                       select c).FirstOrDefault();

                    if (contact == null)
                    {
                        return(StatusCode(StatusCodes.Status400BadRequest, TxTResponses.GetTxTResponse(TxTResponse.UnregisteredContact)));
                    }

                    contactRepository.Delete(contact);
                    context.SaveChanges();
                    transaction.Commit();

                    return(Ok(TxTResponses.GetTxTResponse(TxTResponse.DeleteOk)));
                }
                catch (Exception e)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
                }
            }
        }
Exemple #5
0
        public async Task <ActionResult> SaveContact([FromBody] Contact contact)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    Debug.WriteLine($"Salvando: {JsonConvert.SerializeObject(contact)}");

                    bool isValidEmail = utilities.CheckEmail(contact.email);

                    if (isValidEmail == false)
                    {
                        return(StatusCode(StatusCodes.Status400BadRequest, TxTResponses.GetTxTResponse(TxTResponse.validEmail)));
                    }

                    Contact checkcontact = (from data in contactRepository.GetByQuery()
                                            where data.email == contact.email
                                            select data).FirstOrDefault <Contact>();

                    if (checkcontact != null)
                    {
                        return(StatusCode(StatusCodes.Status400BadRequest, TxTResponses.GetTxTResponse(TxTResponse.RegisteredEmail)));
                    }

                    int maxID = (from max in contactRepository.GetByQuery()
                                 select(int?) max.id ?? 0).DefaultIfEmpty().Max();

                    contact.id = maxID + 1;
                    contactRepository.Add(contact);
                    context.SaveChanges();
                    transaction.Commit();

                    return(Created($"http://localhost:{mainApiPort}/main/getcontact/{contact.id}", TxTResponses.GetTxTResponse(TxTResponse.RegisterOk)));
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
                }
            }
        }
Exemple #6
0
        public async Task <ActionResult> GetContactById(int id)
        {
            try
            {
                if (id <= 0)
                {
                    return(StatusCode(StatusCodes.Status400BadRequest, TxTResponses.GetTxTResponse(TxTResponse.validId)));
                }

                Contact contact = contactRepository.GetById(id);

                if (contact == null)
                {
                    return(StatusCode(StatusCodes.Status400BadRequest, TxTResponses.GetTxTResponse(TxTResponse.UnregisteredContact)));
                }

                return(Ok(JsonConvert.SerializeObject(contact)));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Exemple #7
0
        public async Task <ActionResult> GetRealProfitability()
        {
            try
            {
                HttpClient request           = new HttpClientBuilder().Port(collectorAPIPort).Build();
                var        responseCollector = await request.GetAsync("collector/ipcatotal");

                var statusCode = responseCollector.StatusCode;
                if (statusCode != System.Net.HttpStatusCode.OK)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                }

                IpcaCalculated ipcaCalculated = JsonConvert.DeserializeObject <IpcaCalculated>(JToken.Parse(responseCollector.Content.ReadAsStringAsync().Result).ToString());

                responseCollector = await request.GetAsync("collector/bbinvestiments");

                statusCode = responseCollector.StatusCode;

                if (statusCode != System.Net.HttpStatusCode.OK)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                }

                Object bbInvestiments = JsonConvert.DeserializeObject <Object>(JToken.Parse(responseCollector.Content.ReadAsStringAsync().Result).ToString());


                Utils.Calculate calc = new Utils.Calculate();


                return(Ok(JsonConvert.SerializeObject(ipcaCalculated)));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Exemple #8
0
        public async Task <ActionResult> GetIPCATotal()
        {
            try
            {
                IpcaCalculated ipcaCalculate = collectorService.Get_Ipca_Calculated_For_Investiments();

                if (ipcaCalculate == null)
                {
                    int    currentMonth = DateTime.Now.Month;
                    string monthBase    = (currentMonth - 1).ToString("00");
                    int    currentYear  = DateTime.Now.Year;

                    string startDate = (currentYear - 3).ToString() + monthBase;
                    string finalDate = currentYear.ToString() + monthBase;

                    string linkBase = Links.GetLink(Link.IPCA_MONTHLY_VARIATION_IN_PERIODS).Replace("{0}", startDate).Replace("{1}", finalDate);

                    HttpClient request         = new HttpClientBuilder().Build();
                    var        responseIBGEAPI = await request.GetAsync(linkBase);

                    var statusCode = responseIBGEAPI.StatusCode;
                    if (statusCode != System.Net.HttpStatusCode.OK)
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                    }

                    List <Ipca> ipca36List = new List <Ipca>();
                    ipca36List = JsonConvert.DeserializeObject <List <Ipca> >(JToken.Parse(responseIBGEAPI.Content.ReadAsStringAsync().Result).ToString());
                    ipca36List.Remove(ipca36List[0]);

                    double[] ipca36ListValues = ipca36List.Select(x => double.Parse(x.V, CultureInfo.InvariantCulture)).ToArray();
                    //double ipcaIndex36 = ipca36ListValues.Aggregate((total, x) => total + x);
                    double ipca36Value = ipca36ListValues.Sum();

                    List <Ipca> ipca24List       = ipca36List.Where(x => int.Parse(x.D2C) >= int.Parse((currentYear - 2).ToString() + monthBase)).ToList();
                    double[]    ipca24ListValues = ipca24List.Select(x => double.Parse(x.V, CultureInfo.InvariantCulture)).ToArray();
                    double      ipca24Value      = ipca24ListValues.Sum();

                    List <Ipca> ipca12List       = ipca24List.Where(x => int.Parse(x.D2C) >= int.Parse((currentYear - 1).ToString() + monthBase)).ToList();
                    double[]    ipca12ListValues = ipca12List.Select(x => double.Parse(x.V, CultureInfo.InvariantCulture)).ToArray();
                    double      ipca12Value      = ipca12ListValues.Sum();

                    double ipcaBaseValue = ipca12ListValues[ipca12ListValues.Length - 1];

                    IpcaCalculated ipcaCalculate2 = new IpcaCalculated();
                    ipcaCalculate2.month   = ipcaBaseValue;
                    ipcaCalculate2.month12 = ipca12Value;
                    ipcaCalculate2.month24 = ipca24Value;
                    ipcaCalculate2.month36 = ipca36Value;

                    collectorService.Set_Ipca_Calculated_For_Investiments(ipcaCalculate2);

                    return(Ok(JsonConvert.SerializeObject(ipcaCalculate2)));
                }

                return(Ok(JsonConvert.SerializeObject(ipcaCalculate)));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Exemple #9
0
        public async Task <ActionResult> CompareScenario([FromBody] InvestimentsData scenarios)
        {
            try
            {
                Debug.WriteLine($"{JsonConvert.SerializeObject(scenarios)}");

                HttpClient request     = new HttpClientBuilder().Port(collectorAPIPort).Build();
                var        responseBCB = await request.GetAsync("collector/lastannualizedselic252");

                var statusCode = responseBCB.StatusCode;
                if (statusCode != System.Net.HttpStatusCode.OK)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                }

                Selic selic = JsonConvert.DeserializeObject <Selic>(JToken.Parse(responseBCB.Content.ReadAsStringAsync().Result).ToString());

                var responseIBGE = await request.GetAsync("collector/lastannualavarageipca");

                statusCode = responseIBGE.StatusCode;

                if (statusCode != System.Net.HttpStatusCode.OK)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, TxTResponses.GetTxTResponse(TxTResponse.Failure_GetIndicator)));
                }

                Ipca ipcaData = JsonConvert.DeserializeObject <Ipca>(JToken.Parse(responseIBGE.Content.ReadAsStringAsync().Result).ToString());

                double cdi = double.Parse(selic.valor, CultureInfo.InvariantCulture);
                double ipca = double.Parse(ipcaData.V, CultureInfo.InvariantCulture);
                double calc1, calc2, calc3;
                double finalAmount1 = 0.0, finalAmount2 = 0.0, finalAmount3 = 0.0;

                Utils.Calculate calc = new Utils.Calculate();

                int days = calc.investimentDays(scenarios.deadline);

                if (scenarios.stage1 != null)
                {
                    calc1        = calc.GetProfitability(scenarios.stage1.inputYield, scenarios.stage1.investment, scenarios.stage1.profitability, cdi, ipca);
                    finalAmount1 =
                        scenarios.stage1.investment == "lci" ?
                        calc.calculateFinalAmount(days, scenarios.amount, calc1, false) :
                        calc.calculateFinalAmount(days, scenarios.amount, calc1, true);
                }

                if (scenarios.stage2 != null)
                {
                    calc2        = calc.GetProfitability(scenarios.stage2.inputYield, scenarios.stage2.investment, scenarios.stage2.profitability, cdi, ipca);
                    finalAmount2 =
                        scenarios.stage2.investment == "lci" ?
                        calc.calculateFinalAmount(days, scenarios.amount, calc2, false) :
                        calc.calculateFinalAmount(days, scenarios.amount, calc2, true);
                }

                if (scenarios.stage3 != null)
                {
                    calc3        = calc.GetProfitability(scenarios.stage3.inputYield, scenarios.stage3.investment, scenarios.stage3.profitability, cdi, ipca);
                    finalAmount3 =
                        scenarios.stage3.investment == "lci" ?
                        calc.calculateFinalAmount(days, scenarios.amount, calc3, false) :
                        calc.calculateFinalAmount(days, scenarios.amount, calc3, true);
                }

                JArray dataList  = new JArray();
                JArray calc1List = new JArray();
                JArray calc2List = new JArray();
                JArray calc3List = new JArray();

                if (finalAmount1 > 0)
                {
                    calc1List.Add(finalAmount1);
                    JObject scenario1 = new JObject()
                    {
                        new JProperty("name", "Cenário 1"), new JProperty("data", calc1List)
                    };
                    dataList.Add(scenario1);
                }

                if (finalAmount2 > 0)
                {
                    calc2List.Add(finalAmount2);
                    JObject scenario2 = new JObject()
                    {
                        new JProperty("name", "Cenário 2"), new JProperty("data", calc2List)
                    };
                    dataList.Add(scenario2);
                }

                if (finalAmount3 > 0)
                {
                    calc3List.Add(finalAmount3);
                    JObject scenario3 = new JObject()
                    {
                        new JProperty("name", "Cenário 3"), new JProperty("data", calc3List)
                    };
                    dataList.Add(scenario3);
                }

                JObject series = new JObject()
                {
                    new JProperty("series", dataList)
                };

                return(Ok(JsonConvert.SerializeObject(series)));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }