using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;


namespace Fab2ApprovalSystem.Controllers
{
    
    public class WebAPIController : ApiController
    {
        public TrainingController trainingFunctions = new TrainingController();
        public CorrectiveActionController carFunctions = new CorrectiveActionController();
        public AccountController accountFunctions = new AccountController();
        public HomeController homeFunctions = new HomeController();
        public string Get()
        {
            return "Welcome To Web API";
        }
        public List<string> Get(int Id)
        {
            return new List<string> {
                "Data1",
                "Data2"
            };
        }
        public void Post()
        {

        }

        public HttpResponseMessage Post(HttpRequestMessage request, string action)
        {

            switch (action)
            {
                case "TrainingReport":
                    if (trainingFunctions.RunTrainingReport())
                    {
                        return request.CreateResponse(HttpStatusCode.OK);
                    }
                    else
                    {
                        return request.CreateResponse(HttpStatusCode.InternalServerError);
                    }
                case "CARDueDates":
                    if (carFunctions.ProcessCARDueDates())
                    {
                        return request.CreateResponse(HttpStatusCode.OK);
                    }
                    else
                    {
                        return request.CreateResponse(HttpStatusCode.InternalServerError);
                    }
                case "ProcessOoO":
                    if (homeFunctions.ProcessOoO())
                    {
                        return request.CreateResponse(HttpStatusCode.OK);
                    }
                    else
                    {
                        return request.CreateResponse(HttpStatusCode.InternalServerError);
                    }
                case "ExpireOoO":
                    if (homeFunctions.ExpireOoO())
                    {
                        return request.CreateResponse(HttpStatusCode.OK);
                    }
                    else
                    {
                        return request.CreateResponse(HttpStatusCode.InternalServerError);
                    }
                case "ApprovalReminders":
                    if (homeFunctions.ApprovalsReminderNotifications())
                    {
                        return request.CreateResponse(HttpStatusCode.OK);
                    }
                    else
                    {
                        return request.CreateResponse(HttpStatusCode.InternalServerError);
                    }
                default:
                    return request.CreateResponse(HttpStatusCode.InternalServerError, "Action Not Found");

            }

        }
    }
}