84ba78a1c5
Replace the Office Web Add-in with a native Windows application. The web add-in required Exchange/M365 for registration which is not available in all customer environments (standalone Office, POP/IMAP only). The new app: - Uses COM Interop to access Outlook contacts directly - Communicates with Starface REST API (accepts self-signed certs) - Runs as System Tray app with optional auto-sync - Profile-based config stored in %AppData% - No webserver, no certificates, no Exchange, no M365 needed - Inno Setup installer for clean MSI-style deployment - Works with any Outlook version (Classic and New) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
61 lines
2.1 KiB
C#
61 lines
2.1 KiB
C#
namespace StarfaceOutlookSync.Models
|
|
{
|
|
public enum SyncDirection
|
|
{
|
|
Both,
|
|
OutlookToStarface,
|
|
StarfaceToOutlook
|
|
}
|
|
|
|
public class StarfaceConnection
|
|
{
|
|
public string Host { get; set; } = "";
|
|
public int Port { get; set; } = 443;
|
|
public bool UseSsl { get; set; } = true;
|
|
public string LoginId { get; set; } = "";
|
|
public string Password { get; set; } = "";
|
|
}
|
|
|
|
public class StarfaceAddressBook
|
|
{
|
|
public string Type { get; set; } = "central"; // central, user, tag
|
|
public string UserId { get; set; } = "";
|
|
public string TagId { get; set; } = "";
|
|
public string Name { get; set; } = "";
|
|
|
|
public override string ToString() => Name;
|
|
}
|
|
|
|
public class SyncProfile
|
|
{
|
|
public string Id { get; set; } = "";
|
|
public string Name { get; set; } = "";
|
|
public StarfaceConnection StarfaceConnection { get; set; } = new StarfaceConnection();
|
|
public StarfaceAddressBook StarfaceAddressBook { get; set; } = new StarfaceAddressBook();
|
|
public string OutlookFolderPath { get; set; } = "";
|
|
public string OutlookFolderName { get; set; } = "Kontakte";
|
|
public SyncDirection SyncDirection { get; set; } = SyncDirection.Both;
|
|
public string LastSync { get; set; } = "";
|
|
public bool Enabled { get; set; } = true;
|
|
public int AutoSyncIntervalMinutes { get; set; } = 0; // 0 = manuell
|
|
}
|
|
|
|
public class SyncMapping
|
|
{
|
|
public string ProfileId { get; set; } = "";
|
|
public string OutlookEntryId { get; set; } = "";
|
|
public string StarfaceId { get; set; } = "";
|
|
public string LastSyncHash { get; set; } = "";
|
|
}
|
|
|
|
public class SyncResult
|
|
{
|
|
public string ProfileName { get; set; } = "";
|
|
public string Timestamp { get; set; } = "";
|
|
public int Created { get; set; }
|
|
public int Updated { get; set; }
|
|
public int Errors { get; set; }
|
|
public System.Collections.Generic.List<string> ErrorMessages { get; set; } = new System.Collections.Generic.List<string>();
|
|
}
|
|
}
|