public MovementsResponse convertToStandar(int currencyId) { MovementsResponse response = new MovementsResponse(); response.transactions = new List <Transactions>(); foreach (var mov in this.accountStatementArray) { Transactions transaction = new Transactions(); transaction.id = mov.transactionId + "|" + mov.sequential + "|" + mov.alternateCode; transaction.counterparty = new CunterParty(); transaction.counterparty.id = mov.documentNumber; transaction.details = new Details(); transaction.details.description = mov.description; transaction.details.posted = mov.processDate; transaction.details.value = new Value(); transaction.details.value.currency = currencyId.ToString(); transaction.details.value.amount = decimal.Parse(mov.amount.ToString()); transaction.details.reference_number = mov.reference; transaction.details.new_balance = new NewBalance(); transaction.details.new_balance.currency = currencyId.ToString(); transaction.details.new_balance.amount = decimal.Parse(mov.availableBalance.ToString()); response.transactions.Add(transaction); } return(response); }
public override MovementsResponse GetMovements(MovementsRequest request) { MovementsResponse result = new MovementsResponse(); try { LoginBindResponse loginData = doLogin(); //banks/:bank_id/accounts/:account_id/:view_id/transactions string urlData = String.Format("banks/{0}/accounts/{1}/{2}/transactions", request.bank_id, request.AccountId, request.view_id); DateTime dt = DateTime.ParseExact(request.finalDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); request.finalDate = dt.ToString("yyyy-MM-dd"); dt = DateTime.ParseExact(request.initialDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); request.initialDate = dt.ToString("yyyy-MM-dd"); string JsonResult = new FluentClient(config.Url) .GetAsync(urlData) .WithHeader("Authorization", "JWT " + loginData.token) .WithHeader("obp_from_date", request.initialDate) .WithHeader("obp_to_date", request.finalDate) .WithOptions(true) .AsString().Result; try { result.transactions = JsonConvert.DeserializeObject <List <Transactions> >(JsonResult); } catch { } result.executeStatus = getExecuteStatus(JsonResult, urlData); } catch (CustomException cEx) { result.executeStatus = cEx.convertToCustomStatus(); } catch (Exception ex) { result.executeStatus = new CustomException(ExceptionsCodes.UnexpectedException, "", ex.Message).convertToCustomStatus(); } return(result); }
public override MovementsResponse GetMovements(MovementsRequest request) { MovementsResponse result = new MovementsResponse(); try { ValoresLoginResponse loginData = doLogin(); string urlData = "accounts/getMovementsDetail"; var requestM = (HttpWebRequest)WebRequest.Create(config.Url + urlData); requestM.ContentType = "application/json"; requestM.Method = "POST"; if (cookieContainer != null) { requestM.CookieContainer = cookieContainer; } else { requestM.CookieContainer = new CookieContainer(); } //CONVERT DATE DateTime dt = DateTime.ParseExact(request.finalDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); request.finalDate = dt.ToString("MM/dd/yyyy"); dt = DateTime.ParseExact(request.initialDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); request.initialDate = dt.ToString("MM/dd/yyyy"); ValoresMovementsRequest valoresMovementsRequest = new ValoresMovementsRequest(); valoresMovementsRequest.productNumber = request.AccountId; valoresMovementsRequest.initialDate = request.initialDate; valoresMovementsRequest.finalDate = request.finalDate; //Valores valoresMovementsRequest.productId = request.productId; valoresMovementsRequest.currencyId = request.currencyId; valoresMovementsRequest.numberOfMovements = 100; valoresMovementsRequest.sequential = "0"; valoresMovementsRequest.uniqueSequential = "0"; valoresMovementsRequest.mode = "0"; valoresMovementsRequest.serviceId = "1"; using (var streamWriter = new StreamWriter(requestM.GetRequestStream())) { string json = JsonConvert.SerializeObject(valoresMovementsRequest); streamWriter.Write(json); } var httpResponse = (HttpWebResponse)requestM.GetResponse(); ValoresMovementsReponse response = new ValoresMovementsReponse(); string JsonResult = ""; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { JsonResult = streamReader.ReadToEnd(); response = JsonConvert.DeserializeObject <ValoresMovementsReponse>(JsonResult); } if (response.message != null) { result.executeStatus = new CustomStatus(ExceptionsCodes.ApiException, response.message.message, response.message.code, "accounts/getMovementsDetail"); return(result); } result = response.convertToStandar(request.currencyId); result.executeStatus = new CustomStatus(); return(result); } catch (FormatException cEx) { result.executeStatus = new CustomException(ExceptionsCodes.UnexpectedException, "", cEx.Message).convertToCustomStatus(); } catch (CustomException cEx) { result.executeStatus = cEx.convertToCustomStatus(); } catch (Exception ex) { result.executeStatus = new CustomException(ExceptionsCodes.UnexpectedException, "", ex.Message).convertToCustomStatus(); } return(result); }