Files
starface-outlook-sync-addin/src/StarfaceOutlookSync/Models/SyncProfile.cs
T
duffyduck 84ba78a1c5 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>
2026-04-03 10:26:58 +02:00

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>();
}
}