Esempio n. 1
0
        public ActionResult <Article> PostArticle(Article article)
        {
            //user not found
            if (_context.Users.Find(article.UserID) == null)
            {
                RabbitCommunicator.queueName = "errors";
                RabbitCommunicator.message   = $"Non existing user tried to create an article";
                RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

                return(BadRequest());
            }

            article.Status = defaultStatus; //when creating an article it should be waiting
            article.Owner  = _context.Users.Find(article.UserID).Username;
            _context.Articles.Add(article);
            _context.Users.Find(article.UserID).Articles.Add(article);
            _context.SaveChanges();

            RabbitCommunicator.queueName = "articles";
            RabbitCommunicator.message   = $"An article was created by user {article.Owner}, its ID is {article.Id}";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(CreatedAtAction("GetSingleArticle", new Article {
                Id = article.Id
            }, article));
        }
Esempio n. 2
0
        public ActionResult <IEnumerable <User> > GetAllUsers()
        {
            RabbitCommunicator.queueName = "users";
            RabbitCommunicator.message   = $"A request for all users was made";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(_context.Users);
        }
Esempio n. 3
0
        public ActionResult <IEnumerable <Article> > GetArticles()
        {
            RabbitCommunicator.queueName = "articles";
            RabbitCommunicator.message   = $"A request for all articles was made";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(_context.Articles);
        }
Esempio n. 4
0
        public ActionResult <User> PostUser(User user)
        {
            _context.Users.Add(user);
            _context.SaveChanges();


            RabbitCommunicator.queueName = "users";
            RabbitCommunicator.message   = $"A request for user creation was made";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(CreatedAtAction("GetSingleUser", new User {
                Id = user.Id
            }, user));
        }
Esempio n. 5
0
        public ActionResult <User> GetSingleUser(int id)
        {
            User user = _context.Users.Find(id);

            if (user == null)
            {
                RabbitCommunicator.queueName = "users";
                RabbitCommunicator.message   = $"A request for all user with an unexisting user was made";
                RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

                return(NotFound());
            }


            return(user);
        }
Esempio n. 6
0
        public ActionResult <Article> GetSingleArticle(int id)
        {
            Article article = _context.Articles.Find(id);

            if (article == null)
            {
                RabbitCommunicator.queueName = "errors";
                RabbitCommunicator.message   = $"Article with id = {id.ToString()} not found";
                RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

                return(NotFound());
            }

            RabbitCommunicator.queueName = "articles";
            RabbitCommunicator.message   = $"Article with id = {id.ToString()} was found";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(article);
        }
Esempio n. 7
0
        public ActionResult UpdateArticle(int id, Article article)
        {
            //an article cannot change its ID, nor to be assigned with unexisting user, also the status must be one of the already existing
            if (id != article.Id || _context.Users.Find(article.UserID) == null || Article.IsStatusValid(ArticleStatus, article.Status))
            {
                RabbitCommunicator.queueName = "errors";
                RabbitCommunicator.message   = $"Error in article update";
                RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

                return(BadRequest());
            }
            _context.Entry(article).State = EntityState.Modified;
            _context.SaveChanges();

            RabbitCommunicator.queueName = "article";
            RabbitCommunicator.message   = $"An article with id {article.Id} was updated";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(NoContent());
        }
Esempio n. 8
0
        public ActionResult <Article> DeleteArticle(int id)
        {
            Article article = _context.Articles.Find(id);

            if (article == null)
            {
                RabbitCommunicator.queueName = "errors";
                RabbitCommunicator.message   = $"Error in article delete, probably not found";
                RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

                return(NotFound());
            }
            _context.Articles.Remove(article);
            _context.SaveChanges();

            RabbitCommunicator.queueName = "article";
            RabbitCommunicator.message   = $"Article was deleted succesfully";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(article);
        }
Esempio n. 9
0
        public ActionResult <User> Delete(int id)
        {
            User user = _context.Users.Find(id);

            if (user == null)
            {
                RabbitCommunicator.queueName = "users";
                RabbitCommunicator.message   = $"User was not found for deletion";
                RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

                return(NotFound());
            }


            _context.Users.Remove(user);
            _context.SaveChanges();

            RabbitCommunicator.queueName = "users";
            RabbitCommunicator.message   = $"User with ID = {user.Id} was removed";
            RabbitCommunicator.PublishMessage(RabbitCommunicator.queueName, RabbitCommunicator.message, _context.RabbitMQChannel);

            return(user);
        }
Esempio n. 10
0
        //private static string queueName, message;

        public UserController(MyWebApiContext context)
        {
            context.RabbitMQChannel = RabbitCommunicator.StartRabbitCommunicator();
            _context = context;
        }