/// <summary> /// Convert registration request to application info model /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <param name="disabled"></param> /// <returns></returns> public static ApplicationInfoModel ToApplicationInfo( this ApplicationRegistrationRequestModel request, RegistryOperationContextModel context, bool disabled = true) { return(new ApplicationInfoModel { ApplicationName = request.ApplicationName, LocalizedNames = request.LocalizedNames, ProductUri = request.ProductUri, DiscoveryUrls = request.DiscoveryUrls, DiscoveryProfileUri = request.DiscoveryProfileUri, ApplicationType = request.ApplicationType ?? ApplicationType.Server, ApplicationUri = request.ApplicationUri, Locale = request.Locale, Capabilities = request.Capabilities, GatewayServerUri = request.GatewayServerUri, SiteId = request.SiteId, NotSeenSince = disabled ? DateTime.UtcNow : (DateTime?)null, Created = context, Updated = null, ApplicationId = null, DiscovererId = null, HostAddresses = null, }); }
/// <summary> /// Convert to service model /// </summary> /// <returns></returns> public static ApplicationDocument ToDocumentModel( this ApplicationRegistrationRequestModel model, uint id) { var document = new ApplicationDocument { ID = id, ApplicationState = ApplicationState.New, CreateTime = DateTime.UtcNow, SiteId = model.SiteId, ApplicationId = ApplicationInfoModelEx.CreateApplicationId( model.SiteId, model.ApplicationUri, model.ApplicationType), ApplicationUri = model.ApplicationUri, ApplicationName = model.ApplicationName ?? model.LocalizedNames.FirstOrDefault().Value, ApplicationType = model.ApplicationType ?? ApplicationType.ClientAndServer, ApplicationNames = GetLocalizedText(model.LocalizedNames), ProductUri = model.ProductUri, DiscoveryUrls = model.DiscoveryUrls?.ToArray(), ServerCapabilities = GetServerCapabilitiesAsString(model.Capabilities), GatewayServerUri = model.GatewayServerUri, DiscoveryProfileUri = model.DiscoveryProfileUri, }; document.Validate(); return(document); }