public List <ViewProduct> InsertProduct(ViewProduct product)
        {
            var data = _mapper.Map <Product>(product);

            _productRepository.Insert(data, true);

            //Insert Redis
            var cacheKey = string.Format(ProductDetail, data.Id);
            var model    = _mapper.Map <ViewProduct>(data);

            model.SeriNo = product.SeriNo; //SeriNo Decrypt olaraka atanır.
            _redisCacheManager.Set(cacheKey, model);
            //-------------------------------

            //Add RabbitMQ
            ExchangeQueue queueData = new ExchangeQueue()
            {
                ProductID    = data.Id,
                Name         = data.Name,
                ExchangeName = ((ExchangeParseType)data.ExchangeType).ToString(),
                ExchangeType = data.ExchangeType,
                Price        = data.Price,
                ConnectionID = product.ConnectionId,
                TotalCount   = data.TotalCount,
                SeriNo       = product.SeriNo
            };

            _rabbitMQService.Post("product", queueData);
            //------------------------
            var responseData = GetProductList();

            return(responseData);
        }
Beispiel #2
0
        /// <summary>
        /// Applies all externally defined queue properties to all defined exchange queues.
        /// </summary>
        /// <param name="exchange">Exchange configuration.</param>
        public void ApplyQueueSettings(IMessageExchange exchange)
        {
            Check.NotNull(exchange, nameof(exchange));

            foreach (QueuePropertiesSettings queueProps in GetBrokerQueueProperties(exchange.BrokerName))
            {
                ExchangeQueue queue = exchange.Queues.FirstOrDefault(q => q.QueueName == queueProps.QueueName);
                if (queue != null)
                {
                    queue.RouteKeys = queueProps.RouteKeys.ToArray();
                }
            }
        }
        public async Task <ActionResult> PushProduct([FromBody] ExchangeQueue productQueue)
        {
            try
            {
                System.Threading.Thread.Sleep(2000); //:) Hahahaha

                ViewProduct product = _mapper.Map <ViewProduct>(productQueue);
                product = _productService.UpdateProduct(product).FirstOrDefault(p => p.ID == product.ID);
                await _dispatcher.PushProduct(product);
            }
            catch (System.Exception ex)
            {
                int i = 0;
            }
            return(Ok());
        }