Example #1
0
        public override void Display(Article article)
        {
            Display();

            var editor = AuthenticationProvider.GetInstance().LoggedUser;

            if (editor != null)
            {
                Output.WriteLine(ConsoleColor.DarkMagenta, $"'{article.Title}' editing\n");
                var editVariants = new List <string> {
                    "Title", "Intro", "Content", "Main"
                };
                var editable = Input.ReadList(editVariants, "Select what you want to edit: ");
                if (editable == "Go back")
                {
                    Program.NavigateTo <ArticlePage>(article);
                }
                else
                {
                    var dataAccesManager = new DataAccesManager();
                    var editableProperty = typeof(Article).GetProperty(editable);
                    Output.WriteLine(ConsoleColor.DarkRed, $"The old version of {editable}:");
                    Output.WriteLine(editableProperty.GetValue(article, null).ToString());
                    Output.WriteLine(ConsoleColor.DarkCyan, $"Enter a new version of {editable} in {article.Title} article:");
                    var newversion = editable == "Title" ? Input.ReadString(string.Empty) : Input.ReadText(string.Empty);
                    dataAccesManager.MakeEdit(article.Id, editor.Login, editable, newversion);
                    Output.WriteLine(ConsoleColor.Green, "Article is edited.");
                }
            }
            else
            {
                Output.WriteLine(ConsoleColor.Red, "You must Log In to make edit in articles.");
            }

            Input.ReadString("Press [Enter] to navigate home");
            Program.NavigateHome();
        }