public async Task Create_New_FinancialInstrument_Should_Return_Ok() { //Arrange var finInst = new FinInstrumentDTO { Id = 0, Price = 14.30, UserId = 0 }; var json = JsonConvert.SerializeObject(finInst); var data = new StringContent(json, Encoding.UTF8, "application/json"); var uri = new StringBuilder(_httpClient.BaseAddress.ToString()) .Append("api/") .Append("financialInstrument/") .Append("NewInstrument") .ToString(); //Action var response = await _httpClient.PostAsync(uri, data); var result = JsonConvert.DeserializeObject <int>(await response.Content.ReadAsStringAsync()); //Assert Assert.True(result > 0); }
public async Task <bool> UpdatePrice(FinInstrumentDTO finInst) { var dbFinInst = await _dbContext.FinancialInstrument .SingleOrDefaultAsync(x => x.Id == finInst.Id); if (dbFinInst == null) { throw new Exception("Financial Instrument Not Found"); } var prevPrice = dbFinInst.CurrentPrice; dbFinInst.CurrentPrice = finInst.Price; _dbContext.Update(dbFinInst); var result = await _dbContext.SaveChangesAsync(); if (result > 0) { await _notificationService.NotifyUsers(prevPrice, dbFinInst.Id); return(true); } return(false); }
public async Task <IActionResult> SetPrice([FromBody] FinInstrumentDTO finInst) { var result = await _financialInstrumentRepository.UpdatePrice(finInst); if (result) { return(Ok()); } else { return(BadRequest("Could not update price for Financial Instrument")); } }
public async Task <IActionResult> NewInstrument([FromBody] FinInstrumentDTO finInst) { try { var result = await _financialInstrumentRepository.NewFinancialInstrument(finInst); if (result > 0) { return(Ok(result)); } else { return(BadRequest("Could not add new Financial Instrument")); } } catch (Exception e) { return(BadRequest(e.Message)); } }
private async Task SetPrice(double price) { var finInstDTO = new FinInstrumentDTO { Id = 1, Price = price }; var json = JsonConvert.SerializeObject(finInstDTO); var finInstJS = new StringContent(json, Encoding.UTF8, "application/json"); var setPriceUri = new StringBuilder(_httpClient.BaseAddress.ToString()) .Append("api/") .Append("financialInstrument/") .Append("setprice") .ToString(); var response = await _httpClient.PutAsync(setPriceUri, finInstJS); //var result = JsonConvert.DeserializeObject<bool>(await response.Content.ReadAsStringAsync()); }
public async Task <int> NewFinancialInstrument(FinInstrumentDTO finInst) { var dbFinInst = await _dbContext.FinancialInstrument .SingleOrDefaultAsync(x => x.Id == finInst.Id); if (dbFinInst == null) { dbFinInst = new FinancialInstrument { CurrentPrice = finInst.Price, }; await _dbContext.AddAsync(dbFinInst); await _dbContext.SaveChangesAsync(); return(dbFinInst.Id); } return(-1); }
public async Task Get_FinancialInstrument_Should_Return_FinInstrument() { //Arrange var finInstDTO = new FinInstrumentDTO { Id = 0, Price = 14.25, UserId = 0 }; var json = JsonConvert.SerializeObject(finInstDTO); var data = new StringContent(json, Encoding.UTF8, "application/json"); var uri = new StringBuilder(_httpClient.BaseAddress.ToString()) .Append("api/") .Append("financialInstrument/") .Append("NewInstrument") .ToString(); var getUri = new StringBuilder(_httpClient.BaseAddress.ToString()) .Append("api/") .Append("financialInstrument/") .Append("1") .ToString(); //Action var response = await _httpClient.PostAsync(uri, data); var result = JsonConvert.DeserializeObject <int>(await response.Content.ReadAsStringAsync()); var getResponse = await _httpClient.GetAsync(getUri); var getResult = JsonConvert.DeserializeObject <FinInstrumentDTO>(await getResponse.Content.ReadAsStringAsync()); //Assert Assert.True(result > 0); Assert.Equal(1, getResult.Id); Assert.Equal(finInstDTO.Price, getResult.Price); }
private async Task <int> NewInstrument() { var finInstDTO = new FinInstrumentDTO { Id = 0, Price = 14.25, UserId = 0 }; var json = JsonConvert.SerializeObject(finInstDTO); var finInstJS = new StringContent(json, Encoding.UTF8, "application/json"); var addFinInstUri = new StringBuilder(_httpClient.BaseAddress.ToString()) .Append("api/") .Append("financialInstrument/") .Append("NewInstrument") .ToString(); //Action var response = await _httpClient.PostAsync(addFinInstUri, finInstJS); var result = JsonConvert.DeserializeObject <int>(await response.Content.ReadAsStringAsync()); return(result); }