コード例 #1
0
        /// <summary>
        /// Adds a district to the system, only if it does not exist.
        /// </summary>
        private static void AddInitialDistrict(this IDbAppContext context, District initialDistrict)
        {
            District district = context.GetDistrictByMinistryDistrictId(initialDistrict.MinistryDistrictID);

            if (district != null)
            {
                return;
            }

            district = new District
            {
                MinistryDistrictID = initialDistrict.MinistryDistrictID,
                Name                   = initialDistrict.Name,
                StartDate              = initialDistrict.StartDate,
                AppCreateUserid        = SystemId,
                AppCreateTimestamp     = DateTime.UtcNow,
                AppLastUpdateUserid    = SystemId,
                AppLastUpdateTimestamp = DateTime.UtcNow
            };

            if (initialDistrict.Region != null)
            {
                Region region = context.GetRegionByMinistryRegionId(initialDistrict.Region.MinistryRegionID);
                district.Region = region;
            }
            else
            {
                district.Region = null;
            }

            context.Districts.Add(district);
        }
コード例 #2
0
        public static CCWJurisdiction GetCCWJurisdictionByCode(this IDbAppContext context, string code)
        {
            CCWJurisdiction item = context.CCWJurisdictions.Where(x => x.Code != null && x.Code.Equals(code, StringComparison.OrdinalIgnoreCase))
                                   .FirstOrDefault();

            return(item);
        }
コード例 #3
0
        public static CCWJurisdiction GetCCWJurisdictionByCode(this IDbAppContext context, string code)
        {
            CCWJurisdiction item = context.CCWJurisdictions.Where(x => x.Code != null && x.Code == code)
                                   .FirstOrDefault();

            return(item);
        }
コード例 #4
0
        private static void AddInitialServiceArea(this IDbAppContext context, ServiceArea initialServiceArea)
        {
            ServiceArea serviceArea = context.GetServiceAreaByMinistryServiceAreaId(initialServiceArea.MinistryServiceAreaID);

            if (serviceArea != null)
            {
                return;
            }

            serviceArea = new ServiceArea
            {
                MinistryServiceAreaID = initialServiceArea.MinistryServiceAreaID,
                Name      = initialServiceArea.Name,
                StartDate = initialServiceArea.StartDate
            };

            if (initialServiceArea.District != null)
            {
                District district = context.GetDistrictByMinistryDistrictId(initialServiceArea.District.MinistryDistrictID);
                serviceArea.District = district;
            }
            else
            {
                serviceArea.District = null;
            }

            context.ServiceAreas.Add(serviceArea);
            context.SaveChanges();
        }
コード例 #5
0
        /// <summary>
        /// Adds a district to the system, only if it does not exist.
        /// </summary>
        private static void AddInitialDistrict(this IDbAppContext context, District initialDistrict)
        {
            District district = context.GetDistrictByMinistryDistrictId(initialDistrict.MinistryDistrictID);

            if (district != null)
            {
                return;
            }

            district = new District
            {
                MinistryDistrictID = initialDistrict.MinistryDistrictID,
                Name      = initialDistrict.Name,
                StartDate = initialDistrict.StartDate
            };

            if (initialDistrict.Region != null)
            {
                Region region = context.GetRegionByMinistryRegionId(initialDistrict.Region.MinistryRegionID);
                district.Region = region;
            }
            else
            {
                district.Region = null;
            }

            context.Districts.Add(district);
            context.SaveChanges();
        }
コード例 #6
0
        private static void AddInitialServiceArea(this IDbAppContext context, ServiceArea initialServiceArea)
        {
            ServiceArea serviceArea = context.GetServiceAreaByMinistryServiceAreaId(initialServiceArea.MinistryServiceAreaID);

            if (serviceArea != null)
            {
                return;
            }

            serviceArea = new ServiceArea
            {
                MinistryServiceAreaID = initialServiceArea.MinistryServiceAreaID,
                Name                   = initialServiceArea.Name,
                StartDate              = initialServiceArea.StartDate,
                AppCreateUserid        = SystemId,
                AppCreateTimestamp     = DateTime.UtcNow,
                AppLastUpdateUserid    = SystemId,
                AppLastUpdateTimestamp = DateTime.UtcNow
            };

            if (initialServiceArea.District != null)
            {
                District district = context.GetDistrictByMinistryDistrictId(initialServiceArea.District.MinistryDistrictID);
                serviceArea.District = district;
            }
            else
            {
                serviceArea.District = null;
            }

            context.ServiceAreas.Add(serviceArea);
        }
