This repository has been archived on 2026-07-19 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
be5edc203c2b4e6712260759cc313ae5e9ab71f8
Two related improvements:
1. About tab → "בדוק עדכונים" button. Calls ClickOnce's
ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate +
Update on background threads, so the user can pull a new release
immediately without leaving Outlook — no PowerShell, no
CleanOnlineAppCache dance.
Status messages cover the four real outcomes:
• not deployed via ClickOnce (F5 / dev install) → explicit error
• on the latest version → green "already up to date"
• update available → progress text, then "installed — restart
Outlook"
• download / manifest / generic exception → red, with reason
2. Case folder resolution now matches the server. The previous client
logic used Case.name (the lawsuit title, e.g. "מונאס אריאל נ' ביטוח
לאומי") which produced "47-מונאס אריאל נ ביטוח לאומי". But
NetworkStorageIntegration's buildEntityFolderName uses the primary
contact's name from Case.contactsIds[0] → server actually creates
"47-אריאל מונאס" for the same case, so the two diverged and our
uploads went to a phantom folder.
New flow on case selection:
a) EnsureCaseSubfoldersAsync (creates server's canonical folders)
b) GetCase with select=contactsIds + networkStorageFolderPath
c) GetContactAsync on contactsIds[0] → grab Name
d) ResolveCaseFolderPath(case, contactName) → exact match
e) Cache result on vm.ResolvedCaseFolderPath; AddInHost reads it
instead of recomputing.
ResolveCaseFolderPath fallback order is now (1) the integration's
stored path, (2) <number>-<primary contact name>, (3) <number>-<case
name>, (4) the contact / case name alone — matching the server's
buildEntityFolderName logic step by step.
Tests: 39 passing.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
OutlookAddin — תוסף EspoCRM ל-Outlook Desktop
תוסף VSTO/COM ל-Outlook ל-Windows שמאפשר לעו"ד לתייק מיילים ל-EspoCRM ישירות מ-Outlook, בלי הגדרת BCC.
פיצ'רים
- תיוק מייל קיים לתיק/לקוח — Ribbon button "File to EspoCRM" עם דיאלוג חיפוש (Case/Contact/Lead/Account).
- חיפוש לקוח/תיק על מייל נכנס — Reading-pane sidebar שמזהה את השולח ומציג את התיקים הקיימים.
- כתיבת מייל חדש מתוך תיק — מ-Outlook (Ribbon ב-compose) או מ-EspoCRM (URL protocol
outlookaddin://compose?caseId=...). - סנכרון אוטומטי של תיקיות נבחרות — Auto-file למיילים שמגיעים לתיקיות שמוגדרות לניטור.
דרישות
- Windows 10/11
- Outlook desktop: Microsoft 365 / Office 2021 / Office 2019 (לא 2016)
- .NET Framework 4.8 (מובנה ב-Win10/11)
- API key ב-EspoCRM (מקבלים מאדמין)
התקנה
ClickOnce — לחץ על הלינק https://platform.dev.marcus-law.co.il/outlook-addin/setup.exe ועקוב אחר ההוראות. Outlook יעלה מחדש אוטומטית.
ארכיטקטורה
- Server-side: MailRouter v1.2.0 חושף
POST /api/v1/MailRouter/file. - Client-side: ה-Add-in מדבר עם MailRouter (file) + EspoCRM REST API (search/lookup).
- Auth:
Espo-Authorization: <base64(username:apiKey)>per-user.
מבנה ה-Solution: ראה docs/ARCHITECTURE.md.
פיתוח
# ב-Windows machine עם VS 2022 + VSTO workload
git clone https://gitea.dev.marcus-law.co.il/espocrm-extensions/OutlookAddin.git
cd OutlookAddin
nuget restore
msbuild /t:Build /p:Configuration=Debug
# F5 ב-VS מפעיל Outlook עם ה-Add-in טעון לדיבאג
CI build על Windows runner ב-Gitea Actions — ראה .gitea/workflows/build.yml.
רישיון
Internal use only — Marcus-Law.
Description
Languages
C#
99.2%
PowerShell
0.4%
Dockerfile
0.4%