private void ValidateUpdateProperty(ScopeMetaData scopeMetaData, string type, string value) { if (scopeMetaData == null) { throw new ArgumentNullException("scopeMetaData"); } if (String.IsNullOrWhiteSpace(type)) { ModelState.AddModelError("", Messages.PropertyTypeRequired); return; } var prop = scopeMetaData.UpdateProperties.SingleOrDefault(x => x.Type == type); if (prop == null) { ModelState.AddModelError("", String.Format(Messages.PropertyInvalid, type)); } else { var error = prop.Validate(value); if (error != null) { ModelState.AddModelError("", error); } } }
private IEnumerable <string> ValidateCreateProperties(ScopeMetaData scopeMetaData, IEnumerable <PropertyValue> properties) { if (scopeMetaData == null) { throw new ArgumentNullException("scopeMetaData"); } properties = properties ?? Enumerable.Empty <PropertyValue>(); var meta = scopeMetaData.CreateProperties; return(meta.Validate(properties)); }
private IdentityAdminMetadata GetMetadata() { if (_metadata == null) { var updateClient = new List <PropertyMetadata>(); updateClient.AddRange(PropertyMetadata.FromType <InMemoryClient>()); var createClient = new List <PropertyMetadata> { PropertyMetadata.FromProperty <InMemoryClient>(x => x.ClientName, "ClientName", required: true), PropertyMetadata.FromProperty <InMemoryClient>(x => x.ClientId, "ClientId", required: true), }; var client = new ClientMetaData { SupportsCreate = true, SupportsDelete = true, CreateProperties = createClient, UpdateProperties = updateClient }; var updateScope = new List <PropertyMetadata>(); updateScope.AddRange(PropertyMetadata.FromType <InMemoryScope>()); var createScope = new List <PropertyMetadata> { PropertyMetadata.FromProperty <InMemoryScope>(x => x.Name, "ScopeName", required: true), }; var scope = new ScopeMetaData { SupportsCreate = true, SupportsDelete = true, CreateProperties = createScope, UpdateProperties = updateScope }; _metadata = new IdentityAdminMetadata { ClientMetaData = client, ScopeMetaData = scope }; } return(_metadata); }
public CreateScopeLink(UrlHelper url, ScopeMetaData scopeMetaData) { this["href"] = url.RelativeLink(Constants.RouteNames.CreateScope); this["meta"] = scopeMetaData.CreateProperties; }
public ScopeQueryResultResource(QueryResult <ScopeSummary> result, UrlHelper url, ScopeMetaData meta) { if (result == null) { throw new ArgumentNullException("result"); } if (url == null) { throw new ArgumentNullException("url"); } if (meta == null) { throw new ArgumentNullException("meta"); } Data = new ScopeQueryResultResourceData(result, url, meta); var links = new Dictionary <string, object>(); if (meta.SupportsCreate) { links["create"] = new CreateScopeLink(url, meta); } ; Links = links; }
public ScopeQueryResultResourceData(QueryResult <ScopeSummary> result, UrlHelper url, ScopeMetaData meta) { if (result == null) { throw new ArgumentNullException("result"); } if (url == null) { throw new ArgumentNullException("url"); } if (meta == null) { throw new ArgumentNullException("meta"); } AutoMapper.Mapper.Map(result, this); foreach (var scope in this.Items) { var links = new Dictionary <string, string> { { "detail", url.Link(Constants.RouteNames.GetScope, new { subject = scope.Data.Subject }) } }; if (meta.SupportsDelete) { links.Add("delete", url.Link(Constants.RouteNames.DeleteScope, new { subject = scope.Data.Subject })); } scope.Links = links; } }