public static JObject Serialize(UMAResource umaResource)
        {
            var result = new JObject
            {
                { UMAResourceNames.Id, umaResource.Id },
                { UMAResourceNames.ResourceScopes, new JArray(umaResource.Scopes) },
                { UMAResourceNames.IconUri, umaResource.IconUri },
                { UMAResourceNames.CreateDateTime, umaResource.CreateDateTime }
            };

            Enrich(result, UMAResourceNames.Type, umaResource.Type);
            Enrich(result, UMAResourceNames.Description, umaResource.Descriptions);
            Enrich(result, UMAResourceNames.Name, umaResource.Names);
            return(result);
        }
        private static UMAResource BuildUMAResource(JObject jObj, bool isHttpPost = false)
        {
            var id           = Guid.NewGuid().ToString();
            var result       = new UMAResource(id, DateTime.UtcNow);
            var scopes       = jObj.GetUMAScopesFromRequest();
            var descriptions = jObj.GetUMADescriptionFromRequest();
            var iconUri      = jObj.GetUMAIconURIFromRequest();
            var names        = jObj.GetUMANameFromRequest();
            var type         = jObj.GetUMATypeFromRequest();

            if (!scopes.Any())
            {
                throw new UMAInvalidRequestException(string.Format(UMAErrorMessages.MISSING_PARAMETER, UMAPermissionNames.ResourceScopes));
            }

            if (isHttpPost)
            {
                var subject = jObj.GetUMASubjectFromRequest();
                if (string.IsNullOrWhiteSpace(subject))
                {
                    throw new UMAInvalidRequestException(string.Format(UMAErrorMessages.MISSING_PARAMETER, UMAResourceNames.Subject));
                }

                result.Subject = subject;
            }

            foreach (var kvp in descriptions)
            {
                result.AddDescription(kvp.Key, kvp.Value);
            }

            foreach (var kvp in names)
            {
                result.AddName(kvp.Key, kvp.Value);
            }

            result.Type    = type;
            result.IconUri = iconUri;
            result.Scopes  = scopes.ToList();
            return(result);
        }
 public Task <bool> Update(UMAResource data, CancellationToken token)
 {
     _dbContext.Resources.Update(data);
     return(Task.FromResult(true));
 }