Rewrite as standalone C# WinForms app
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>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
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>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user