public string Export() { try { var buffer = new StringBuilder(); if (_propertytMappings == null) { _propertytMappings = new Dictionary <string, string>(); } buffer.Append("{\r\n"); buffer.Append(String.Format("\t\"DebugPrint\": \"{0}\",\r\n", DebugPrint.ToString())); buffer.Append(String.Format("\t\"ProxyGroup\": \"{0}\",\r\n", ProxyGroup)); buffer.Append(String.Format("\t\"LDAPURI\": \"{0}\",\r\n", LdapURI)); buffer.Append(String.Format("\t\"RootOU\": \"{0}\",\r\n", RootOU)); buffer.Append(String.Format("\t\"IdProperty\": \"{0}\",\r\n", IdProperty)); buffer.Append(String.Format("\t\"EmailProperty\": \"{0}\",\r\n", EmailProperty)); buffer.Append(String.Format("\t\"ModifiedProperty\": \"{0}\",\r\n", ModifiedProperty)); buffer.Append("\t\"Properties\":\r\n\t[\r\n"); var count = PropertyMappings.Count; var i = 0; foreach (var mapping in PropertyMappings) { buffer.Append(String.Format("\t\t{{\r\n\t\t\t\"Name\": \"{0}\",\r\n\t\t\t\"Source\": \"{1}\",\r\n\t\t\t\"Destination\": \"{2}\"\r\n\t\t}}", mapping.Name, mapping.Source, mapping.Destination)); if (++i < count) { buffer.Append(","); } buffer.Append("\r\n"); } buffer.Append("\t],\r\n"); //sync targets buffer.Append("\t\"SyncTargets\":\r\n\t[\r\n"); count = SyncTargets.Count; i = 0; foreach (var target in SyncTargets) { buffer.Append(String.Format("\t\t{{\r\n\t\t\t\"Name\": \"{0}\",\r\n\t\t\t\"OU\": \"{1}\"\r\n\t\t}}", target.Name, target.TargetOU)); if (++i < count) { buffer.Append(","); } buffer.Append("\r\n"); } buffer.Append("\t],\r\n"); //sync records buffer.Append("\t\"SyncRecords\":\r\n\t[\r\n"); count = SyncRecords.Count; i = 0; foreach (var mapping in SyncRecords) { buffer.Append(String.Format("\t\t{{\r\n\t\t\t\"OU\": \"{0}\",\r\n\t\t\t\"LastSync\": \"{1}\"\r\n\t\t}}", mapping.OUName, mapping.SyncTime)); if (++i < count) { buffer.Append(","); } buffer.Append("\r\n"); } buffer.Append("\t]\r\n"); buffer.Append("}"); return(buffer.ToString()); } catch (Exception ex) { Logger.WriteLog(Logger.Category.Error, Logger.DiagnosticAreaName, ex.ToString()); throw; } }