コード例 #7
0
        /// <summary>
        /// Returns a region for a given Ministry Id
        /// </summary>
        /// <param name="context"></param>
        /// <param name="id">The Ministry Id</param>
        /// <returns>Region</returns>
        public static Region GetRegionByMinistryRegionId(this IDbAppContext context, int id)
        {
            Region region = context.Regions.Where(x => x.MinistryRegionID == id)
                            .FirstOrDefault();

            return(region);
        }
コード例 #8
0
        /// <summary>
        /// Returns a service area for a given Ministry Id
        /// </summary>
        /// <param name="context"></param>
        /// <param name="id">The Ministry Id</param>
        /// <returns>Region</returns>
        public static ServiceArea GetServiceAreaByMinistryServiceAreaId(this IDbAppContext context, int id)
        {
            ServiceArea serviceArea = context.ServiceAreas.Where(x => x.MinistryServiceAreaID == id)
                                      .Include(x => x.District.Region)
                                      .FirstOrDefault();

            return(serviceArea);
        }
コード例 #9
0
 /// <summary>
 /// Create regions from a (json) file
 /// </summary>
 /// <param name="context"></param>
 /// <param name="regionJsonPath"></param>
 public static void AddInitialRegionsFromFile(this IDbAppContext context, string regionJsonPath)
 {
     if (!string.IsNullOrEmpty(regionJsonPath) && File.Exists(regionJsonPath))
     {
         string regionJson = File.ReadAllText(regionJsonPath);
         context.AddInitialRegions(regionJson);
     }
 }
コード例 #10
0
        /// <summary>
        /// Returns a district for a given Ministry Id
        /// </summary>
        /// <param name="context"></param>
        /// <param name="id">The Ministry Id</param>
        /// <returns>District</returns>
        public static District GetDistrictByMinistryDistrictId(this IDbAppContext context, int id)
        {
            District district = context.Districts.Where(x => x.MinistryDistrictID == id)
                                .Include(x => x.Region)
                                .FirstOrDefault();

            return(district);
        }
コード例 #11
0
        /// <summary>
        /// Returns a role based on the role name
        /// </summary>
        /// <param name="context"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static Role GetRole(this IDbAppContext context, string name)
        {
            Role role = context.Roles.Where(x => x.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
                        .Include(r => r.RolePermissions).ThenInclude(p => p.Permission)
                        .FirstOrDefault();

            return(role);
        }
コード例 #12
0
        public static User GetUserBySmUserId(this IDbAppContext context, string smUserId)
        {
            User user = context.Users.Where(x => x.SmUserId != null && x.SmUserId == smUserId && x.Active)
                        .Include(u => u.UserRoles).ThenInclude(r => r.Role).ThenInclude(rp => rp.RolePermissions).ThenInclude(p => p.Permission)
                        .FirstOrDefault();

            return(user);
        }
コード例 #13
0
        public static Role GetRole(this IDbAppContext context, string name)
        {
            Role role = context.Roles.Where(x => x.Name == name)
                        .Include(r => r.RolePermissions).ThenInclude(p => p.Permission)
                        .FirstOrDefault();

            return(role);
        }
コード例 #14
0
 /// <summary>
 /// Create servive areas from a (json) file
 /// </summary>
 /// <param name="context"></param>
 /// <param name="districtJsonPath"></param>
 public static void AddInitialServiceAreasFromFile(this IDbAppContext context, string districtJsonPath)
 {
     if (!string.IsNullOrEmpty(districtJsonPath) && File.Exists(districtJsonPath))
     {
         string serviceAreaJson = File.ReadAllText(districtJsonPath);
         context.AddInitialServiceAreas(serviceAreaJson);
     }
 }
コード例 #15
0
        /// <summary>
        /// Returns a user based on the guid
        /// </summary>
        /// <param name="context"></param>
        /// <param name="guid"></param>
        /// <returns></returns>
        public static User GetUserByGuid(this IDbAppContext context, string guid)
        {
            User user = context.Users.Where(x => x.Guid != null && x.Guid.Equals(guid, StringComparison.OrdinalIgnoreCase))
                        .Include(u => u.UserRoles).ThenInclude(r => r.Role).ThenInclude(rp => rp.RolePermissions).ThenInclude(p => p.Permission)
                        .FirstOrDefault();

            return(user);
        }
コード例 #16
0
 /// <summary>
 /// Create users from a (json) file
 /// </summary>
 /// <param name="context"></param>
 /// <param name="userJsonPath"></param>
 public static void AddInitialUsersFromFile(this IDbAppContext context, string userJsonPath)
 {
     if (!string.IsNullOrEmpty(userJsonPath) && File.Exists(userJsonPath))
     {
         string userJson = File.ReadAllText(userJsonPath);
         context.AddInitialUsers(userJson);
     }
 }
コード例 #17
0
        private static void AddInitialUsers(this IDbAppContext context, string userJson)
        {
            List <User> users = JsonConvert.DeserializeObject <List <User> >(userJson);

            if (users != null)
            {
                context.AddInitialUsers(users);
            }
        }
コード例 #18
0
        private static void AddInitialCCWJurisdictions(this IDbAppContext context, string CCWJurisdictionJson)
        {
            List <CCWJurisdiction> CCWJurisdictions = JsonConvert.DeserializeObject <List <CCWJurisdiction> >(CCWJurisdictionJson);

            if (CCWJurisdictions != null)
            {
                context.AddInitialCCWJurisdictions(CCWJurisdictions);
            }
        }
コード例 #19
0
        private static void AddInitialServiceAreas(this IDbAppContext context, string serviceAreaJson)
        {
            List <ServiceArea> serviceAreas = JsonConvert.DeserializeObject <List <ServiceArea> >(serviceAreaJson);

            if (serviceAreas != null)
            {
                context.AddInitialServiceAreas(serviceAreas);
            }
        }
コード例 #20
0
        /// <summary>
        /// Returns a user based on the account name
        /// </summary>
        /// <param name="context"></param>
        /// <param name="smUserId"></param>
        /// <returns></returns>
        public static User GetUserBySmUserId(this IDbAppContext context, string smUserId)
        {
            User user = context.Users.Where(x => x.SmUserId != null && x.SmUserId.Equals(smUserId, StringComparison.OrdinalIgnoreCase))
                        .Include(u => u.UserRoles).ThenInclude(r => r.Role).ThenInclude(rp => rp.RolePermissions).ThenInclude(p => p.Permission)
                        .Include(u => u.GroupMemberships).ThenInclude(gm => gm.Group)
                        .FirstOrDefault();

            return(user);
        }
コード例 #21
0
        private static void AddInitialDistricts(this IDbAppContext context, string districtJson)
        {
            List <District> districts = JsonConvert.DeserializeObject <List <District> >(districtJson);

            if (districts != null)
            {
                context.AddInitialDistricts(districts);
            }
        }
コード例 #22
0
        private static void AddInitialRegions(this IDbAppContext context, string regionJson)
        {
            List <Region> regions = JsonConvert.DeserializeObject <List <Region> >(regionJson);

            if (regions != null)
            {
                context.AddInitialRegions(regions);
            }
        }
コード例 #23
0
        /// <summary>
        /// Adds a user to the system, only if they do not exist.
        /// </summary>
        private static void AddInitialUser(this IDbAppContext context, User initialUser)
        {
            User user = context.GetUserBySmUserId(initialUser.SmUserId);

            if (user != null)
            {
                return;
            }

            user           = new User();
            user.Active    = true;
            user.Email     = initialUser.Email;
            user.GivenName = initialUser.GivenName;
            user.Initials  = initialUser.Initials;
            user.SmAuthorizationDirectory = initialUser.SmAuthorizationDirectory;
            user.SmUserId = initialUser.SmUserId;
            user.Surname  = initialUser.Surname;

            District district = null;

            if (initialUser.District != null)
            {
                district = context.GetDistrictByMinistryDistrictId(initialUser.District.MinistryDistrictID);
            }

            user.District = district;

            context.Users.Add(user);
            context.SaveChanges();

            string[] userRoles = initialUser.UserRoles.Select(x => x.Role.Name).ToArray();
            if (user.UserRoles == null)
            {
                user.UserRoles = new List <UserRole>();
            }

            foreach (string userRole in userRoles)
            {
                Role role = context.GetRole(userRole);
                if (role != null)
                {
                    user.UserRoles.Add(
                        new UserRole
                    {
                        EffectiveDate = DateTime.UtcNow.Date,
                        Role          = role
                    });
                }
            }

            context.Users.Update(user);
            context.SaveChanges();
        }
コード例 #24
0
        /// <summary>
        /// Adds a region to the system, only if it does not exist.
        /// </summary>
        private static void AddInitialRegion(this IDbAppContext context, Region initialRegion)
        {
            Region region = context.GetRegionByMinistryRegionId(initialRegion.MinistryRegionID);

            if (region != null)
            {
                return;
            }

            region = new Region();
            region.MinistryRegionID = initialRegion.MinistryRegionID;
            region.Name             = initialRegion.Name;
            region.StartDate        = initialRegion.StartDate;

            context.Regions.Add(region);
            context.SaveChanges();
        }
コード例 #25
0
        /// <summary>
        /// Adds a CCWJurisdiction to the system, only if it does not exist.
        /// </summary>
        private static void AddInitialCCWJurisdiction(this IDbAppContext context, CCWJurisdiction initialCCWJurisdiction)
        {
            CCWJurisdiction CCWJurisdiction = context.GetCCWJurisdictionByCode(initialCCWJurisdiction.Code);

            if (CCWJurisdiction != null)
            {
                return;
            }

            CCWJurisdiction               = new CCWJurisdiction();
            CCWJurisdiction.ActiveFlag    = initialCCWJurisdiction.ActiveFlag;
            CCWJurisdiction.Code          = initialCCWJurisdiction.Code;
            CCWJurisdiction.Description   = initialCCWJurisdiction.Description;
            CCWJurisdiction.EffectiveDate = initialCCWJurisdiction.EffectiveDate;
            CCWJurisdiction.ExpiryDate    = initialCCWJurisdiction.ExpiryDate;

            context.CCWJurisdictions.Add(CCWJurisdiction);
            context.SaveChanges();
        }
コード例 #26
0
        /// <summary>
        /// Adds a region to the system, only if it does not exist.
        /// </summary>
        private static void AddInitialRegion(this IDbAppContext context, Region initialRegion)
        {
            Region region = context.GetRegionByMinistryRegionId(initialRegion.MinistryRegionID);

            if (region != null)
            {
                return;
            }

            region = new Region
            {
                MinistryRegionID       = initialRegion.MinistryRegionID,
                Name                   = initialRegion.Name,
                StartDate              = initialRegion.StartDate,
                AppCreateUserid        = SystemId,
                AppCreateTimestamp     = DateTime.UtcNow,
                AppLastUpdateUserid    = SystemId,
                AppLastUpdateTimestamp = DateTime.UtcNow
            };

            context.Regions.Add(region);
        }
コード例 #27
0
        /// <summary>
        /// Load User from HETS database using their userId and guid
        /// </summary>
        /// <param name="context"></param>
        /// <param name="userId"></param>
        /// <param name="guid"></param>
        /// <returns></returns>
        public static User LoadUser(this IDbAppContext context, string userId, string guid = null)
        {
            User user = null;

            if (!string.IsNullOrEmpty(guid))
            {
                user = context.GetUserByGuid(guid);
            }

            if (user == null)
            {
                user = context.GetUserBySmUserId(userId);
            }

            if (user == null)
            {
                return(null);
            }

            if (guid == null)
            {
                return(user);
            }

            if (string.IsNullOrEmpty(user.Guid))
            {
                // self register (write the users Guid to thd db)
                user.Guid = guid;
                context.SaveChanges();
            }
            else if (!user.Guid.Equals(guid, StringComparison.OrdinalIgnoreCase))
            {
                // invalid account - guid doesn't match user credential
                return(null);
            }

            return(user);
        }
コード例 #28
0
        public static User LoadUser(this IDbAppContext context, string username, string guid = null)
        {
            User user = null;

            if (!string.IsNullOrEmpty(guid))
            {
                user = context.GetUserByGuid(guid);
            }

            if (user == null)
            {
                user = context.GetUserBySmUserId(username);
            }

            if (user == null)
            {
                return(null);
            }

            if (guid != null)
            {
                if (string.IsNullOrEmpty(user.Guid))
                {
                    // Self register ...
                    user.Guid = guid;
                    context.SaveChanges();
                }
                else if (!user.Guid.Equals(guid, StringComparison.OrdinalIgnoreCase))
                {
                    // Registered users are not allowed to change their SiteMinder IDs ...
                    return(null);
                }
            }

            return(user);
        }
コード例 #29
0
 public DevAuthenticationHandler(IDbAppContext context, ILoggerFactory loggerFactory)
 {
     _logger  = loggerFactory.CreateLogger(typeof(SiteminderAuthenticationHandler));
     _context = context;
 }
コード例 #30
0
 /// <summary>
 /// Returns a group based on the group name
 /// </summary>
 /// <param name="context"></param>
 /// <param name="name"></param>
 /// <returns></returns>
 public static Group GetGroup(this IDbAppContext context, string name)
 {
     return(context.Groups.FirstOrDefault(x => x.Name.Equals(name, StringComparison.OrdinalIgnoreCase)));
 }