/// <summary>
 /// Patch registration
 /// </summary>
 /// <param name="registration"></param>
 /// <param name="request"></param>
 public static void Patch(this ApplicationRegistration registration,
                          ApplicationRegistrationUpdateModel request)
 {
     // Patch
     if (!string.IsNullOrEmpty(request.ApplicationName))
     {
         registration.ApplicationName = request.ApplicationName;
     }
     if (request.Capabilities != null)
     {
         registration.Capabilities =
             request.Capabilities.EncodeAsDictionary();
     }
     if (!string.IsNullOrEmpty(request.DiscoveryProfileUri))
     {
         registration.DiscoveryProfileUri = request.DiscoveryProfileUri;
     }
     if (!string.IsNullOrEmpty(request.GatewayServerUri))
     {
         registration.GatewayServerUri = request.GatewayServerUri;
     }
     if (!string.IsNullOrEmpty(request.ProductUri))
     {
         registration.ProductUri = request.ProductUri;
     }
     if (request.DiscoveryUrls != null)
     {
         registration.DiscoveryUrls =
             request.DiscoveryUrls?.ToList().EncodeAsDictionary();
     }
     if (request.LocalizedNames != null)
     {
         var table = registration.LocalizedNames;
         if (table == null)
         {
             table = new Dictionary <string, string>();
         }
         foreach (var item in request.LocalizedNames)
         {
             if (item.Value == null)
             {
                 table.Remove(item.Key);
             }
             else
             {
                 table.AddOrUpdate(item.Key, item.Value);
             }
         }
         registration.LocalizedNames = table;
     }
     registration.Validate();
 }
Esempio n. 2
0
 /// <summary>
 /// Patch application
 /// </summary>
 /// <param name="application"></param>
 /// <param name="request"></param>
 public static ApplicationInfoModel Patch(this ApplicationInfoModel application,
                                          ApplicationRegistrationUpdateModel request)
 {
     // Update from update request
     if (request.ApplicationName != null)
     {
         application.ApplicationName = string.IsNullOrEmpty(request.ApplicationName) ?
                                       null : request.ApplicationName;
     }
     if (request.LocalizedNames != null)
     {
         application.LocalizedNames = request.LocalizedNames;
     }
     if (request.ProductUri != null)
     {
         application.ProductUri = string.IsNullOrEmpty(request.ProductUri) ?
                                  null : request.ProductUri;
     }
     if (request.GatewayServerUri != null)
     {
         application.GatewayServerUri = string.IsNullOrEmpty(request.GatewayServerUri) ?
                                        null : request.GatewayServerUri;
     }
     if (request.Certificate != null)
     {
         application.Certificate = request.Certificate.Length == 0 ?
                                   null : request.Certificate;
     }
     if (request.Capabilities != null)
     {
         application.Capabilities = request.Capabilities.Count == 0 ?
                                    null : request.Capabilities;
     }
     if (request.DiscoveryUrls != null)
     {
         application.DiscoveryUrls = request.DiscoveryUrls.Count == 0 ?
                                     null : request.DiscoveryUrls;
     }
     if (request.Locale != null)
     {
         application.Locale = string.IsNullOrEmpty(request.Locale) ?
                              null : request.Locale;
     }
     if (request.DiscoveryProfileUri != null)
     {
         application.DiscoveryProfileUri = string.IsNullOrEmpty(request.DiscoveryProfileUri) ?
                                           null : request.DiscoveryProfileUri;
     }
     return(application);
 }
Esempio 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();
 }