// <auto-generated />
// This file was generated by a T4 template.
// Don't change it directly as your change would get overwritten.  Instead, make changes
// to the .tt file (i.e. the T4 template) and save it to regenerate this file.

// Make sure the compiler doesn't complain about missing Xml comments and CLS compliance
// 0108: suppress "Foo hides inherited member Foo. Use the new keyword if hiding was intended." when a controller and its abstract parent are both processed
// 0114: suppress "Foo.BarController.Baz()' hides inherited member 'Qux.BarController.Baz()'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." when an action (with an argument) overrides an action in a parent controller
#pragma warning disable 1591, 3008, 3009, 0108, 0114
#region T4MVC

using System;
using System.Diagnostics;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using System.Web;
using System.Web.Hosting;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Web.Mvc.Html;
using System.Web.Routing;
using T4MVC;
namespace Disco.Web.Areas.API.Controllers
{
    public partial class PluginController
    {
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public PluginController() { }

        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        protected PluginController(Dummy d) { }

        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        protected RedirectToRouteResult RedirectToAction(ActionResult result)
        {
            var callInfo = result.GetT4MVCResult();
            return RedirectToRoute(callInfo.RouteValueDictionary);
        }

        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        protected RedirectToRouteResult RedirectToAction(Task<ActionResult> taskResult)
        {
            return RedirectToAction(taskResult.Result);
        }

        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        protected RedirectToRouteResult RedirectToActionPermanent(ActionResult result)
        {
            var callInfo = result.GetT4MVCResult();
            return RedirectToRoutePermanent(callInfo.RouteValueDictionary);
        }

        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        protected RedirectToRouteResult RedirectToActionPermanent(Task<ActionResult> taskResult)
        {
            return RedirectToActionPermanent(taskResult.Result);
        }

