public void Build(HttpContextBase context)
        {
            Username       = GetUsername(context.User).ToLower();
            PermissionData = new Dictionary <string, string>();

            //Get the user groups of the logged in user.  Typicaly this will only be one, but some users do belong to multiple groups.
            //When a user does belong to multiple groups there is a potential for conflicts among the same permission codes.  When this happens, the permisison value with the greates weight
            //will tae precedence
            using (var dbContext = new DatabaseModel.whitmanenterprisewarehouseEntities())
            {
                var groups = dbContext.vincontrolusergroups.Select(
                    ug => new { ug.vincontrolgroup.groupid, ug.vincontroluser.username })
                             .Where(g => g.username.ToLower() == Username);

                foreach (var userGroup in groups)
                {
                    Buid(userGroup.groupid);
                }
            }
        }
        private void Buid(int groupId)
        {
            using (var dbContext = new DatabaseModel.whitmanenterprisewarehouseEntities())
            {
                var groupPermissions =
                    dbContext.vincontrolgrouppermissions
                    .Select(gp => new { gp.vincontrolgroup.groupid, gp.vincontrolpermissioncode.permissioncode, gp.vincontrolpermissionvalue.permissionvalue })
                    .Where(gp => gp.groupid == groupId);

                foreach (var g in groupPermissions)
                {
                    if (!PermissionData.ContainsKey(g.permissioncode) && g.permissionvalue != NO_ACCESS)
                    {
                        PermissionData.Add(g.permissioncode, g.permissionvalue);
                    }
                    else if (PermissionData.ContainsKey(g.permissioncode) && PermissionData[g.permissioncode] != ALL_ACCESS)
                    {
                        PermissionData[g.permissioncode] = g.permissionvalue;
                    }
                }
            }
        }