using GerstITS.Examples.Api.Versioning;
using GerstITS.Examples.Logic.Example;
using GerstITS.Validation;
using GerstITS.Web.Api;
using GerstITS.Web.Api.FluentApi;
using Microsoft.AspNetCore.Mvc;
namespace GerstITS.Examples.Api.Controllers
{
    /// 
    /// Controller is deprecated use newer version.
    /// 
    [ApiController,
     ApiVersion(Versions._1_0, Deprecated = true),
     Route(ApplicationEnvironment.WebApi.ControllerRouteTemplate)]
    public class ExampleController : FluentApiControllerBase
    {
        #region Fields
        private readonly IExampleProvider _provider; 
        
        #endregion
        #region Constructors
        public ExampleController(IExampleProvider provider,
                                 IValidator validator)
            : base(validator)
        {
            _provider = provider;
        }
        #endregion
        #region Methods
        /// 
        /// Gets the example data by id.
        /// 
        /// 
        /// Returns Example data.
        [HttpGet,
         Route("{id}")]
        public IActionResult Get(int id)
        {
            return Api().Use(id)
                        .Get(_provider.GetById);
        }
        #endregion
    }
}