Example #1
0
        private AppUserQueryRow ProcessMultiResults(DynamicSql query, object[] objs)
        {
            var row = new AppUserQueryRow();

            for (var i = 0; i < query.MultiResults.Count; i++)
            {
                var r = query.MultiResults[i];
                switch (r.Key)
                {
                case AppUserQueryProjection.INFO: row.AppUser = objs[i] as AppUserQueryResult; break;
                }
            }
            return(row);
        }
Example #2
0
        public IDictionary <string, object> GetAppUserDynamic(
            AppUserQueryRow row, AppUserQueryProjection projection,
            AppUserQueryOptions options, string currentAccId = null)
        {
            var obj = new Dictionary <string, object>();

            foreach (var f in projection.GetFieldsArr())
            {
                switch (f)
                {
                case AppUserQueryProjection.INFO:
                {
                    var entity = row.AppUser;
                    obj["username"]          = entity.UserName;
                    obj["full_name"]         = entity.FullName;
                    obj["phone_number"]      = entity.PhoneNumber;
                    obj["current_logged_in"] = entity.Id == currentAccId;
                }
                break;

                case AppUserQueryProjection.ROLES:
                {
                    var entities = row.AppUser.UserRoles?
                                   .Select(o => o.Role);
                    obj["roles"] = entities?.Select(o => new
                        {
                            name         = o.Name,
                            display_name = o.DisplayName,
                            role_type    = o.RoleType
                        }).ToList();
                }
                break;
                }
            }
            return(obj);
        }