        [NonAction]
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public virtual System.Web.Mvc.ActionResult Update()
        {
            return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Update);
        }
        [NonAction]
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public virtual System.Web.Mvc.ActionResult Uninstall()
        {
            return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Uninstall);
        }
        [NonAction]
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public virtual System.Web.Mvc.ActionResult Install()
        {
            return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Install);
        }
        [NonAction]
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public virtual System.Web.Mvc.ActionResult InstallLocal()
        {
            return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.InstallLocal);
        }

        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public PluginController Actions { get { return MVC.API.Plugin; } }
        [GeneratedCode("T4MVC", "2.0")]
        public readonly string Area = "API";
        [GeneratedCode("T4MVC", "2.0")]
        public readonly string Name = "Plugin";
        [GeneratedCode("T4MVC", "2.0")]
        public const string NameConst = "Plugin";
        [GeneratedCode("T4MVC", "2.0")]
        static readonly ActionNamesClass s_actions = new ActionNamesClass();
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public ActionNamesClass ActionNames { get { return s_actions; } }
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ActionNamesClass
        {
            public readonly string UpdateLibraryManifest = "UpdateLibraryManifest";
            public readonly string UpdateAll = "UpdateAll";
            public readonly string Update = "Update";
            public readonly string Uninstall = "Uninstall";
            public readonly string Install = "Install";
            public readonly string InstallLocal = "InstallLocal";
        }

        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ActionNameConstants
        {
            public const string UpdateLibraryManifest = "UpdateLibraryManifest";
            public const string UpdateAll = "UpdateAll";
            public const string Update = "Update";
            public const string Uninstall = "Uninstall";
            public const string Install = "Install";
            public const string InstallLocal = "InstallLocal";
        }


        static readonly ActionParamsClass_UpdateLibraryManifest s_params_UpdateLibraryManifest = new ActionParamsClass_UpdateLibraryManifest();
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public ActionParamsClass_UpdateLibraryManifest UpdateLibraryManifestParams { get { return s_params_UpdateLibraryManifest; } }
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ActionParamsClass_UpdateLibraryManifest
        {
            public readonly string tryWaitingForCompletion = "tryWaitingForCompletion";
        }
        static readonly ActionParamsClass_Update s_params_Update = new ActionParamsClass_Update();
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public ActionParamsClass_Update UpdateParams { get { return s_params_Update; } }
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ActionParamsClass_Update
        {
            public readonly string pluginId = "pluginId";
        }
        static readonly ActionParamsClass_Uninstall s_params_Uninstall = new ActionParamsClass_Uninstall();
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public ActionParamsClass_Uninstall UninstallParams { get { return s_params_Uninstall; } }
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ActionParamsClass_Uninstall
        {
            public readonly string id = "id";
            public readonly string uninstallData = "uninstallData";
        }
        static readonly ActionParamsClass_Install s_params_Install = new ActionParamsClass_Install();
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public ActionParamsClass_Install InstallParams { get { return s_params_Install; } }
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ActionParamsClass_Install
        {
            public readonly string pluginId = "pluginId";
        }
        static readonly ActionParamsClass_InstallLocal s_params_InstallLocal = new ActionParamsClass_InstallLocal();
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public ActionParamsClass_InstallLocal InstallLocalParams { get { return s_params_InstallLocal; } }
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ActionParamsClass_InstallLocal
        {
            public readonly string plugin = "plugin";
            public readonly string immediateRestart = "immediateRestart";
        }
        static readonly ViewsClass s_views = new ViewsClass();
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public ViewsClass Views { get { return s_views; } }
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        public class ViewsClass
        {
            static readonly _ViewNamesClass s_ViewNames = new _ViewNamesClass();
            public _ViewNamesClass ViewNames { get { return s_ViewNames; } }
            public class _ViewNamesClass
            {
            }
        }
    }

    [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
    public partial class T4MVC_PluginController : Disco.Web.Areas.API.Controllers.PluginController
    {
        public T4MVC_PluginController() : base(Dummy.Instance) { }

        [NonAction]
        partial void UpdateLibraryManifestOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, bool tryWaitingForCompletion);

        [NonAction]
        public override System.Web.Mvc.ActionResult UpdateLibraryManifest(bool tryWaitingForCompletion)
        {
            var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateLibraryManifest);
            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "tryWaitingForCompletion", tryWaitingForCompletion);
            UpdateLibraryManifestOverride(callInfo, tryWaitingForCompletion);
            return callInfo;
        }

        [NonAction]
        partial void UpdateAllOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);

        [NonAction]
        public override System.Web.Mvc.ActionResult UpdateAll()
        {
            var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAll);
            UpdateAllOverride(callInfo);
            return callInfo;
        }

        [NonAction]
        partial void UpdateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string pluginId);

        [NonAction]
        public override System.Web.Mvc.ActionResult Update(string pluginId)
        {
            var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Update);
            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "pluginId", pluginId);
            UpdateOverride(callInfo, pluginId);
            return callInfo;
        }

        [NonAction]
        partial void UninstallOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, bool uninstallData);

        [NonAction]
        public override System.Web.Mvc.ActionResult Uninstall(string id, bool uninstallData)
        {
            var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Uninstall);
            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "uninstallData", uninstallData);
            UninstallOverride(callInfo, id, uninstallData);
            return callInfo;
        }

        [NonAction]
        partial void InstallOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string pluginId);

        [NonAction]
        public override System.Web.Mvc.ActionResult Install(string pluginId)
        {
            var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Install);
            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "pluginId", pluginId);
            InstallOverride(callInfo, pluginId);
            return callInfo;
        }

        [NonAction]
        partial void InstallLocalOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, System.Web.HttpPostedFileBase plugin, bool immediateRestart);

        [NonAction]
        public override System.Web.Mvc.ActionResult InstallLocal(System.Web.HttpPostedFileBase plugin, bool immediateRestart)
        {
            var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.InstallLocal);
            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "plugin", plugin);
            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "immediateRestart", immediateRestart);
            InstallLocalOverride(callInfo, plugin, immediateRestart);
            return callInfo;
        }

    }
}

#endregion T4MVC
#pragma warning restore 1591, 3008, 3009, 0108, 0114
