Slide 69
Slide 69 text
16 – 17 November, Sofia
ISTACON.ORG
public User(long id, Agency agency, User createdBy, DateTime createdOn)
: base(createdBy, createdOn)
{
this.Id = id;
this.agency = agency;
this.AutoLeadAssignmentPausedUntil = DateTime.UtcNow;
}
public User(Agency agency, User createdBy, DateTime createdOn)
: base(createdBy, createdOn)
{
this.agency = agency;
this.AutoLeadAssignmentPausedUntil = DateTime.UtcNow;
}
public virtual void AddGroup(Group group)
{
RemoveGroupsWithOtherDesks(group.Desk);
groups.AddIfNotExists(group);
if (!group.Users.Contains(this)) group.AddUser(this, false);
}
public virtual void SetActive(bool value)
{
if (value && !this.Active)
this.StatisticsShouldBeRecalculated = true;
this.Active = value;
}
private void RemoveGroupsWithOtherDesks(Desk newDesk)
{
if (newDesk == Desk)
return;
foreach (var g in groups)
g.RemoveUser(this);
groups.Clear();
}
public virtual void AddOrganizationUnit(OrganizationUnitUserAssociation
ouUserAssociation)
{
if (organizationUnitsAssociations.All(x => x.Unit.Id !=
ouUserAssociation.Unit.Id))
organizationUnitsAssociations.Add(ouUserAssociation);
}
public virtual Desk[] GetManagedDesks(Advertiser advertiser)
{
return this.CanAccessAllDesks ? advertiser.Desks.ToArray() :
this.ManagesDesks.ToArray();
}
public virtual Group[] GetManagedGroups(Advertiser advertiser)
{
return this.CanAccessAllDesks
? advertiser.Desks.SelectMany(x => x.Groups).Distinct().ToArray()
: GetManagedDesks(advertiser)
.SelectMany(x => x.Groups)
.Concat(this.Groups.Where(x => x.IsManagedBy(this)))
.Distinct()
.ToArray();
}
public virtual Advertiser[] GetAllowedAdvertisers()