﻿namespace Rq
{
    using System;
    using System.Linq;
    using System.Text;

    using Inetdev;
    using RqTools.Models;

    /// <summary>
    /// Shows the information of the last alerta of the RQ.
    /// </summary>
    class WhereCommand : ICommand
    {
        /// <summary>
        /// Run the head command.
        /// </summary>
        /// <param name="args"></param>
        public void Run(CommandArgs args)
        {
            if (args == null)
                throw new ArgumentNullException("args");
            string src = GetType().FullName + ".Run()";


            var requerimiento = Rq.Load(args.RqNumber);
            if (requerimiento == null)
            {
                throw new FrameworkException($"Requerimiento: {args.RqNumber} no encontrado.", src);
            }

            Console.WriteLine();
            Console.WriteLine("El Rq {0} está en la alerta/acción:", requerimiento.Id);

            if (requerimiento.Alertas.Any())
            {
                StringBuilder tmp = new StringBuilder(1024);

                requerimiento.Alertas.Last().GetInfo(tmp);

                Console.WriteLine(tmp.ToString());
            }
            else Console.WriteLine("No hay alertas relacionadas al requerimiento.");
        }
    }
}
