ArchiveSettingClientFunctions.cs 1.52 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.Container.ArchiveSetting;

namespace DirRX.Container.Client
{
  partial class ArchiveSettingFunctions
  {    
    /// <summary>
    /// Отобразить параметры подключения к сервису импорта контейнеров.
    /// </summary>
    public virtual void ShowIntegrationServiceParams()
    {
      var apiAuth = _obj.WebApiAuthentication;
      
      var apiLogin = string.Empty;
      var apiPassword = string.Empty;
      if (!string.IsNullOrEmpty(apiAuth))
      {
        // Раскодировать строку аутентификации.
        var byteArray = System.Convert.FromBase64String(apiAuth);
        var decoded = System.Text.Encoding.ASCII.GetString(byteArray).Split(new char[] { ':' }, 2);
        apiLogin = decoded[0];
        apiPassword = decoded[1];
      }

      var dialog = Dialogs.CreateInputDialog("Аутентификация");
      var apiLoginSelector = dialog.AddString("Логин", true, apiLogin);
      var apiPasswordSelector = dialog.AddPasswordString("Пароль", true, apiPassword);
      
      if (dialog.Show() == DialogButtons.Ok)
      {        
        var newAuth = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(string.Format("{0}:{1}", apiLoginSelector.Value, apiPasswordSelector.Value)));
        
        if (newAuth != apiAuth)
          _obj.WebApiAuthentication = newAuth;
      }
    }
  }
}