diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index 6addf44e9..588baa13c 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -16,7 +16,7 @@
true
Internet
true
- false
+ true
8E3A8E81F1C6F67A1C6D239593544EA33D8AC6A7
@@ -43,12 +43,12 @@
de-DE
BeWoPlaner
ownSoft GmbH
- 2.0.1.277
+ 2.0.1.279
true
publish.htm
false
true
- 278
+ 279
2.0.1.%2a
false
true
diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs
index da2f0582d..b2bc33919 100644
--- a/BeWo/BeWoApp.xaml.cs
+++ b/BeWo/BeWoApp.xaml.cs
@@ -58,7 +58,7 @@ namespace BeWo
public static string ShortVersion = "3.27";
- public static string Version = "Version 3.27.2";
+ public static string Version = "Version 3.27.3";
public static int RenderTier = 0;
public static bool IsInDesignMode = DesignerProperties.GetIsInDesignMode(new DependencyObject());
diff --git a/BeWo/DebugConfig.cs b/BeWo/DebugConfig.cs
index 43eca4a00..94d39cc51 100644
--- a/BeWo/DebugConfig.cs
+++ b/BeWo/DebugConfig.cs
@@ -24,8 +24,9 @@ namespace BeWo
///
/// Wird verwendet, wenn keine DebugConfig geladen wurde oder DefaultProfilename empty ist
///
- public static string ServerUrl { get; set; }
- = "http://localhost:3777/Host";
+ public static string ServerUrl { get; set; }
+ //= "https://app5.bewoplaner.de/service";
+ = "http://localhost:3777/Host";
// = "http://178.63.79.124/service";
public DebugConfigMode DebugConfigMode { get; set; }
diff --git a/BeWo/View/Controls/AssessmentSheetValueControl.xaml.cs b/BeWo/View/Controls/AssessmentSheetValueControl.xaml.cs
index a2d45140b..e477ef077 100644
--- a/BeWo/View/Controls/AssessmentSheetValueControl.xaml.cs
+++ b/BeWo/View/Controls/AssessmentSheetValueControl.xaml.cs
@@ -29,7 +29,7 @@ namespace BeWo.View.Controls
c.shine.Visibility = Visibility.Visible;
c.tb.Text = vm.Sign;
c.border.Background = vm.Brush;
- c.border.ToolTip = vm.Description;
+ c.border.ToolTip = vm.DataContract.Tooltip;
}
else
{
diff --git a/BeWo/View/Detail/ServiceCategoryView.xaml b/BeWo/View/Detail/ServiceCategoryView.xaml
index 6d30f053c..2eaf43a32 100644
--- a/BeWo/View/Detail/ServiceCategoryView.xaml
+++ b/BeWo/View/Detail/ServiceCategoryView.xaml
@@ -12,6 +12,7 @@
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
+
@@ -114,11 +115,11 @@
-
+
-
-
+
+
@@ -156,5 +157,6 @@
+
\ No newline at end of file
diff --git a/BeWo/View/Detail/ServiceDescriptionView.xaml b/BeWo/View/Detail/ServiceDescriptionView.xaml
index 936319620..20e22ad64 100644
--- a/BeWo/View/Detail/ServiceDescriptionView.xaml
+++ b/BeWo/View/Detail/ServiceDescriptionView.xaml
@@ -120,7 +120,7 @@
-
+
@@ -133,8 +133,8 @@
-
-
+
+
diff --git a/BeWo/View/Detail/TeamView.xaml b/BeWo/View/Detail/TeamView.xaml
index d4e3e6110..3eb781a83 100644
--- a/BeWo/View/Detail/TeamView.xaml
+++ b/BeWo/View/Detail/TeamView.xaml
@@ -1,5 +1,6 @@
@@ -92,6 +93,17 @@
+
+
+
@@ -128,6 +140,7 @@
+
@@ -136,17 +149,66 @@
-
-
-
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -195,7 +257,7 @@
-
+
diff --git a/BeWo/View/Detail/TeamView.xaml.cs b/BeWo/View/Detail/TeamView.xaml.cs
index cef92ab77..5ebc7b565 100644
--- a/BeWo/View/Detail/TeamView.xaml.cs
+++ b/BeWo/View/Detail/TeamView.xaml.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Windows;
@@ -16,6 +17,8 @@ using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
+using BS.Shared.Translation;
+using DevExpress.Xpf.Grid;
namespace BeWo.View.Detail
{
@@ -45,6 +48,19 @@ namespace BeWo.View.Detail
{
tabitem_varFields.Visibility = Visibility.Collapsed;
}
+
+ if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ChatSettings) || !BeWoApp.AppSettings.ShowOwnChat)
+ {
+ CheckBoxIstOwnChatGruppe.Visibility = Visibility.Collapsed;
+ //GroupBoxOwnChat.Visibility = Visibility.Collapsed;
+ }
+ //else
+ //{
+ // ToggleOwnChatGroupBox();
+ //}
+
+ RebuildOwnChatMemberTree();
+
}
public override bool IsDirty => ViewModel != null && ViewModel.IsDirty;
@@ -126,6 +142,107 @@ namespace BeWo.View.Detail
ViewModel.Member.AddRange(employeesearchview.SelectedItems.Where(em => !ViewModel.Member.Contains(em)));
}
+ private void button_addOwnChatMember_Click(object sender, RoutedEventArgs e)
+ {
+
+ ViewModel.OwnChatMember.AddRange(ConvertToPerson2TeamList(ConvertToPersonDC(ownChatemployeesearchview.SelectedItems).Where(p => !ViewModel.OwnChatMember.Select(p2c => p2c.Person).Contains(p)).ToList()));
+ ViewModel.OwnChatMember.AddRange(ConvertToPerson2TeamList(ConvertToPersonDC(ownChatcustomersearchview.SelectedItems).Where(p => !ViewModel.OwnChatMember.Select(p2c => p2c.Person).Contains(p)).ToList()));
+ ViewModel.OwnChatMember.AddRange(ConvertToPerson2TeamList(ownChatpersonsearchview.SelectedItems.Where(p => !ViewModel.OwnChatMember.Select(p2c => p2c.Person).Contains(p)).ToList()));
+
+ RebuildOwnChatMemberTree();
+ }
+
+ private void RebuildOwnChatMemberTree()
+ {
+ treelistcontrol_ownChatMember.BeginDataUpdate();
+
+ TreeListNode mRootNode = null;
+ TreeListNode cRootNode = null;
+ TreeListNode pRootNode = null;
+
+ if (treelistcontrol_ownChatMember.View.Nodes.Count == 0)
+ {
+ mRootNode = new TreeListNode();
+ mRootNode.Content = new Person2TeamDC() { Person = new CompactPersonDC { LastName = Translator.Translate("Mitarbeiter") } };
+ mRootNode.IsExpandButtonVisible = DevExpress.Utils.DefaultBoolean.True;
+ mRootNode.IsExpanded = true;
+ treelistcontrol_ownChatMember.View.Nodes.Add(mRootNode);
+
+ cRootNode = new TreeListNode();
+ cRootNode.Content = new Person2TeamDC() { Person = new CompactPersonDC { LastName = Translator.Translate("Klienten") } };
+ cRootNode.IsExpandButtonVisible = DevExpress.Utils.DefaultBoolean.True;
+ cRootNode.IsExpanded = true;
+ treelistcontrol_ownChatMember.View.Nodes.Add(cRootNode);
+
+ pRootNode = new TreeListNode();
+ pRootNode.Content = new Person2TeamDC() { Person = new CompactPersonDC { LastName = Translator.Translate("Personen") } };
+ pRootNode.IsExpandButtonVisible = DevExpress.Utils.DefaultBoolean.True;
+ pRootNode.IsExpanded = true;
+ treelistcontrol_ownChatMember.View.Nodes.Add(pRootNode);
+ }
+ else
+ {
+ mRootNode = treelistcontrol_ownChatMember.View.Nodes[0];
+ cRootNode = treelistcontrol_ownChatMember.View.Nodes[1];
+ pRootNode = treelistcontrol_ownChatMember.View.Nodes[2];
+
+ mRootNode.Nodes.Clear();
+ cRootNode.Nodes.Clear();
+ pRootNode.Nodes.Clear();
+ }
+
+ foreach (var p in ViewModel.OwnChatMember)
+ {
+ TreeListNode node = new TreeListNode();
+ node.Content = p;
+ if (p.Person.PersonType == PersonType.Employee)
+ {
+ mRootNode.Nodes.Add(node);
+ }
+ else if (p.Person.PersonType == PersonType.Customer)
+ {
+ cRootNode.Nodes.Add(node);
+ }
+ else
+ {
+ pRootNode.Nodes.Add(node);
+ }
+
+ }
+
+ treelistcontrol_ownChatMember.EndDataUpdate();
+ }
+
+ private IList ConvertToPerson2TeamList(List plist)
+ {
+ var list = new List();
+ foreach (var item in plist)
+ {
+ list.Add(new Person2TeamDC { Person = item, OwnChatRole = 0 });
+ }
+ return list;
+ }
+
+ private IList ConvertToPersonDC(List employees)
+ {
+ var list = new List();
+ foreach (var item in employees)
+ {
+ list.Add(new CompactPersonDC { FirstName = item.FirstName, LastName = item.LastName, PersonType = PersonType.Employee, PersonOid = item.PersonOid, EmployeeOid = item.EmployeeOid });
+ }
+ return list;
+ }
+
+ private IEnumerable ConvertToPersonDC(List customer)
+ {
+ var list = new List();
+ foreach (var item in customer)
+ {
+ list.Add(new CompactPersonDC { FirstName = item.FirstName, LastName = item.LastName, PersonType = PersonType.Customer, PersonOid = item.PersonOid, CustomerOid = item.CustomerOid});
+ }
+ return list;
+ }
+
private void button_remove_Click(object sender, RoutedEventArgs e)
{
ViewModel.Member.Remove((CompactEmployeeDC)((Button)sender).Tag);
@@ -183,5 +300,46 @@ namespace BeWo.View.Detail
() => BeWoUtils.OpenModalViewWindow(cb, this, () => this.Dispatch(
() => BeWoUtils.UpdateAllViews(employee)))));
}
+
+ private void OwnChatTreeListContextMenu_Opened(object sender, RoutedEventArgs e)
+ {
+
+ }
+ private void OwnChatTreeListContextMenu_Click(object sender, RoutedEventArgs e)
+ {
+ if (e.OriginalSource is MenuItem)
+ {
+ var twi = e.OriginalSource as MenuItem;
+
+ var selection = treelistcontrol_ownChatMember.GetSelectedNodes();
+
+ if (selection != null && selection.Length > 0)
+ {
+ var persons = selection.Select(s => s.Content as Person2TeamDC).ToList();
+ ViewModel.OwnChatMember.RemoveRange(persons);
+
+ RebuildOwnChatMemberTree();
+ }
+ }
+ }
+
+ //private void ToggleOwnChatGroupBox_Checked_Unchecked(object sender, RoutedEventArgs e)
+ //{
+ // ToggleOwnChatGroupBox();
+ //}
+
+ //private void ToggleOwnChatGroupBox()
+ //{
+ // if (CheckBoxIstOwnChatGruppe.IsChecked == true)
+ // {
+ // GroupBoxOwnChat.Visibility = Visibility.Visible;
+ // GroupBoxTeam.Visibility = Visibility.Collapsed;
+ // }
+ // else
+ // {
+ // GroupBoxOwnChat.Visibility = Visibility.Collapsed;
+ // GroupBoxTeam.Visibility = Visibility.Visible;
+ // }
+ //}
}
}
\ No newline at end of file
diff --git a/BeWo/ViewModel/TeamVM.cs b/BeWo/ViewModel/TeamVM.cs
index f23d158a0..5a9379478 100644
--- a/BeWo/ViewModel/TeamVM.cs
+++ b/BeWo/ViewModel/TeamVM.cs
@@ -27,6 +27,10 @@ namespace BeWo.ViewModel
private ObservableCollection _Member;
+ private ObservableCollection _OwnChatMember;
+
+ private bool _IsOwnChatTeam;
+
private string _Name;
private string _Notice;
@@ -45,6 +49,21 @@ namespace BeWo.ViewModel
}
}
+ public bool IsOwnChatTeam
+ {
+ get { return _IsOwnChatTeam; }
+
+ set
+ {
+ if (AreDifferent(_IsOwnChatTeam, value))
+ {
+ _IsOwnChatTeam = value;
+ StoreDirtyInformation(AreDifferent(DataContract.IsOwnChatTeam, value), nameof(IsOwnChatTeam));
+ FirePropertyChanged(nameof(IsOwnChatTeam));
+ }
+ }
+ }
+
public CompactEmployeeDC Leader
{
get { return this._Leader; }
@@ -84,6 +103,20 @@ namespace BeWo.ViewModel
}
}
+ public ObservableCollection OwnChatMember
+ {
+ get { return this._OwnChatMember; }
+
+ set
+ {
+ if (this.AreDifferent(this._OwnChatMember, value))
+ {
+ this._OwnChatMember = value;
+ this.FirePropertyChanged(nameof(OwnChatMember));
+ }
+ }
+ }
+
[ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public string Name
{
@@ -132,9 +165,10 @@ namespace BeWo.ViewModel
protected override void InitByDataContract(TeamDC pDataContract)
{
this._Member = new ObservableCollection();
-
+ this._OwnChatMember = new ObservableCollection();
if (!this.IsNew)
{
+ this._IsOwnChatTeam = pDataContract.IsOwnChatTeam;
this._Name = pDataContract.Name;
this._Notice = pDataContract.Notice;
this._Leader = pDataContract.Leader;
@@ -143,19 +177,25 @@ namespace BeWo.ViewModel
{
this._Member.AddRange(pDataContract.Member.OrderBy(m => string.Format("{0},{1}", m.LastName, m.FirstName)));
}
+ if (pDataContract.OwnChatMember != null)
+ {
+ this._OwnChatMember.AddRange(pDataContract.OwnChatMember.OrderBy(m => string.Format("{0},{1}", m.Person.LastName, m.Person.FirstName)));
+ }
}
_VarFields = new VarFieldListVM(pDataContract.TeamVarFields);
this._Member.CollectionChanged += (s, e) => this.StoreDirtyInformation(!pDataContract.Member.ContainsSameItemsAs(this._Member), PropertyName_Member);
+ this._OwnChatMember.CollectionChanged += (s, e) => this.StoreDirtyInformation(!pDataContract.OwnChatMember.ContainsSameItemsAs(this._OwnChatMember), nameof(OwnChatMember));
}
protected override TeamDC MapToDataContract(TeamDC pDataContract, bool doCommit)
{
+ pDataContract.IsOwnChatTeam = this._IsOwnChatTeam;
pDataContract.Leader = this._Leader;
pDataContract.Name = this._Name;
pDataContract.Notice = this._Notice;
pDataContract.Member = this._Member.ToList();
-
+ pDataContract.OwnChatMember = this._OwnChatMember.ToList();
if (_VarFields != null)
{
pDataContract.TeamVarFields = _VarFields.CopyToDCList(doCommit);
diff --git a/BeWo/app.config b/BeWo/app.config
index c4a416e8d..a7f4fde7f 100644
--- a/BeWo/app.config
+++ b/BeWo/app.config
@@ -14,18 +14,18 @@
-
+
-
+
-
+
diff --git a/BeWoDatabaseTerminator/BeWoDatabaseTerminator/Program.cs b/BeWoDatabaseTerminator/BeWoDatabaseTerminator/Program.cs
index d751b2355..edb13fcd3 100644
--- a/BeWoDatabaseTerminator/BeWoDatabaseTerminator/Program.cs
+++ b/BeWoDatabaseTerminator/BeWoDatabaseTerminator/Program.cs
@@ -43,24 +43,27 @@ namespace BeWoDatabaseTerminator
ServicePointManager.ServerCertificateValidationCallback = PinPublicKey;
}
- private const String PUB_KEY_X3 = "9CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
+ private static String PUB_KEY_X3 = "9CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
- private const String PUB_KEY_R3 = "BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
+ private static String PUB_KEY_R3 = "BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
- private const String PUB_KEY_E1 = "245c2da22afd1c4ba65d97732731acb2a06962ef65e8a6b0f0ac4b9fff1c0b700fd3982f4dfc0f009b37f074055732972e05ef2a4325a3fb6e342713f64f7e69d302995eeb244792c1249be6b1218fc12481fc68cc1f69ba58f51922f774c616";
+ private static String PUB_KEY_E1 = "245c2da22afd1c4ba65d97732731acb2a06962ef65e8a6b0f0ac4b9fff1c0b700fd3982f4dfc0f009b37f074055732972e05ef2a4325a3fb6e342713f64f7e69d302995eeb244792c1249be6b1218fc12481fc68cc1f69ba58f51922f774c616";
- private const String PUB_KEY_E5 = "0d0b3a8a6b618eb6efdc5f58e7c6424554ab63f66661480a2e5975b481023750b73f1679dc98eca1289772201c2ccfd57c52204e54785b84146bc090ae85ecc051413c5a877f064dd4fe60d1fa6c2de17d951088a208540f991a4ce6ea0aacd8";
+ private static String PUB_KEY_E5 = "0d0b3a8a6b618eb6efdc5f58e7c6424554ab63f66661480a2e5975b481023750b73f1679dc98eca1289772201c2ccfd57c52204e54785b84146bc090ae85ecc051413c5a877f064dd4fe60d1fa6c2de17d951088a208540f991a4ce6ea0aacd8";
- private const String PUB_KEY_E6 = "d9f19e4687f8217160a826eba3fab9eada1db912a7d426d95114b1617c7596bf220b391fd5bed10a46aa2d3c4a09842ebe409555e91940376675ed324e770449f8707bc318e7cef77110feac74d800d4ed6d1c731633109c3ab2ea6c62f4bdb8";
+ private static String PUB_KEY_E6 = "d9f19e4687f8217160a826eba3fab9eada1db912a7d426d95114b1617c7596bf220b391fd5bed10a46aa2d3c4a09842ebe409555e91940376675ed324e770449f8707bc318e7cef77110feac74d800d4ed6d1c731633109c3ab2ea6c62f4bdb8";
- private const String PUB_KEY_R10 = "CF57E5E6C45412EDB447FEC92758764650288C1D3E88DF059DD5B51829BDDDB55ABFFAF6CEA3BEAF00214B625A5A3C012FC55803F689FF8E1143EBC1B5E01407968F6F1FD7E7BA8139097565B7C2AF185B372628E7A3F4072B6D1AFFAB58BC95AE40FFE9CB57C4B55B7F780D1861BC17E754C6BB4991CD6E18D18085EEA66536BC74EABC504CEAFC21F338169394BAB0D36B3806CD16127ACA5275C8AD76B2C29C5D98455C6F617BC62DEE3C13528601D957E6381CDF8DB51F92919AE74A1CCC45A87255F0B0E6A307ECFDA71B669E3F488B71847158C93AFAEF5EF25B442B3C74E78FB247C1076ACD9AB70D96F712812651540AEC61F6F7F5E2F28AC8950D8D0203010001";
+ private static String PUB_KEY_E7 = "0441e8049308587fbe37300cc0a041eafe56da84933ec900dbab6712cff94f5309e8a82fab29e59f1546f45b624e0fd4834199b79f4072451c2c5c4a32a6c2dbc6056a65ffdadaf075b4403b146895b6a8e26a71e274655153de16d41e27c133fd";
- private const String PUB_KEY_R11 = "BA87BC5C1B0039CBCA0ACDD46710F9013CA54EA561CB26CA52FB1501B7B928F5281EED27B324183967090C08ECE03AB03B770EBDF3E53954410C4EAE41D69974DE51DBEF7BFF58BDA8B713F6DE31D5F272C9726A0B8374959C4600641499F3B1D922D9CDA892AA1C267A3FFEEF58057B089581DB710F8EFBE33109BB09BE504D5F8F91763D5A9D9E83F2E9C466B3E106664348188065A037189A9B843297B1B2BDC4F815009D2788FBE26317966C9B27674BC4DB285E69C279F0495CE02450E1C4BCA105AC7B406D00B4C2413FA758B82FC55C9BA5BB099EF1FEEBB08539FDA80AEF45C478EB652AC2CF5F3CDEE35C4D1BF70B272BAA0B4277534F796A1D87D90203010001";
+ private static String PUB_KEY_E8 = "04d165f25edc4bb40c029cd2b2faeee96cab3aae38a1f4d4393233c542d4cc330c34c7212090705ce8622f1c71b342d779be460dc1db47a113a0c7df8126633bd48d1df63d823332f6f42be7f5963ab41367187b6b3e8d48d9eadeedae6d3e874c";
- private const String PUB_KEY_R12 = "da982874adbe94fe3be01ee2e54b75ab2c127feda703327e3697ece8318fa5138d0b992e1ecd01513d4ce5286e095531aaa5225d72f42d07c24d403cdf0123b97837f51a653234e686719d04ef84085bbd021a99eba601009a73906d8fa207a0d097d3da456181353d14f9c4c05f6adc0b961ab09fe32aeabd2ad698c79b71ab3b740f3cdbb260be5a4b4e18e9db2a735c8961659efeed3ca6cb4e6fe49ef90046b3ff194d2a63b38e66c6188570c750656f3b74e548830f08585d2d239d5ea3fee8db00a1d2f4e3194df2ee7af6279ee5cd9c2da2f27f9c17adef133739d1b4c82c41d686c0e9ec21f8591b7fb93a7c9f5c019d6204c228bd0aad3cca10ec1b0203010001";
+ private static String PUB_KEY_R10 = "CF57E5E6C45412EDB447FEC92758764650288C1D3E88DF059DD5B51829BDDDB55ABFFAF6CEA3BEAF00214B625A5A3C012FC55803F689FF8E1143EBC1B5E01407968F6F1FD7E7BA8139097565B7C2AF185B372628E7A3F4072B6D1AFFAB58BC95AE40FFE9CB57C4B55B7F780D1861BC17E754C6BB4991CD6E18D18085EEA66536BC74EABC504CEAFC21F338169394BAB0D36B3806CD16127ACA5275C8AD76B2C29C5D98455C6F617BC62DEE3C13528601D957E6381CDF8DB51F92919AE74A1CCC45A87255F0B0E6A307ECFDA71B669E3F488B71847158C93AFAEF5EF25B442B3C74E78FB247C1076ACD9AB70D96F712812651540AEC61F6F7F5E2F28AC8950D8D0203010001";
- private const String PUB_KEY_R13 = "a567708dd0568164151761cdb906d4ad19908c2650379816639254dbd9cc840593ecd3ec081ba0605143487d2bc748969eb42dda9dc8273b57a19fabf0d60ed40e30ca6f9bb1d1d6a49d323e584e356f4558687117fc3ed85d82a02fb2516cb01a5db859ce3565c88ba1af1037ffe39c5dc2491734ff8c2b8b8df0bc712c930c1d05c4bac7cdaac95e7cd1c901f79c03f6fc0a5df4da7be6db764270ebf44d22da00776fd6c95f17fdda752ea5570cf6ea5cb6e073a568cfa174e275827e109fc1f5a2eb01e938b10a44ccd3c289f54935820a34b31ce988c2474e820e0a36f0474f8af1290475dacde19a5cff5e9d9895ba9a43d04aa21705010430d332b38f0203010001";
+ private static String PUB_KEY_R11 = "BA87BC5C1B0039CBCA0ACDD46710F9013CA54EA561CB26CA52FB1501B7B928F5281EED27B324183967090C08ECE03AB03B770EBDF3E53954410C4EAE41D69974DE51DBEF7BFF58BDA8B713F6DE31D5F272C9726A0B8374959C4600641499F3B1D922D9CDA892AA1C267A3FFEEF58057B089581DB710F8EFBE33109BB09BE504D5F8F91763D5A9D9E83F2E9C466B3E106664348188065A037189A9B843297B1B2BDC4F815009D2788FBE26317966C9B27674BC4DB285E69C279F0495CE02450E1C4BCA105AC7B406D00B4C2413FA758B82FC55C9BA5BB099EF1FEEBB08539FDA80AEF45C478EB652AC2CF5F3CDEE35C4D1BF70B272BAA0B4277534F796A1D87D90203010001";
+ private static String PUB_KEY_R12 = "00da982874adbe94fe3be01ee2e54b75ab2c127feda703327e3697ece8318fa5138d0b992e1ecd01513d4ce5286e095531aaa5225d72f42d07c24d403cdf0123b97837f51a653234e686719d04ef84085bbd021a99eba601009a73906d8fa207a0d097d3da456181353d14f9c4c05f6adc0b961ab09fe32aeabd2ad698c79b71ab3b740f3cdbb260be5a4b4e18e9db2a735c8961659efeed3ca6cb4e6fe49ef90046b3ff194d2a63b38e66c6188570c750656f3b74e548830f08585d2d239d5ea3fee8db00a1d2f4e3194df2ee7af6279ee5cd9c2da2f27f9c17adef133739d1b4c82c41d686c0e9ec21f8591b7fb93a7c9f5c019d6204c228bd0aad3cca10";
+
+ private static String PUB_KEY_R13 = "00a567708dd0568164151761cdb906d4ad19908c2650379816639254dbd9cc840593ecd3ec081ba0605143487d2bc748969eb42dda9dc8273b57a19fabf0d60ed40e30ca6f9bb1d1d6a49d323e584e356f4558687117fc3ed85d82a02fb2516cb01a5db859ce3565c88ba1af1037ffe39c5dc2491734ff8c2b8b8df0bc712c930c1d05c4bac7cdaac95e7cd1c901f79c03f6fc0a5df4da7be6db764270ebf44d22da00776fd6c95f17fdda752ea5570cf6ea5cb6e073a568cfa174e275827e109fc1f5a2eb01e938b10a44ccd3c289f54935820a34b31ce988c2474e820e0a36f0474f8af1290475dacde19a5cff5e9d9895ba9a43d04aa21705010430d332b38f";
private static bool PinPublicKey(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
@@ -81,6 +84,8 @@ namespace BeWoDatabaseTerminator
pk.Contains(PUB_KEY_E1.ToLower()) ||
pk.Contains(PUB_KEY_E5.ToLower()) ||
pk.Contains(PUB_KEY_E6.ToLower()) ||
+ pk.Contains(PUB_KEY_E7.ToLower()) ||
+ pk.Contains(PUB_KEY_E8.ToLower()) ||
pk.Contains(PUB_KEY_R10.ToLower()) ||
pk.Contains(PUB_KEY_R11.ToLower()) ||
pk.Contains(PUB_KEY_R12.ToLower()) ||
diff --git a/Data/Data.csproj b/Data/Data.csproj
index dac90ab6e..c66407bb8 100644
--- a/Data/Data.csproj
+++ b/Data/Data.csproj
@@ -251,6 +251,7 @@
+
@@ -856,6 +857,7 @@
Designer
+
Designer
diff --git a/Data/Entities/Customer.cs b/Data/Entities/Customer.cs
index a8e002a55..d13636158 100644
--- a/Data/Entities/Customer.cs
+++ b/Data/Entities/Customer.cs
@@ -900,7 +900,7 @@ namespace BeWo.Data.Entities
{
if (name.Length > 0)
name += ", ";
- name = t2c.Team.Name;
+ name += t2c.Team.Name;
}
return name;
diff --git a/Data/Entities/Person2Team.cs b/Data/Entities/Person2Team.cs
new file mode 100644
index 000000000..b072922b7
--- /dev/null
+++ b/Data/Entities/Person2Team.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using BS.Shared;
+
+namespace BeWo.Data.Entities
+{
+ public class Person2Team : BeWoEntityBase
+ {
+
+ public Person2Team() { _Tid = TableID.Person2Team; }
+
+ public virtual Person Person { get; set; }
+ public virtual Team Team { get; set; }
+
+ public virtual int? OwnChatRole { get; set; }
+
+ public virtual long? TeamOid { get; set; }
+ public virtual long? PersonOid { get; set; }
+
+
+ }
+}
\ No newline at end of file
diff --git a/Data/Entities/Team.cs b/Data/Entities/Team.cs
index 7854120ad..a35bcb0b6 100644
--- a/Data/Entities/Team.cs
+++ b/Data/Entities/Team.cs
@@ -18,6 +18,8 @@ namespace BeWo.Data.Entities
private IList _MemberList;
+ private IList _OwnChatMember;
+
private string _Name;
private IList _VarFieldValueList;
@@ -27,6 +29,8 @@ namespace BeWo.Data.Entities
_Tid = TableID.Team;
}
+ public virtual bool IsOwnChatTeam { get; set; }
+
public virtual Employee Leader
{
get
@@ -59,6 +63,22 @@ namespace BeWo.Data.Entities
}
}
+ public virtual IList OwnChatMember
+ {
+ get
+ {
+ return _OwnChatMember ?? (_OwnChatMember = new List());
+ }
+
+ set
+ {
+ if (AreDifferent(_OwnChatMember, value))
+ {
+ _OwnChatMember = value;
+ }
+ }
+ }
+
public virtual IList VarFieldValueList
{
get { return _VarFieldValueList ?? (_VarFieldValueList = new List()); }
diff --git a/Data/Mappings/Person2Team.hbm.xml b/Data/Mappings/Person2Team.hbm.xml
new file mode 100644
index 000000000..a01000b1e
--- /dev/null
+++ b/Data/Mappings/Person2Team.hbm.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Data/Mappings/Team.hbm.xml b/Data/Mappings/Team.hbm.xml
index e21845942..c6b5325b3 100644
--- a/Data/Mappings/Team.hbm.xml
+++ b/Data/Mappings/Team.hbm.xml
@@ -14,11 +14,16 @@
+
+
+
+
+
diff --git a/Model/Changes_2025-10-06_Person2Team.txt b/Model/Changes_2025-10-06_Person2Team.txt
new file mode 100644
index 000000000..bb2738676
--- /dev/null
+++ b/Model/Changes_2025-10-06_Person2Team.txt
@@ -0,0 +1,21 @@
+
+CREATE TABLE `person2team` (
+ `Oid` bigint NOT NULL AUTO_INCREMENT,
+ `PersonOid` bigint DEFAULT NULL,
+ `TeamOid` bigint DEFAULT NULL,
+ `OwnChatRole` int DEFAULT NULL,
+ `Tid` int DEFAULT NULL,
+ `Notice` varchar(1024) DEFAULT NULL,
+ `InsTs` datetime DEFAULT NULL,
+ `InsUser` varchar(256) DEFAULT NULL,
+ `Version` bigint DEFAULT NULL,
+ `UpdTs` datetime DEFAULT NULL,
+ `UdpUser` varchar(256) DEFAULT NULL,
+ `IsActive` tinyint DEFAULT NULL,
+ `SystemEntryID` int DEFAULT NULL,
+ PRIMARY KEY (`Oid`),
+ KEY `IdxPerson2TeamPerson` (`PersonOid`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+ALTER TABLE `Team`
+ADD COLUMN `IsOwnChatTeam` int DEFAULT NULL;
\ No newline at end of file
diff --git a/Model/Changes_alle_fuer_neue_db.txt b/Model/Changes_alle_fuer_neue_db.txt
index c2fbc566b..1ed60f7af 100644
--- a/Model/Changes_alle_fuer_neue_db.txt
+++ b/Model/Changes_alle_fuer_neue_db.txt
@@ -1675,3 +1675,25 @@ ADD COLUMN `VgaType` int DEFAULT NULL;
ALTER TABLE `SignatureHistory`
ADD COLUMN `DataBild` longtext DEFAULT NULL;
+
+
+CREATE TABLE `person2team` (
+ `Oid` bigint NOT NULL AUTO_INCREMENT,
+ `PersonOid` bigint DEFAULT NULL,
+ `TeamOid` bigint DEFAULT NULL,
+ `OwnChatRole` int DEFAULT NULL,
+ `Tid` int DEFAULT NULL,
+ `Notice` varchar(1024) DEFAULT NULL,
+ `InsTs` datetime DEFAULT NULL,
+ `InsUser` varchar(256) DEFAULT NULL,
+ `Version` bigint DEFAULT NULL,
+ `UpdTs` datetime DEFAULT NULL,
+ `UdpUser` varchar(256) DEFAULT NULL,
+ `IsActive` tinyint DEFAULT NULL,
+ `SystemEntryID` int DEFAULT NULL,
+ PRIMARY KEY (`Oid`),
+ KEY `IdxPerson2TeamPerson` (`PersonOid`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+ALTER TABLE `Team`
+ADD COLUMN `IsOwnChatTeam` int DEFAULT NULL;
\ No newline at end of file
diff --git a/Service/DCEntityMapper/AssessmentSheetValueDC_AssessmentSheetValue.cs b/Service/DCEntityMapper/AssessmentSheetValueDC_AssessmentSheetValue.cs
index 4d2eaec92..8e681aa04 100644
--- a/Service/DCEntityMapper/AssessmentSheetValueDC_AssessmentSheetValue.cs
+++ b/Service/DCEntityMapper/AssessmentSheetValueDC_AssessmentSheetValue.cs
@@ -11,6 +11,7 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.AssessmentSheetValueOid = pEntity.Oid;
pDataContract.AssessmentSheetValueVersion = pEntity.Version;
pDataContract.Description = pEntity.Description;
+ pDataContract.Tooltip = string.Format("{0}, {1:dd.MM.yyyy HH:mm} von {2}", pEntity.Description, pEntity.InsTs, pEntity.InsUser);
pDataContract.Color = pEntity.Color;
pDataContract.ShortcutKey = pEntity.ShortcutKey;
pDataContract.Sign = pEntity.Sign;
diff --git a/Service/DCEntityMapper/MapperFactory.cs b/Service/DCEntityMapper/MapperFactory.cs
index 63e0f477a..15eadaaed 100644
--- a/Service/DCEntityMapper/MapperFactory.cs
+++ b/Service/DCEntityMapper/MapperFactory.cs
@@ -311,6 +311,8 @@ namespace BeWo.Service.DCEntityMapper
private static CustomerWohnhilfeDC_CustomerWohnhilfe _CustomerWohnhilfeDC_CustomerWohnhilfe;
+ private static Person2TeamDC_Person2Team _Person2TeamDC_Person2Team;
+
private static AiSettingsDC_AiSettings _AiSettingsDC_AiSettings;
private static GkvAbrechnungLightDC_GkvAbrechnungLight _GkvAbrechnungLightDC_GkvAbrechnungLight;
@@ -512,6 +514,9 @@ namespace BeWo.Service.DCEntityMapper
public static CompactTeamDC_Team CompactTeamDC_Team =>
_CompactTeamDC_Team ?? (_CompactTeamDC_Team = new CompactTeamDC_Team());
+ public static Person2TeamDC_Person2Team Person2TeamDC_Person2Team =>
+ _Person2TeamDC_Person2Team ?? (_Person2TeamDC_Person2Team = new Person2TeamDC_Person2Team());
+
public static CompactGroupOfPeopleDC_GroupOfPeople CompactGroupOfPeopleDC_GroupOfPeople =>
_CompactGroupOfPeopleDC_GroupOfPeople ?? (_CompactGroupOfPeopleDC_GroupOfPeople = new CompactGroupOfPeopleDC_GroupOfPeople());
diff --git a/Service/DCEntityMapper/Person2TeamDC_Person2Team.cs b/Service/DCEntityMapper/Person2TeamDC_Person2Team.cs
new file mode 100644
index 000000000..0cf4c13bd
--- /dev/null
+++ b/Service/DCEntityMapper/Person2TeamDC_Person2Team.cs
@@ -0,0 +1,45 @@
+using BeWo.Data.Access;
+using BeWo.Data.Entities;
+using BS.Shared.DataContracts;
+
+
+namespace BeWo.Service.DCEntityMapper
+{
+ public class Person2TeamDC_Person2Team : AbstractIDCEntityMapper
+ {
+ public override Person2TeamDC MergeWithDC(Person2Team pEntity, Person2TeamDC pDataContract)
+ {
+ pDataContract.Oid = pEntity.Oid;
+ pDataContract.Version = pEntity.Version;
+ pDataContract.TeamOid = pEntity.TeamOid;
+ pDataContract.OwnChatRole = pEntity.OwnChatRole;
+ pDataContract.Person = MapperFactory.CompactPersonDC_Person.MapToNewDC(pEntity.Person);
+
+
+ return pDataContract;
+ }
+
+ public override Person2Team MergeWithEntity(Person2TeamDC pDataContract, Person2Team pEntity)
+ {
+ ConcurrencyCheck(pDataContract.Version, pEntity);
+ pEntity.Oid = pDataContract.Oid;
+
+ pEntity.TeamOid = pDataContract.TeamOid;
+ if (pDataContract.Person != null)
+ pEntity.Person = DAOFactory.GenericDAO.LoadByID(pDataContract.Person.PersonOid);
+
+ pEntity.OwnChatRole = pDataContract.OwnChatRole;
+
+ return pEntity;
+ }
+
+ protected override bool AreDCAndEntityEqual(Person2TeamDC pDC, Person2Team pEntity)
+ {
+ if (pDC.Oid == null)
+ return false;
+ return pDC.Oid == pEntity.Oid;
+ }
+ }
+
+
+}
diff --git a/Service/DCEntityMapper/TeamDC_Team.cs b/Service/DCEntityMapper/TeamDC_Team.cs
index 216d60c31..220c1c0f2 100644
--- a/Service/DCEntityMapper/TeamDC_Team.cs
+++ b/Service/DCEntityMapper/TeamDC_Team.cs
@@ -10,12 +10,14 @@ namespace BeWo.Service.DCEntityMapper
{
public override TeamDC MergeWithDC(Team pEntity, TeamDC pDataContract)
{
+ pDataContract.IsOwnChatTeam = pEntity.IsOwnChatTeam;
pDataContract.Name = pEntity.Name;
pDataContract.TeamOid = pEntity.Oid;
pDataContract.TeamVersion = pEntity.Version;
pDataContract.Notice = pEntity.Notice;
pDataContract.Leader = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(pEntity.Leader);
pDataContract.Member = MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(pEntity.MemberList);
+ pDataContract.OwnChatMember = MapperFactory.Person2TeamDC_Person2Team.MapToNewDCs(pEntity.OwnChatMember);
IList defs = DAOFactory.SearchDAO.GetVarFieldDefs(TableID.Team);
pDataContract.TeamVarFields = MapperFactory.VarFieldDC_VarField.VarFieldMapToDCs(defs, pEntity.VarFieldValueList);
@@ -28,6 +30,7 @@ namespace BeWo.Service.DCEntityMapper
this.ConcurrencyCheck(pDataContract.TeamVersion, pEntity);
pEntity.Oid = pDataContract.TeamOid;
+ pEntity.IsOwnChatTeam = pDataContract.IsOwnChatTeam;
pEntity.Notice = pDataContract.Notice;
pEntity.Name = pDataContract.Name;
@@ -37,6 +40,7 @@ namespace BeWo.Service.DCEntityMapper
}
MapperFactory.CompactEmployeeDC_Employee.MergeWithEntitys(pDataContract.Member, pEntity.MemberList);
+ MapperFactory.Person2TeamDC_Person2Team.MergeWithEntitys(pDataContract.OwnChatMember, pEntity.OwnChatMember);
pEntity.VarFieldValueList = MapperFactory.VarFieldDC_VarField.VarFieldMergeToEntity(pEntity.VarFieldValueList, pDataContract.TeamVarFields, pEntity);
diff --git a/Service/Plugins/CustomerService.cs b/Service/Plugins/CustomerService.cs
index c4d350e0c..5417c275d 100644
--- a/Service/Plugins/CustomerService.cs
+++ b/Service/Plugins/CustomerService.cs
@@ -180,6 +180,7 @@ namespace BeWo.Service.Plugins
var dc = new CompactCustomerDC();
dc.CustomerOid = pEntity.Oid.Value;
+ dc.PersonOid = pEntity.Person.Oid.Value;
dc.CustomerVersion = pEntity.Version.Value;
dc.FirstName = pEntity.Person.FirstName;
dc.LastName = pEntity.Person.LastName;
diff --git a/Service/Plugins/PluginLoader.cs b/Service/Plugins/PluginLoader.cs
index 29021986b..265b1edc3 100644
--- a/Service/Plugins/PluginLoader.cs
+++ b/Service/Plugins/PluginLoader.cs
@@ -32,7 +32,7 @@ namespace BeWo.Service.Plugins
//t = "0216265667"; // LH Hannover
//t = "1774789565"; // LH Essen
//t = "9342168675"; // ABC Betreuungen - jetzt Schubkraft
- t = "1193188501"; // Aids Hilfe Dortmund
+ //t = "1193188501"; // Aids Hilfe Dortmund
//t = "7860351957"; // SKF Alsdorf
//t = "3311520228"; // Die Düne
//t = "1352143437"; // Sewo
@@ -242,7 +242,7 @@ namespace BeWo.Service.Plugins
//t = "7622428090"; // Freie gemeinnützige Beratungsstelle für Psychotherapie e.V. (BfpDus) (Panama)
//t = "0206140343"; // Lebenswelt Gabriel
//t = "6916712798"; // LH Rodenkirchen Bewo
- //t = "6255521162"; // KCM GmbH
+ t = "6255521162"; // KCM GmbH
//t = "2697528233"; // Diakonisches Werk Wesel
//t = "2547623489"; // Sprungbrett
//t = "5076807716"; // Psychosoziale Hilfen Bochum e.V.
@@ -333,7 +333,7 @@ namespace BeWo.Service.Plugins
//t = "7663765314"; // Christina Frommen (Frommen BeWo)
//t = "5462295916"; // BeWo Dellbrueck
//t = "2120989920"; // Sozialbüro Schüßler und Wilckens GbR
- //t = "9815376800"; // Haus Dülken GmbH + Co. KG
+ t = "9815376800"; // Haus Dülken GmbH + Co. KG
//t = "6917917884"; // AMBEWO Müller/Gerhards
//t = "5240630948"; // Caritasverband der Diözese Rottenburg-Stuttgart e.V. - Rechtsträger der Caritas Heilbronn Hohenlohe e.V. (Projekt heißt CaritasHeilbronnHohenlohe)
//t = "7748694330"; // Caritasverband der Diözese Rottenburg-Stuttgart e.V. als Rechtsträger der Caritas Ludwigsburg-Waiblingen-Enz (Projekt heißt CaritasLudwigsburgWaiblingenEnz)
@@ -352,7 +352,7 @@ namespace BeWo.Service.Plugins
//t = "3226307161"; // Roman Roger Puth
//t = "3522103738"; // AWO Münsterland-Recklinghausen
//t = "5592509446"; // Kontakt Verein für psychosoziale Hilfen e.V
- t = "5344902949"; // SHK Service GmbH SBD
+ //t = "5344902949"; // SHK Service GmbH SBD
//t = "1422963536"; // Malteser-Johanniter-Johanneshaus gGmbH
//t = "5433105975"; // aha e.V.
//t = "1701920223"; // SKFM Monheim
diff --git a/Service/Service.csproj b/Service/Service.csproj
index 334d4eaaa..af0551cd1 100644
--- a/Service/Service.csproj
+++ b/Service/Service.csproj
@@ -245,6 +245,7 @@
+
diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs
index 5376be302..0df7a48c9 100644
--- a/Shared/BeWoEntityEnums.cs
+++ b/Shared/BeWoEntityEnums.cs
@@ -190,7 +190,8 @@ namespace BS.Shared
AiConversationMessage = 180,
AiContext2BeWoObject = 181,
AiConfig = 182,
- StoredFile = 183
+ StoredFile = 183,
+ Person2Team = 184
}
public enum SystemEntryID
diff --git a/Shared/DataContracts/AssessmentSheetValueDC.cs b/Shared/DataContracts/AssessmentSheetValueDC.cs
index dd8ed6b64..ae694dad9 100644
--- a/Shared/DataContracts/AssessmentSheetValueDC.cs
+++ b/Shared/DataContracts/AssessmentSheetValueDC.cs
@@ -17,6 +17,9 @@ namespace BS.Shared.DataContracts
[DataMember]
public string Description { get; set; }
+ [DataMember]
+ public string Tooltip { get; set; }
+
[DataMember]
public int Position { get; set; }
diff --git a/Shared/DataContracts/ClientPartials/ValueListEntryDC.cs b/Shared/DataContracts/ClientPartials/ValueListEntryDC.cs
index 2dcf48a0a..3084d57b2 100644
--- a/Shared/DataContracts/ClientPartials/ValueListEntryDC.cs
+++ b/Shared/DataContracts/ClientPartials/ValueListEntryDC.cs
@@ -28,6 +28,54 @@ namespace BS.Shared.DataContracts
}
}
+ public string OrderedDisplayName
+ {
+ get
+ {
+ var test = GetTempName(DisplayName, "99999");
+ return test;
+ }
+ }
+
+ private static string GetTempName(string name, string maxNumberPrefix)
+ {
+ String tempName = name;
+ if (!String.IsNullOrEmpty(maxNumberPrefix))
+ {
+ var prefix = GetNumberPrefix(name);
+ if (!String.IsNullOrEmpty(prefix))
+ {
+ while (prefix.Length < maxNumberPrefix.Length)
+ {
+ prefix = "0" + prefix;
+ tempName = "0" + tempName;
+ }
+ }
+ }
+
+ return tempName;
+ }
+
+ private static string GetNumberPrefix(string name)
+ {
+ int numberOfDigitsAtStart = 0;
+ for (var i = 0; i < name.Length; i++)
+ {
+ if (!char.IsNumber(name[i]))
+ {
+ break;
+ }
+
+ numberOfDigitsAtStart++;
+ }
+
+ if (numberOfDigitsAtStart > 0)
+ {
+ return name.Substring(0, numberOfDigitsAtStart);
+ }
+ return "";
+ }
+
public String Prefix { get; set; }
public ValueListEntryDC CatalogItem { get; set; }
diff --git a/Shared/DataContracts/Compact/ClientPartials/CompactPersonDC.cs b/Shared/DataContracts/Compact/ClientPartials/CompactPersonDC.cs
index a3b425013..965f870ee 100644
--- a/Shared/DataContracts/Compact/ClientPartials/CompactPersonDC.cs
+++ b/Shared/DataContracts/Compact/ClientPartials/CompactPersonDC.cs
@@ -206,7 +206,7 @@ namespace BS.Shared.DataContracts.Compact
if (obj is CompactPersonDC)
{
CompactPersonDC compactPerson = obj as CompactPersonDC;
-
+ var test = this.PersonOid == compactPerson.PersonOid && this.Organisation == compactPerson.Organisation;
return this.PersonOid == compactPerson.PersonOid && this.Organisation == compactPerson.Organisation;
}
diff --git a/Shared/DataContracts/Person2TeamDC.cs b/Shared/DataContracts/Person2TeamDC.cs
new file mode 100644
index 000000000..14546b60d
--- /dev/null
+++ b/Shared/DataContracts/Person2TeamDC.cs
@@ -0,0 +1,41 @@
+using System.Runtime.Serialization;
+using BS.Shared.DataContracts.Compact;
+
+namespace BS.Shared.DataContracts
+{
+ [DataContract]
+ public class Person2TeamDC
+ {
+ [DataMember]
+ public CompactPersonDC Person { get; set; }
+
+ [DataMember]
+ public long? TeamOid { get; set; }
+
+ [DataMember]
+ public long? Oid { get; set; }
+
+ [DataMember]
+ public long? Version { get; set; }
+
+ [DataMember]
+ public int? OwnChatRole { get; set; }
+
+ public override bool Equals(object obj)
+ {
+ if (obj is Person2TeamDC)
+ {
+ Person2TeamDC compactPerson = obj as Person2TeamDC;
+ return this.Oid == compactPerson.Oid;
+ }
+
+ return false;
+ }
+
+ public override int GetHashCode()
+ {
+ return this.GetType().Name.GetHashCode() ^ this.Oid.GetHashCode();
+ }
+
+ }
+}
diff --git a/Shared/DataContracts/TeamDC.cs b/Shared/DataContracts/TeamDC.cs
index 0be88e74f..d949ed145 100644
--- a/Shared/DataContracts/TeamDC.cs
+++ b/Shared/DataContracts/TeamDC.cs
@@ -8,12 +8,16 @@ namespace BS.Shared.DataContracts
[DataContract]
public class TeamDC : IDataContract
{
+ [DataMember]
+ public bool IsOwnChatTeam { get; set; }
+
[DataMember]
public CompactEmployeeDC Leader { get; set; }
[DataMember]
public List Member { get; set; }
-
+ [DataMember]
+ public List OwnChatMember { get; set; }
[DataMember]
public string Name { get; set; }
diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj
index 0827cc5e8..eea6d0941 100644
--- a/Shared/Shared.csproj
+++ b/Shared/Shared.csproj
@@ -187,6 +187,7 @@
+