Beispiel #1
0
        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);
        }
Beispiel #2
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));
            }
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }