Ejemplo n.º 1
0
        public List <OrgRole> ListRolesForOrganization(string accessToken, int organizationID)
        {
            var query = new ListRolesForOrganization_Q
            {
                OrganizationID = organizationID
            };

            var result = _queryDispatcher.Dispatch <ListRolesForOrganization_Q, List <OrgRole> >(accessToken, query);

            return(result);
        }
Ejemplo n.º 2
0
        public List <OrgRole> Handle(string accessTokenID, ListRolesForOrganization_Q query)
        {
            Dictionary <int, OrgRole>             xRoles          = new Dictionary <int, OrgRole>();
            Dictionary <int, HashSet <PayGrade> > xRolesPayGrades = new Dictionary <int, HashSet <PayGrade> >();

            using (var connection = _connFactory.GetConnection())
            {
                connection.Open();

                var sql = @"
                    select
	                    r.ID
	                    ,r.OrganizationID
	                    ,r.RoleName
	                    ,r.RoleDisplayName
	                    ,r.RoleType
	                    ,r.RoleOrderBy
	                    ,r.IsActive
	                    ,r.IsHidden
	                    ,g.ID
	                    ,g.PayGradeName
	                    ,g.PayGradeDisplayName
	                    ,g.PayGradeOrderBy
	                    ,g.PayGradeGroup
	                    ,g.IsActive
                    from Organizations.Roles r
                    join Organizations.PayGradeOrgRoleMap m
	                    on m.OrgRoleID = r.ID
                    join People.PayGrades g
	                    on g.ID = m.PayGradeID
                    where r.OrganizationID = @OrganizationID           
                ";

                var res = connection.Query <OrgRole, PayGrade, OrgRole>(sql, (role, paygrade) =>
                {
                    if (!xRoles.ContainsKey(role.ID))
                    {
                        xRoles[role.ID] = role;
                    }

                    if (paygrade != null)
                    {
                        if (!xRolesPayGrades.ContainsKey(role.ID))
                        {
                            xRolesPayGrades[role.ID] = new HashSet <PayGrade>();
                        }
                        xRolesPayGrades[role.ID].Add(new PayGrade
                        {
                            ID                  = paygrade.ID,
                            PayGradeName        = paygrade.PayGradeName,
                            PayGradeDisplayName = paygrade.PayGradeDisplayName,
                            PayGradeOrderBy     = paygrade.PayGradeOrderBy,
                            PayGradeGroup       = paygrade.PayGradeGroup,
                            IsActive            = paygrade.IsActive
                        });
                    }

                    return(role);
                }, new { OrganizationID = query.OrganizationID }).ToList();

                foreach (var r in xRoles.Values)
                {
                    HashSet <PayGrade> payGrades = null;
                    xRolesPayGrades.TryGetValue(r.ID, out payGrades);
                    if (payGrades != null)
                    {
                        r.SupportedPayGrades = payGrades.ToList();
                    }
                }

                return(xRoles.Values.ToList());
            }
        }