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)); } }
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)); } }
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)); } }
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)); } } }
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)); } } }
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)); } }
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)); } }
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)); } }
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)); } }