Пример #1
0
        public async Task <ActionResult> UpdateMedcine(int id, [FromBody] UpdateMedicineRequest request)
        {
            try
            {
                if (id < 0)
                {
                    return(BadRequest("Invalid id"));
                }
                if (request == null)
                {
                    return(BadRequest("Invalid request"));
                }

                var medicine = await _pharmacyService.GetMedicineById(id);

                if (medicine == null)
                {
                    return(NotFound());
                }

                _mapper.Map(request, medicine);

                await _pharmacyService.UpdateMedicine(medicine);

                return(Ok(request));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #2
0
        public async Task <ActionResult> CreateOrder([FromBody] CreateOrderRequest request)
        {
            try
            {
                if (request == null)
                {
                    return(BadRequest("Invalid reqeust"));
                }
                if (await _pharmacyService.GetMedicineById(request.MedicineId) == null)
                {
                    return(BadRequest("Medicine from request doesn't exist"));
                }
                var order = new OrderDTO();
                _mapper.Map(order, request);

                //communication with other microservice
                order.AccountId = 2;

                await _orderService.CreateOrder(order);

                return(Ok());
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #3
0
        public async Task <ActionResult> CreateOrder([FromBody] CreateSaleRequest request)
        {
            try
            {
                if (request == null)
                {
                    return(BadRequest("Invalid reqeust"));
                }
                if (request.MedicineId == 0 && request.RecipeId == 0)
                {
                    return(BadRequest("Either MedicineId or RecipeId must be provided"));
                }

                if (request.RecipeId != 0)
                {
                    var recipe = await _saleService.GetRecipeById(request.RecipeId);

                    if (recipe == null)
                    {
                        return(BadRequest("Recipe from request doesn't exist"));
                    }
                    if (request.MedicineId != 0 && recipe.MedicineId != request.MedicineId)
                    {
                        return(BadRequest("Medicine id doesn't match to recipe medicine id"));
                    }
                    var _sale = new SaleDTO();
                    _mapper.Map(request, _sale);

                    var _httpClient = _httpClientFactory.CreateClient("Pharmacy");
                    //communication with other microservice
                    var response = await _httpClient.GetAsync("account/getAccountById?id=2");

                    if (response.IsSuccessStatusCode)
                    {
                        var account = response.Content.ReadAsStringAsync();
                    }
                    _sale.AccountId = 2;

                    await _saleService.SaveSale(_sale);

                    return(Ok());
                }

                var medicine = await _pharmacyService.GetMedicineById(request.MedicineId);

                if (medicine == null)
                {
                    return(BadRequest("Medicine with provided id doesn't exist"));
                }
                if (medicine.IsRecipeRequired)
                {
                    return(BadRequest("This medicine cannot be order without recipe"));
                }

                var sale = new SaleDTO();
                _mapper.Map(request, sale);

                //communication with other microservice
                sale.AccountId = 2;

                await _saleService.SaveSale(sale);

                return(Ok());
            }
            catch (Exception e)
            {
                throw e;
            }
        }