Exemplo n.º 1
0
        /// <summary>
        /// Convert to document model
        /// </summary>
        /// <returns></returns>
        public static ApplicationDocument ToDocumentModel(
            this ApplicationInfoModel model, string etag = null)
        {
            var document = new ApplicationDocument {
                ID = 0,
                ApplicationState = model.State,
                ApplicationId    = model.ApplicationId,
                ApplicationUri   = model.ApplicationUri,
                ApplicationName  = model.ApplicationName ??
                                   model.LocalizedNames.FirstOrDefault().Value,
                ApplicationType  = model.ApplicationType,
                SiteId           = model.SiteId,
                ApplicationNames =
                    GetLocalizedText(model.LocalizedNames),
                ProductUri         = model.ProductUri,
                DiscoveryUrls      = model.DiscoveryUrls?.ToArray(),
                ServerCapabilities =
                    GetServerCapabilitiesAsString(model.Capabilities),
                GatewayServerUri    = model.GatewayServerUri,
                DiscoveryProfileUri = model.DiscoveryProfileUri,
                UpdateTime          = model.Updated?.Time,
                NotSeenSince        = model.NotSeenSince,
                CreateTime          = model.Created?.Time,
                ApproveTime         = model.Approved?.Time,
                UpdateAuthorityId   = model.Updated?.AuthorityId,
                CreateAuthorityId   = model.Created?.AuthorityId,
                ApproveAuthorityId  = model.Approved?.AuthorityId,
                ETag = etag
            };

            document.Validate();
            return(document);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Patch document
 /// </summary>
 /// <param name="document"></param>
 /// <param name="request"></param>
 public static void Patch(this ApplicationDocument document,
                          ApplicationRegistrationUpdateModel request)
 {
     // Patch
     if (!string.IsNullOrEmpty(request.ApplicationName))
     {
         document.ApplicationName = request.ApplicationName;
     }
     if (request.Capabilities != null)
     {
         document.ServerCapabilities =
             GetServerCapabilitiesAsString(request.Capabilities);
     }
     if (!string.IsNullOrEmpty(request.DiscoveryProfileUri))
     {
         document.DiscoveryProfileUri = request.DiscoveryProfileUri;
     }
     if (!string.IsNullOrEmpty(request.GatewayServerUri))
     {
         document.GatewayServerUri = request.GatewayServerUri;
     }
     if (!string.IsNullOrEmpty(request.ProductUri))
     {
         document.ProductUri = request.ProductUri;
     }
     if (request.DiscoveryUrls != null)
     {
         document.DiscoveryUrls = request.DiscoveryUrls.ToArray();
     }
     if (request.LocalizedNames != null)
     {
         var table = GetLocalizedText(document.ApplicationNames);
         foreach (var item in request.LocalizedNames)
         {
             if (item.Value == null)
             {
                 table.Remove(item.Key);
             }
             else
             {
                 table.AddOrUpdate(item.Key, item.Value);
             }
         }
         document.ApplicationNames = GetLocalizedText(table);
     }
     document.Validate();
 }