using Autofac;
using GreenTree.Nachtragsmanagement.Core;
using GreenTree.Nachtragsmanagement.Core.Domain.User;
using GreenTree.Nachtragsmanagement.Services.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace GreenTree.Nachtragsmanagement.Web.App_Start
{
public class FunctionConfig
{
///
/// Registers all system functions provided by the base system
///
public static void RegisterFunctions()
{
var userService = Singleton.Instance.Resolve();
var systemFunctions = AllSystemFunctions();
foreach (var function in systemFunctions)
{
var existingFunction = userService.GetFunctionByName(function.Name);
if (existingFunction != null)
{
var equals =
existingFunction.Description == function.Description &&
existingFunction.ImageUrl == function.ImageUrl &&
existingFunction.GroupName == function.GroupName &&
existingFunction.RouteName == function.RouteName &&
existingFunction.IsMenuMember == function.IsMenuMember &&
existingFunction.Plugin == function.Plugin &&
existingFunction.BaseWidth == function.BaseWidth &&
existingFunction.MinWidth == function.MinWidth &&
existingFunction.BaseHeight == function.BaseHeight &&
existingFunction.MinHeight == function.MinHeight &&
existingFunction.AllowMaximize == function.AllowMaximize;
if (!equals)
{
existingFunction.Description = function.Description;
existingFunction.ImageUrl = function.ImageUrl;
existingFunction.GroupName = function.GroupName;
existingFunction.RouteName = function.RouteName;
existingFunction.IsMenuMember = function.IsMenuMember;
existingFunction.Plugin = function.Plugin;
existingFunction.BaseWidth = function.BaseWidth;
existingFunction.MinWidth = function.MinWidth;
existingFunction.BaseHeight = function.BaseHeight;
existingFunction.MinHeight = function.MinHeight;
existingFunction.AllowMaximize = function.AllowMaximize;
userService.UpdateFunction(existingFunction);
}
}
else
userService.InsertFunction(function);
}
}
private static Function[] AllSystemFunctions()
{
return new[]
{
new Function
{
Name = "Administration",
Description = "Administration",
ImageUrl = "~/Content/Images/function-Administration-32.png",
IsMenuMember = true,
Plugin = "System"
},
new Function
{
Name = "Administration-Users",
Description = "Benutzerverwaltung",
ImageUrl = "~/Content/Images/function-Administration-Users-32.png",
GroupName = "Administration",
RouteName = "GreenTree.Nachtragsmanagement.Web.Administration.Users",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 900,
MinWidth = 600,
BaseHeight = 600,
MinHeight = 400,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Administration-Users-Edit",
Description = "Benutzer editieren",
GroupName = "Administration-Users",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Administration-Roles",
Description = "Rollenverwaltung",
ImageUrl = "~/Content/Images/function-Administration-Roles-32.png",
GroupName = "Administration",
RouteName = "GreenTree.Nachtragsmanagement.Web.Administration.Roles",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 800,
MinWidth = 600,
BaseHeight = 500,
MinHeight = 400,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Administration-Roles-Edit",
Description = "Rollen editieren",
GroupName = "Administration-Roles",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Administration-Plugins",
Description = "Pluginverwaltung",
ImageUrl = "~/Content/Images/function-Administration-Plugins-32.png",
GroupName = "Administration",
RouteName = "GreenTree.Nachtragsmanagement.Web.Administration.Plugins",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 800,
MinWidth = 500,
BaseHeight = 450,
MinHeight = 300,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Administration-Plugins-Edit",
Description = "Plugins installieren / deinstallieren",
GroupName = "Administration-Plugins",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Site",
Description = "Baustellen",
ImageUrl = "~/Content/Images/function-Site-32.png",
IsMenuMember = true,
Plugin = "System"
},
new Function
{
Name = "Site-Sites",
Description = "Baustellenliste",
ImageUrl = "~/Content/Images/function-Site-Sites-32.png",
GroupName = "Site",
RouteName = "GreenTree.Nachtragsmanagement.Web.Site.Sites",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 1100,
MinWidth = 800,
BaseHeight = 650,
MinHeight = 500,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Site-Sites-Edit",
Description = "Baustellen editieren",
GroupName = "Site-Sites",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Site-Sites-Delete",
Description = "Baustellen löschen",
GroupName = "Site-Sites",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Deviation",
Description = "Vertragsabweichungen",
ImageUrl = "~/Content/Images/function-Deviation-32.png",
IsMenuMember = true,
Plugin = "System"
},
new Function
{
Name = "Deviation-Deviations",
Description = "Vertragsabweichungsliste",
ImageUrl = "~/Content/Images/function-Deviation-Deviations-32.png",
GroupName = "Deviation",
RouteName = "GreenTree.Nachtragsmanagement.Web.Deviation.Deviations",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 1000,
MinWidth = 800,
BaseHeight = 650,
MinHeight = 500,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Deviation-Deviations-Edit",
Description = "Vertragsabweichungen editieren",
GroupName = "Deviation-Deviations",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Deviation-Claims",
Description = "VA-Stammdaten",
ImageUrl = "~/Content/Images/function-Deviation-Claims-32.png",
GroupName = "Deviation",
RouteName = "GreenTree.Nachtragsmanagement.Web.Deviation.Claims",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 1000,
MinWidth = 600,
BaseHeight = 500,
MinHeight = 350,
AllowMaximize = true,
MaximizedOnStart = false
},
new Function
{
Name = "Deviation-Claims-Edit",
Description = "VA-Stammdaten editieren",
GroupName = "Deviation-Claims",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Appendix",
Description = "Nachträge",
ImageUrl = "~/Content/Images/function-Appendix-32.png",
IsMenuMember = true,
Plugin = "System"
},
new Function
{
Name = "Appendix-Appendices",
Description = "Nachtragsliste",
ImageUrl = "~/Content/Images/function-Appendix-Appendices-32.png",
GroupName = "Appendix",
RouteName = "GreenTree.Nachtragsmanagement.Web.Appendix.Appendices",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 1100,
MinWidth = 800,
BaseHeight = 650,
MinHeight = 500,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Appendix-Appendices-Edit",
Description = "Nachträge editieren",
GroupName = "Appendix-Appendices",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Appendix-Claims",
Description = "NT-Stammdaten",
ImageUrl = "~/Content/Images/function-Appendix-Claims-32.png",
GroupName = "Appendix",
RouteName = "GreenTree.Nachtragsmanagement.Web.Appendix.Claims",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 800,
MinWidth = 600,
BaseHeight = 500,
MinHeight = 350,
AllowMaximize = true,
MaximizedOnStart = false
},
new Function
{
Name = "Appendix-Claims-Edit",
Description = "NT-Stammdaten editieren",
GroupName = "Appendix-Claims",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Misc",
Description = "Sonstiges",
ImageUrl = "~/Content/Images/function-Misc-32.png",
IsMenuMember = true,
Plugin = "System"
},
new Function
{
Name = "Misc-MailNotifications",
Description = "Benachrichtigungen",
ImageUrl = "~/Content/Images/function-Misc-MailNotifications-32.png",
GroupName = "Misc",
RouteName = "GreenTree.Nachtragsmanagement.Web.Misc.MailNotifications",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 900,
MinWidth = 700,
BaseHeight = 550,
MinHeight = 450,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Misc-MailNotifications-Edit",
Description = "Benachrichtigungen editieren",
GroupName = "Misc-MailNotifications",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Misc-Logs",
Description = "Logs",
ImageUrl = "~/Content/Images/function-Misc-Logs-32.png",
GroupName = "Misc",
RouteName = "GreenTree.Nachtragsmanagement.Web.Misc.Logs",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 900,
MinWidth = 700,
BaseHeight = 550,
MinHeight = 450,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Misc-Logs-Delete",
Description = "Logs löschen",
GroupName = "Misc-Logs",
IsMenuMember = false,
Plugin = "System"
},
new Function
{
Name = "Misc-ConfigItems",
Description = "Einstellungen",
ImageUrl = "~/Content/Images/function-Misc-ConfigItems-32.png",
GroupName = "Misc",
RouteName = "GreenTree.Nachtragsmanagement.Web.Misc.ConfigItems",
IsMenuMember = true,
Plugin = "System",
BaseWidth = 900,
MinWidth = 700,
BaseHeight = 550,
MinHeight = 450,
AllowMaximize = true,
MaximizedOnStart = true
},
new Function
{
Name = "Misc-ConfigItems-Edit",
Description = "Einstellungen ändern",
GroupName = "Misc-ConfigItems",
IsMenuMember = false,
Plugin = "System"
}
};
}
}
}