public static void SeedDB2(ge_DbContext context, string source) { var u1 = context.Users.Where(user => user.UserName == "*****@*****.**").Single(); var u2 = context.Users.Where(user => user.UserName == "*****@*****.**").Single(); var u3 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var u4 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var u5 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var u6 = context.Users.Where(a => a.UserName == "*****@*****.**").Single();; var u7 = context.Users.Where(a => a.UserName == "*****@*****.**").Single();; var g1 = new ge_group { Id = Guid.NewGuid(), name = "Primary Geotechnical Group", locName = "", createdDT = DateTime.Now, locAddress = "", locPostcode = "", datumProjection = datumProjection.NONE, managerId = u4.Id, operations = "Read;", project_operations = "Create;Read;Update;Delete", projects = new List <ge_project>(), users = new List <ge_user_ops>() }; g1.users.Add(new ge_user_ops { userId = u1.Id, user_operations = "Read;Download;Create;Update;Delete;Approve;Admin" }); g1.users.Add(new ge_user_ops { userId = u2.Id, user_operations = "Read;Download;Create;Update;Delete" }); }
public async Task <operation_request> GetOperationRequest(string userId, ge_group group) { ge_user_ops group_user = await _unitOfWork.UserOps.GetByUserIdGroupId(userId, group.Id); operation_request req = new operation_request(group, group_user); return(req); }
public async Task <Boolean> AreGroupOperationsAllowed(string userId, ge_group group, string request_ops) { ge_user_ops group_user = await _unitOfWork.UserOps.GetByUserIdGroupId(userId, group.Id); operation_request req = new operation_request(group, group_user); return(req.AreGroupOperationsAllowed(request_ops)); }
public static bool IsUserAdmin(this ge_DbContext context, ge_group group, string userId) { if (context == null || group == null || userId == String.Empty) { return(false); } return(DoesUserHaveOperation(context, Constants.AdminOperationName, group, userId)); }
public async Task <ge_group> CreateGroup(ge_group newGroup) { await _unitOfWork.Group.AddAsync(newGroup); await _unitOfWork.CommitAsync(); return(newGroup); }
public async Task <string> GetAllowedOperations(string userId, ge_group group) { ge_user_ops group_user = await _unitOfWork.UserOps.GetByUserIdGroupId(userId, group.Id); operation_request req = new operation_request(group, group_user); return(req._effectiveGroup_ops); }
public async Task <Boolean> DoesUserHaveOperation(string operation, ge_group group, ge_user user) { var user_ops = await GetByUserIdGroupIdIncludeGroup(user.Id, group.Id); if (user_ops == null) { return(false); } return(user_ops.operations.Contains(operation)); }
public static bool IsUserLastAdmin(this ge_DbContext context, ge_group group, string userId) { string LastAdminUserId = context.lastAdminUserId(group); if (!String.IsNullOrEmpty(LastAdminUserId)) { if (LastAdminUserId == userId) { return(true); } } return(false); }
public static bool DoesUserHaveAnyOperations(this ge_DbContext context, ge_group group, string userEmail) { if (context == null || group == null || userEmail == String.Empty) { return(false); } var user_group = context.ge_user_ops .AsNoTracking() .Include(u => u.user) .Where(u => u.user.Email == userEmail && u.groupId == group.Id); return(user_group.Any()); }
public IActionResult OnGet() { /* if (!IsUserAnyGroupAdmin()) { * return RedirectToPageMessage(msgCODE.GROUP_CREATE_PROHIBITED); * } */ group = new ge_group(); string userId = GetUserIdAsync().Result; group.name = "My Group " + (_context.GetUserGroupCount(userId) + 1).ToString(); group.managerId = userId; ViewData["managerId"] = _context.getGroupUsers(null); return(Page()); }
public bool write(ge_group group, XmlNode parent) { write_base(group, parent); write_location(group, parent); try { AddNode("Id", group.Id.ToString(), parent); AddNode("name", group.name.ToString(), parent); return(true); } catch { return(false); } }
private string createXML(ge_group group) { ge_XML g = new ge_XML(); g._href = getHostHref() + constHref; XmlNode xmlgroup = g.createChild("group", group.Id.ToString(), null); foreach (var p in group.projects) { XmlNode xmlproject = g.createChild("project", p.Id.ToString(), null); g.write(p, xmlproject); foreach (var d in project.data) { XmlNode xmldata = g.createChild("data", d.Id.ToString(), xmlproject); g.write(d, xmldata); } } return(g.ToString()); }
public static string lastAdminUserId(this ge_DbContext context, ge_group group) { if (context == null || group == null) { return(String.Empty); } string userId = ""; var admin_user_group = context.ge_user_ops .AsNoTracking() .Where(p => p.user_operations.Contains(Constants.AdminOperationName) && p.groupId == group.Id); if (admin_user_group.Count() > 1) { userId = String.Empty; } else { userId = admin_user_group.FirstOrDefault().userId; } return(userId); }
public void insertGroup(ge_group group) { }
public async Task <Boolean> IsUserGroupAdmin(string userId, ge_group group) { ge_user_ops group_user = await _unitOfWork.UserOps.GetByUserIdGroupId(userId, group.Id); return(group_user.user_operations.Contains("Admin")); }
public static bool DoesUserHaveOperation(this ge_DbContext context, string operation, ge_group group, string userId) { if (context == null || group == null || operation == null || userId == String.Empty) { return(false); } bool retvar = false; ge_user_ops user_group = null; if (group.Id == Guid.Empty) { return(IsUserAnyGroupAdmin(context, userId)); } user_group = context.ge_user_ops .AsNoTracking() .Where(u => u.groupId == group.Id) .Where(u => u.userId == userId).FirstOrDefault(); if (user_group != null) { if (user_group.user_operations.Contains(operation)) { context.Entry <ge_user_ops>(user_group).State = EntityState.Detached; user_group = null; retvar = true; } } return(retvar); }
public static int IsOperationAllowed(this ge_DbContext context, string operation, ge_group group) { if (context == null || group == null || operation == String.Empty) { return(geOPSResp.InvalidInput); } if (group.operations == null) { return(geOPSResp.Group); } if (!group.operations.Contains(operation)) { return(geOPSResp.Group); } return(geOPSResp.Allowed); }
public static int IsOperationAllowed(this ge_DbContext context, string operation, ge_group group, ge_project project) { if (context == null || group == null || project == null || operation == String.Empty) { return(geOPSResp.InvalidInput); } // Check at group level; if (group.project_operations == null) { return(geOPSResp.GroupProject);; } if (!group.project_operations.Contains(operation)) { return(geOPSResp.GroupProject); } // Check for new project if (project.Id == Guid.Empty) { return(geOPSResp.Allowed); } // Check at project level if it is approved and cannot be edited or deleted if (operation == Constants.UpdateOperationName || operation == Constants.DeleteOperationName) { if (project.pstatus == Constants.PublishStatus.Approved) { return(geOPSResp.ProjectApproved); } } if (project.operations == null) { return(geOPSResp.Project); } if (!project.operations.Contains(operation)) { return(geOPSResp.Project); } return(geOPSResp.Allowed); }
public async Task UpdateGroup(ge_group from, ge_group to) { to.name = from.name; to.managerId = from.managerId; await _unitOfWork.CommitAsync(); }
public static void SeedDB(ge_DbContext context, string source) { if (context.ge_project.Any() && context.ge_data.Any()) { return; // DB has been seeded } try { #region snippit_CreateOffices var manager1 = context.Users.Where(user => user.UserName == "*****@*****.**").Single(); var user1 = context.Users.Where(user => user.UserName == "*****@*****.**").Single(); var g1 = new ge_group { Id = Guid.NewGuid(), locName = "Croydon", createdDT = DateTime.Now, locAddress = "Sunley House, 4 Bedford Park, Surrey, Croydon", locPostcode = "CR0 2AP", datumProjection = datumProjection.OSGB36NG, managerId = manager1.Id, operations = "Read;Update;Delete", project_operations = "Create;Read;Update;Delete", projects = new List <ge_project>(), users = new List <ge_user_ops>() }; g1.users.Add(new ge_user_ops { groupId = g1.Id, userId = manager1.Id, user_operations = "Read;Download;Create;Update;Delete;Approve;Admin" }); g1.users.Add(new ge_user_ops { groupId = g1.Id, userId = user1.Id, user_operations = "Read;Download;Create;Update;Delete" }); var manager2 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var manager22 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var user2 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var g2 = new ge_group { Id = Guid.NewGuid(), locName = "Aldgate", createdDT = DateTime.Now, locAddress = "2 Leman Street, London", locPostcode = "E1 8FA", manager = manager2, datumProjection = datumProjection.OSGB36NG, operations = "Read;Update;Delete", project_operations = "Create;Read;Update;Delete", projects = new List <ge_project>(), users = new List <ge_user_ops>() }; g2.users.Add(new ge_user_ops { userId = manager2.Id, user_operations = "Create;Read;Update;Delete;Reject;Approve;Admin" }); g2.users.Add(new ge_user_ops { userId = user2.Id, user_operations = "Create;Read;Update;Delete" }); g2.users.Add(new ge_user_ops { userId = manager22.Id, user_operations = "Create;Read;Update;Delete;Admin" }); var manager3 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var user3 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var g3 = new ge_group { Id = Guid.NewGuid(), locName = "Chelmsford", createdDT = DateTime.Now, locAddress = "Saxon House, 27 Duke Street, Chelmsford", locPostcode = "CM1 1HT", managerId = manager3.Id, datumProjection = datumProjection.OSGB36NG, operations = "Read;Update;Delete", project_operations = "Create;Read;Update;Delete", projects = new List <ge_project>(), users = new List <ge_user_ops>() }; g3.users.Add(new ge_user_ops { userId = manager3.Id, operations = "Create;Read;Update;Delete;Reject;Approve;Admin" }); g3.users.Add(new ge_user_ops { userId = user3.Id, operations = "Create;Read;Update;Delete" }); var manager4 = context.Users.Where(a => a.UserName == "*****@*****.**").Single();; var user4 = context.Users.Where(a => a.UserName == "*****@*****.**").Single();; var g4 = new ge_group { Id = Guid.NewGuid(), locName = "Basingstoke", createdDT = DateTime.Now, locAddress = "Midpoint, Alencon Link, Hampshire, Basingstoke, ", locPostcode = "RG21 7PP", datumProjection = datumProjection.OSGB36NG, managerId = manager4.Id, operations = "Read;Update;Delete", project_operations = "Read;Update;Delete", projects = new List <ge_project>(), users = new List <ge_user_ops>() }; g4.users.Add(new ge_user_ops { userId = manager4.Id, operations = "Create;Read;Update;Delete;Reject;Approve;Admin" }); g4.users.Add(new ge_user_ops { userId = user4.Id, operations = "Create;Read;Update;Delete" }); #endregion #region CreateProjects var p1 = new ge_project { Id = Guid.NewGuid(), locName = "Burton Upon Trent SWWM Appraisal", locAddress = "Meadowside Drive, Burton, East Staffordshire, Staffordshire, West", locPostcode = "DE14 1LD", description = "Ground Investigation Data for Burton SWWM", createdId = user1.Id, keywords = " ", start_date = new DateTime(2017, 11, 15), createdDT = DateTime.Now, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, locEast = 425388, locNorth = 323033, datumProjection = datumProjection.OSGB36NG, managerId = manager1.Id, operations = "Read;Update;Delete", data_operations = "Read;Create;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p1.users.Add(new ge_user_ops { projectId = p1.Id, userId = manager1.Id, user_operations = "Create;Read;Update;Delete;Approve;Admin" }); p1.users.Add(new ge_user_ops { projectId = p1.Id, userId = user1.Id, user_operations = "Create;Read;Update;Delete" }); p1.data.Add(new ge_data { createdId = user1.Id, createdDT = DateTime.Now, filename = "E7037A_Burton SWWM_Final Factual Report AGS4.ags", fileext = ".ags", filetype = "text/plain", filesize = 948423, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, version = "P01.1", vstatus = VersionStatus.Intermediate, qstatus = QualitativeStatus.AECOMFactual, description = "AGS data downloaded from BGS website", operations = "Read;Update;Delete", file = new ge_data_file { data_string = File.ReadAllText(source + @"\E7037A_Burton SWWM\E7037A_Burton SWWM_Final Factual Report AGS4.ags") } } ); var p11 = new ge_project { Id = Guid.NewGuid(), name = "AGS Dictionary", description = "Developement of AGS Reference Dictionary for converting from AGS to XML and SQL data formats", createdId = user1.Id, keywords = "ags, xml ", start_date = new DateTime(2017, 11, 15), createdDT = DateTime.Now, pstatus = PublishStatus.Approved, cstatus = ConfidentialityStatus.Owned, locEast = 529565, locNorth = 177615, datumProjection = datumProjection.OSGB36NG, managerId = manager1.Id, operations = "Read;Update;Delete", data_operations = "Read;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p11.users.Add(new ge_user_ops { projectId = p1.Id, userId = manager1.Id, user_operations = "Create;Read;Update;Delete;Approve;Admin" }); p11.users.Add(new ge_user_ops { projectId = p1.Id, userId = user1.Id, user_operations = "Create;Read;Update;Delete" }); p11.data.Add(new ge_data { createdId = user1.Id, createdDT = DateTime.Now, filename = "DictionaryAgsml_0.0.14.xml", fileext = ".xml", filetype = "text/plain", filesize = 948423, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Approved, cstatus = ConfidentialityStatus.Owned, version = "P01.1", vstatus = VersionStatus.Final, qstatus = QualitativeStatus.AECOMFactual, description = "AGS data dictionary", operations = "Read;Update;Delete", file = new ge_data_file { data_string = File.ReadAllText(source + @"\AGS Dictionary\DictionaryAgsml_0.0.14.xml") } } ); p11.data.Add(new ge_data { createdId = user1.Id, createdDT = DateTime.Now, filename = "DictionaryAgsml.xsl", fileext = ".xsl", filetype = "text/plain", filesize = 2582, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Approved, cstatus = ConfidentialityStatus.Owned, version = "P01.1", vstatus = VersionStatus.Final, qstatus = QualitativeStatus.AECOMFactual, description = "AGS xml data template", operations = "Read;Update;Delete", file = new ge_data_file { data_string = File.ReadAllText(source + @"\AGS Dictionary\DictionaryAgsml.xsl") } } ); var p2 = new ge_project { name = "Tideway C410 HEAPS", description = "Ground Invetsigation Data close to the CSO shaft HEAPS", createdId = user2.Id, keywords = "London Clay;London Basin;Lambeth Group;Pressuremeter;Small Strain", start_date = new DateTime(2017, 11, 15), createdDT = DateTime.Now, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, locEast = 529565, locNorth = 177615, managerId = manager2.Id, operations = "Read;Update;Delete", data_operations = "Read;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p2.users.Add(new ge_user_ops { projectId = p2.Id, userId = manager2.Id, user_operations = "Create;Read;Update;Delete;Reject;Approve;Admin" }); p2.users.Add(new ge_user_ops { projectId = p2.Id, userId = user2.Id, user_operations = "Create;Read;Update;Delete" }); p2.users.Add(new ge_user_ops { projectId = p2.Id, userId = manager22.Id, user_operations = "Create;Read;Update;Delete;Approve;Admin" }); p2.data.Add(new ge_data { createdId = user2.Id, createdDT = DateTime.Now, filename = "heaps_boreholes_3d_03-Geological Plan2.pdf", fileext = ".pdf", filetype = "application/pdf", filesize = 2177973, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, version = "P01.1", vstatus = VersionStatus.Intermediate, qstatus = QualitativeStatus.AECOMFactual, description = "Surfaces created from gINT Civil Tools for HEAPS", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\Tideway HEAPS\heaps_boreholes_3d_03-Geological Plan.pdf") } } ); p2.data.Add(new ge_data { createdId = user2.Id, createdDT = DateTime.Now, filename = "4602-FLOJV-HEAPS-180-GG-MD-900001.gpj", fileext = ".gpj", filetype = "application/gINT", filesize = 19427328, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, version = "P01.1", vstatus = VersionStatus.Intermediate, qstatus = QualitativeStatus.AECOMFactual, description = "Tideway database exports of gINT database for HEAPS local GI data", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\Tideway HEAPS\4602-FLOJV-HEAPS-180-GG-MD-900001.gpj") } } ); var p3 = new ge_project { locName = "Ryhad Metro", name = "Ryad Metro", description = "Bridge 1-5 1A1P30", createdId = user3.Id, keywords = "Rock sockets", start_date = new DateTime(2018, 06, 15), createdDT = DateTime.Now, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, datumProjection = datumProjection.OSGB36NG, operations = "Read;Update;Delete", data_operations = "Read;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p3.users.Add(new ge_user_ops { projectId = p3.Id, userId = manager3.Id, user_operations = "Create;Read;Update;Delete;Reject;Approve;Admin" }); p3.users.Add(new ge_user_ops { projectId = p3.Id, userId = user3.Id, user_operations = "Create;Read;Update;Delete" }); p3.data.Add(new ge_data { createdId = user3.Id, createdDT = DateTime.Now, filename = "M-BD4-1A1VDA-CSVD-EDR-100532_Updated with Orientation.dwg", fileext = ".dwg", filetype = "application/autocad", filesize = 19427328, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, version = "P01.1", vstatus = VersionStatus.Intermediate, qstatus = QualitativeStatus.AECOMFactual, description = "Tideway database exports of gINT database for HEAPS local GI data", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\Ryhad Metro\M-BD4-1A1VDA-CSVD-EDR-100532_Updated with Orientation.dwg") } }); p3.data.Add(new ge_data { createdId = user3.Id, createdDT = DateTime.Now, filename = "1A1P30 and 1A1P31 Plaxis Embedded Pile Results 2017-03-09.xlsx", fileext = ".xls", filetype = "application/excel", filesize = 19427328, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, version = "P01.1", vstatus = VersionStatus.Intermediate, qstatus = QualitativeStatus.AECOMFactual, description = "Results from Plaxis Analysis", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\Ryhad Metro\1A1P30 and 1A1P31 Plaxis Embedded Pile Results 2017-03-09.xlsx") } } ); var p31 = new ge_project { locName = "Silvertown Tunnel", name = "Silvertown Tunnel Development Tender Phase", description = "Tender design for Silvertown Tunnel", createdId = user3.Id, keywords = "Road Tunnel;Lambeth Group;London;Infrastructure;", start_date = new DateTime(2018, 06, 15), createdDT = DateTime.Now, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, operations = "Read;Update;Delete", data_operations = "Read;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p31.users.Add(new ge_user_ops { projectId = p3.Id, userId = manager3.Id, user_operations = "Create;Read;Update;Delete;Reject;Approve;Admin" }); p31.users.Add(new ge_user_ops { projectId = p3.Id, userId = user3.Id, user_operations = "Create;Read;Update;Delete" }); p31.data.Add(new ge_data { createdId = user3.Id, createdDT = DateTime.Now, filename = "20110770 - 2016-03-03 1540 - Final - 2.ags", fileext = ".ags", filetype = "text/plain", filesize = 19787, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Approved, cstatus = ConfidentialityStatus.RequiresClientApproval, version = "P01.1", folder = "tender-data", vstatus = VersionStatus.Final, qstatus = QualitativeStatus.ThirdPartyFactual, description = "Silvertown AGS data recieved at tender", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\Silvertown Tunnel\20110770 - 2016-03-03 1540 - Final - 2.ags") } } ); p31.data.Add(new ge_data { createdId = user3.Id, createdDT = DateTime.Now, filename = "TA7510F17.ags", fileext = ".ags", filetype = "text/plain", filesize = 8479000, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Approved, cstatus = ConfidentialityStatus.RequiresClientApproval, version = "P01.1", folder = "tender_data", vstatus = VersionStatus.Final, qstatus = QualitativeStatus.ThirdPartyFactual, description = "Silvertown additional AGS data recieved at tender", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\Silvertown Tunnel\TA7510F17.ags") } } ); p31.data.Add(new ge_data { createdId = user3.Id, createdDT = DateTime.Now, filename = "SilvertownGI.xml", fileext = ".xml", filetype = "text/plain", filesize = 5653000, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Approved, cstatus = ConfidentialityStatus.RequiresClientApproval, version = "P01.1", folder = "tender_data", vstatus = VersionStatus.Final, qstatus = QualitativeStatus.ThirdPartyFactual, description = "Silvertown additional AGS data recieved at tender", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\Silvertown Tunnel\SilvertownGI.xml") } } ); var p4 = new ge_project { locName = "West Midlands to Crewe", name = "High Speed 2 Package 2A", description = "Historic Ground Investigation Data fro HS2 Package 2A", createdId = user4.Id, keywords = "Mercia Mudstone;Earthworks;Monitoring", start_date = new DateTime(2018, 06, 15), createdDT = DateTime.Now, pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.ClientApproved, data = new List <ge_data>(), users = new List <ge_user_ops>(), operations = "Read;Update;Delete", data_operations = "Read;Update;Delete" }; p4.users.Add(new ge_user_ops { projectId = p4.Id, userId = manager4.Id, user_operations = "Create;Read;Update;Delete;Reject;Approve;Admin" }); p4.users.Add(new ge_user_ops { projectId = p4.Id, userId = user4.Id, user_operations = "Create;Read;Update;Delete" }); p4.data.Add(new ge_data { filename = "HS2 PH2B AGS EXPORT 2018-12-18.ags", fileext = ".ags", filetype = "text/plain", createdId = user4.Id, createdDT = DateTime.Now, filesize = 2183000, filedate = new DateTime(2018, 06, 28), locEast = 425388.43, locNorth = 323032.67, pstatus = PublishStatus.Approved, cstatus = ConfidentialityStatus.RequiresClientApproval, version = "P01.1", vstatus = VersionStatus.Intermediate, qstatus = QualitativeStatus.ThirdPartyFactual, description = "Routewide historical borehole data compiled from BGS", operations = "Read;Update;Delete", file = new ge_data_file { data_binary = File.ReadAllBytes(source + @"\HS2\HS2 PH2B AGS EXPORT 2018-12-18.ags") } } ); #endregion #region AddProjectsToOffices g1.projects.Add(p1); g1.projects.Add(p11); g2.projects.Add(p2); g3.projects.Add(p3); g3.projects.Add(p31); g4.projects.Add(p4); context.ge_group.Add(g1); context.ge_group.Add(g2); context.ge_group.Add(g3); context.ge_group.Add(g4); // var user5 = context.Users.Where(a => a.UserName=="*****@*****.**").Single(); // var admin = context.Users.Where(a => a.UserName=="*****@*****.**").Single(); context.SaveChanges(); #endregion } catch (Exception e) { Console.WriteLine(e.Message); } }
public void updateGroup(ge_group group) { }
public static int IsOperationAllowed(this ge_DbContext context, string operation, ge_group group, ge_project project, ge_data data) { if (context == null || data == null || project == null || group == null || operation == String.Empty) { return(geOPSResp.InvalidInput); } // Check at group level; if (group.project_operations == null) { return(geOPSResp.GroupProject);; } if (!group.project_operations.Contains(operation)) { return(geOPSResp.GroupProject); } // check project record status if (project.data_operations == null) { return(geOPSResp.ProjectData); } if (!project.data_operations.Contains(operation)) { return(geOPSResp.ProjectData); } if (operation == Constants.UpdateOperationName || operation == Constants.DeleteOperationName) { if (project.pstatus == Constants.PublishStatus.Approved) { return(geOPSResp.ProjectApproved); } } //Check data record status if (data.Id == Guid.Empty) { return(geOPSResp.Allowed); } if (operation == Constants.UpdateOperationName || operation == Constants.DeleteOperationName) { if (data.pstatus == Constants.PublishStatus.Approved) { return(geOPSResp.DataApproved); } } if (data.operations == null) { return(geOPSResp.Data); } if (!data.operations.Contains(operation)) { return(geOPSResp.Data); } return(geOPSResp.Allowed); }
public async Task DeleteGroup(ge_group group) { _unitOfWork.Group.Remove(group); await _unitOfWork.CommitAsync(); }
public static void SeedLowerThamesCrossing(ge_DbContext context) { var manager1 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var user1 = context.Users.Where(a => a.UserName == "*****@*****.**").Single(); var g1 = new ge_group { Id = Guid.NewGuid(), locName = "Lower Thames Crossing Ground Investigation", createdDT = DateTime.Now, locAddress = "", locPostcode = "", datumProjection = datumProjection.NONE, managerId = manager1.Id, operations = "Read;Update;Delete", project_operations = "Create;Read;Update;Delete", projects = new List <ge_project>(), users = new List <ge_user_ops>() }; g1.users.Add(new ge_user_ops { groupId = g1.Id, userId = manager1.Id, user_operations = "Read;Download;Create;Update;Delete;Approve;Admin" }); g1.users.Add(new ge_user_ops { groupId = g1.Id, userId = user1.Id, user_operations = "Read;Download;Create;Update;Delete" }); dbConnectDetails cd1 = new dbConnectDetails() { Type = gINTTables.DB_DATA_TYPE, Server = "EUDTC1PSQLW001", Database = "ltc_ags4", DataSource = "172.17.136.103", UserId = "ltc_ags4", Password = "******" }; #region CreateProjects var p1 = new ge_project { Id = Guid.NewGuid(), locName = "Lower Thames Crossing Package A", locAddress = "", locPostcode = "", description = "Monitoring Data for Lower Thames Crossing Package A", keywords = "", createdId = user1.Id, createdDT = DateTime.Now, editedId = user1.Id, editedDT = DateTime.Now, start_date = new DateTime(2017, 11, 15), pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.RequiresClientApproval, datumProjection = datumProjection.NONE, managerId = manager1.Id, operations = "Read;Update;Delete", data_operations = "Read;Create;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p1.users.Add(new ge_user_ops { projectId = p1.Id, userId = manager1.Id, user_operations = "Create;Read;Update;Delete;Approve;Admin" }); p1.users.Add(new ge_user_ops { projectId = p1.Id, userId = user1.Id, user_operations = "Create;Read;Update;Delete" }); var p2 = new ge_project { Id = Guid.NewGuid(), locName = "Lower Thames Crossing Package B", locAddress = "", locPostcode = "", description = "Monitoring Data for Lower Thames Crossing Package B", createdId = user1.Id, createdDT = DateTime.Now, editedId = user1.Id, editedDT = DateTime.Now, keywords = "", start_date = new DateTime(2017, 11, 15), pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.Owned, datumProjection = datumProjection.NONE, managerId = manager1.Id, operations = "Read;Update;Delete", data_operations = "Read;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p2.users.Add(new ge_user_ops { projectId = p1.Id, userId = manager1.Id, user_operations = "Create;Read;Update;Delete;Approve;Admin" }); p2.users.Add(new ge_user_ops { projectId = p1.Id, userId = user1.Id, user_operations = "Create;Read;Update;Delete" }); var p3 = new ge_project { Id = Guid.NewGuid(), locName = "Lower Thames Crossing Package C", locAddress = "", locPostcode = "", description = "Monitoring Data for Lower Thames Crossing Package C", createdId = user1.Id, createdDT = DateTime.Now, editedId = user1.Id, editedDT = DateTime.Now, keywords = "", start_date = new DateTime(2017, 11, 15), pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.Owned, datumProjection = datumProjection.NONE, managerId = manager1.Id, operations = "Read;Update;Delete", data_operations = "Read;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p3.users.Add(new ge_user_ops { projectId = p3.Id, userId = manager1.Id, user_operations = "Create;Read;Update;Delete;Approve;Admin" }); p3.users.Add(new ge_user_ops { projectId = p3.Id, userId = user1.Id, user_operations = "Create;Read;Update;Delete" }); string folder = @"\\eu.aecomnet.com\euprojectvol\UKCRD1-TI\Projects\14\geotech1\Projects\Lower Thames Crossing\Package C\02 WIP\LTM Data Round0"; AddFile(p3, folder + "\\" + "Logger_Data 2019-11-14 to 2019-12-16.csv", user1); AddFile(p3, folder + "\\" + "Package B Round0 Long Term Monitoring data 2020-01-31.csv", user1); var p4 = new ge_project { Id = Guid.NewGuid(), locName = "Lower Thames Crossing Package D", locAddress = "", locPostcode = "", description = "Monitoring Data for Lower Thames Crossing Package D", createdId = user1.Id, createdDT = DateTime.Now, editedId = user1.Id, editedDT = DateTime.Now, keywords = "", start_date = new DateTime(2017, 11, 15), pstatus = PublishStatus.Uncontrolled, cstatus = ConfidentialityStatus.Owned, datumProjection = datumProjection.NONE, managerId = manager1.Id, operations = "Read;Update;Delete", data_operations = "Read;Update;Delete", data = new List <ge_data>(), users = new List <ge_user_ops>() }; p4.users.Add(new ge_user_ops { projectId = p4.Id, userId = manager1.Id, user_operations = "Create;Read;Update;Delete;Approve;Admin" }); p4.users.Add(new ge_user_ops { projectId = p4.Id, userId = user1.Id, user_operations = "Create;Read;Update;Delete" }); #endregion g1.projects.Add(p1); g1.projects.Add(p2); g1.projects.Add(p3); g1.projects.Add(p4); context.ge_group.Add(g1); context.SaveChanges(); }