Exemple #1
0
        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));
        }
Exemple #4
0
 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));
 }
Exemple #5
0
        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));
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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());
        }
Exemple #11
0
        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);
            }
        }
Exemple #12
0
        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());
        }
Exemple #13
0
        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);
        }
Exemple #14
0
 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"));
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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);
        }
Exemple #19
0
 public async Task UpdateGroup(ge_group from, ge_group to)
 {
     to.name      = from.name;
     to.managerId = from.managerId;
     await _unitOfWork.CommitAsync();
 }
Exemple #20
0
        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);
            }
        }
Exemple #21
0
 public void updateGroup(ge_group group)
 {
 }
Exemple #22
0
        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);
        }
Exemple #23
0
 public async Task DeleteGroup(ge_group group)
 {
     _unitOfWork.Group.Remove(group);
     await _unitOfWork.CommitAsync();
 }
Exemple #24
0
        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();
        }