|
@@ -56,12 +56,21 @@ namespace Comal.Classes
|
|
|
|
|
|
public void EnsureManager(Guid kanbanid, Guid employeeid)
|
|
|
{
|
|
|
+ if(employeeid == Guid.Empty)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
var manager = EnsureSubscriber(kanbanid, employeeid);
|
|
|
|
|
|
// No-one else can be a manager
|
|
|
var others = _subscribers.Where(x => Equals(x.Kanban.ID, kanbanid)).ToArray();
|
|
|
foreach (var other in others)
|
|
|
- other.Manager = false;
|
|
|
+ {
|
|
|
+ if(other != manager)
|
|
|
+ {
|
|
|
+ other.Manager = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// only this one!
|
|
|
manager.Manager = true;
|
|
@@ -69,12 +78,21 @@ namespace Comal.Classes
|
|
|
|
|
|
public void EnsureAssignee(Guid kanbanid, Guid employeeid)
|
|
|
{
|
|
|
+ if (employeeid == Guid.Empty)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
var assignee = EnsureSubscriber(kanbanid, employeeid);
|
|
|
|
|
|
// No-one else can be a assignee
|
|
|
var others = _subscribers.Where(x => Equals(x.Kanban.ID, kanbanid)).ToArray();
|
|
|
foreach (var other in others)
|
|
|
- other.Assignee = false;
|
|
|
+ {
|
|
|
+ if (other != assignee)
|
|
|
+ {
|
|
|
+ other.Assignee = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// only this one!
|
|
|
assignee.Assignee = true;
|
|
@@ -82,12 +100,21 @@ namespace Comal.Classes
|
|
|
|
|
|
public void EnsureObserver(Guid kanbanid, Guid employeeid)
|
|
|
{
|
|
|
+ if (employeeid == Guid.Empty)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
var observer = EnsureSubscriber(kanbanid, employeeid);
|
|
|
|
|
|
// Employee can only be an observer once
|
|
|
var subscribers = _subscribers.Where(x => Equals(x.Kanban.ID, kanbanid) && Equals(x.Employee.ID, employeeid)).ToArray();
|
|
|
foreach (var subscriber in subscribers)
|
|
|
- subscriber.Observer = false;
|
|
|
+ {
|
|
|
+ if (subscriber != observer)
|
|
|
+ {
|
|
|
+ subscriber.Observer = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
observer.Observer = true;
|
|
|
}
|