JsonDataSourceConnection.DesignExt.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using FastReport.Data.ConnectionEditors;
  2. using FastReport.Utils;
  3. using System;
  4. using System.Windows.Forms;
  5. namespace FastReport.Data.JsonConnection
  6. {
  7. partial class JsonDataSourceConnection
  8. {
  9. #region Private Fields
  10. public JsonDataSourceConnectionEditor Editor { get; set; }
  11. #endregion Private Fields
  12. #region Public Methods
  13. /// <inheritdoc/>
  14. public override string GetConnectionId()
  15. {
  16. JsonDataSourceConnectionStringBuilder builder = new JsonDataSourceConnectionStringBuilder(ConnectionString);
  17. string[] json = builder.Json.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
  18. if (json.Length > 1)
  19. return "JSON: " + json[1];
  20. else return "JSON: ";
  21. }
  22. /// <inheritdoc/>
  23. public override ConnectionEditorBase GetEditor()
  24. {
  25. return Editor = new JsonDataSourceConnectionEditor();
  26. }
  27. /// <inheritdoc/>
  28. public override void TestConnection()
  29. {
  30. jsonInternal = null;
  31. InitConnection();
  32. if (!String.IsNullOrEmpty(jsonSchemaString) && Editor != null && String.IsNullOrEmpty(Editor.JsonSchema))
  33. {
  34. Editor.JsonSchema = jsonSchemaString;
  35. Editor.IsJsonChanged = false;
  36. }
  37. else if (Editor.IsJsonChanged)
  38. {
  39. string askText = Res.Get("ConnectionEditors,Json,ConfirmChanges");
  40. DialogResult askResult = FRMessageBox.Confirm(askText, MessageBoxButtons.YesNo);
  41. if (askResult == DialogResult.Yes)
  42. {
  43. jsonInternal = null;
  44. jsonSchema = null;
  45. jsonSchemaString = "";
  46. InitConnection(true);
  47. Editor.JsonSchema = jsonSchemaString;
  48. Editor.IsJsonChanged = false;
  49. }
  50. }
  51. }
  52. #endregion Public Methods
  53. }
  54. }