示例#1
0
        public int CreatNewElement(AssociatedUri uri)
        {
            int result;

            using (IDbConnection db = new SqlConnection(_connectionString.GetConnectionString()))
            {
                var sqlQuery = "INSERT INTO [UriReduction].[AssociatedUri] (LongUri, ShortUri,UserId) VALUES(@LongUri,@ShortUri,@UserId);";
                result = db.Execute(sqlQuery, uri);
            }
            return(result);
        }
示例#2
0
        public async Task <string> Post([FromBody] AssociatedUri longUri)
        {
            UserAccount user = new UserAccount {
                Id = null
            };

            if (User.Identity.Name != null)
            {
                user = await _userManager.FindByNameAsync(User.Identity.Name);
            }
            var shortUri = _shortener.Shorten(longUri.LongUri, user.Id);

            return(Request.Host + "/SUGC/" + shortUri);
        }
示例#3
0
        public void ReceiveMessage()
        {
            var factory = new ConnectionFactory {
                HostName = "localhost"
            };

            using (var connection = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "ShortUriIncrementQueue",
                                         durable: true,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    var consumer = new EventingBasicConsumer(channel);
                    consumer.Received += (model, ea) =>
                    {
                        var           body     = ea.Body;
                        var           shortUri = Encoding.UTF8.GetString(body);
                        AssociatedUri uri      = _repository.GetElementByShortUri(shortUri);
                        _repository.UpdateElementRequestFieldById(uri.RequestCount + 1, uri.Id);
                        uri = _repository.GetElementById(uri.Id);

                        channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
                    };

                    channel.BasicConsume(queue: "ShortUriIncrementQueue",
                                         autoAck: false,
                                         consumer: consumer);
                    Console.WriteLine("Press [enter] to exit.");
                    Console.ReadLine();
                }
            }
        }
示例#4
0
        public async Task <IActionResult> Delete([FromBody] AssociatedUri uri)
        {
            var result = await _deleteService.DeleteUri(uri.ShortUri, User.Identity.Name);

            return(result ? (IActionResult)Ok() : NotFound());
        }