aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Tango.FSE.DPGraphGenerator/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/FSE/Tango.FSE.DPGraphGenerator/Program.cs')
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.DPGraphGenerator/Program.cs88
1 files changed, 88 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.DPGraphGenerator/Program.cs b/Software/Visual_Studio/FSE/Tango.FSE.DPGraphGenerator/Program.cs
new file mode 100644
index 000000000..9eb0fb7b6
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.DPGraphGenerator/Program.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL;
+using Tango.BL.Entities;
+using Tango.CSV;
+
+namespace Tango.FSE.DPGraphGenerator
+{
+ class Program
+ {
+ private class RolePermission
+ {
+ public String Name { get; set; }
+
+ public override string ToString()
+ {
+ return Name;
+ }
+ }
+
+ private class RoleModel
+ {
+ public String Name { get; set; }
+ public List<RolePermission> Permissions { get; set; }
+
+ public RoleModel()
+ {
+ Permissions = new List<RolePermission>();
+ }
+ }
+
+ static void Main(string[] args)
+ {
+ String outputFolder = Path.GetFullPath(@"..\..\..\Roles & Permissions");
+
+ Console.WriteLine($"Generating roles and permissions csv files to '{outputFolder}'...");
+
+ List<RoleModel> models = new List<RoleModel>();
+
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var roles = db.Roles.ToList();
+ var roles_permissions = db.RolesPermissions.ToList();
+ var permissions = db.Permissions.ToList();
+
+ foreach (var role in roles.Where(x => x.Name.Contains("FSE")).ToList())
+ {
+ RoleModel model = new RoleModel();
+ model.Name = role.Description;
+
+ List<Permission> role_permissions = role.RolesPermissions.Select(x => x.Permission).ToList();
+
+ foreach (var permission in role_permissions.OrderBy(x => x.Code))
+ {
+ model.Permissions.Add(new RolePermission() { Name = permission.Name.Replace("FSE_", "") });
+ }
+
+ models.Add(model);
+ }
+ }
+
+ Directory.CreateDirectory(outputFolder);
+
+ foreach (var model in models)
+ {
+ Console.WriteLine($"Generating role '{model.Name}'...");
+
+ using (DynamicCsvFile csvFile = new DynamicCsvFile(Path.Combine(outputFolder, $"{model.Name}.csv")))
+ {
+ csvFile.Columns.Add(new DynamicCsvFileColumn() { Name = model.Name });
+
+ foreach (var permission in model.Permissions)
+ {
+ csvFile.Append(permission);
+ }
+ }
+ }
+
+ Console.WriteLine();
+ Console.WriteLine("Done!, press return to exit...");
+ Console.ReadLine();
+ }
+ }
+}