Exemple #1
0
        public static MapMembership CreateOwnerMembership(Map map)
        {
            var membership = new MapMembership(map.CreatedBy, map, map.CreatedBy);

            membership.SetDecision(map.CreatedBy, MapMembershipStatus.Accepted);

            return(membership);
        }
Exemple #2
0
        public void CancelInvite(MapMembership existingMembership)
        {
            if (!Memberships.Contains(existingMembership))
            {
                throw new ArgumentNullException(nameof(existingMembership), "Invite not found");
            }

            if (existingMembership.Status != MapMembershipStatus.DecisionNotMade)
            {
                throw new DomainException("Can not cancel invite with specified decision");
            }

            existingMembership.MarkAsRemoved();
            Memberships.Remove(existingMembership);
        }
Exemple #3
0
        public MapMembership Invite(User actionExecutor, User invitedUser)
        {
            if (actionExecutor.Id != CreatedById)
            {
                throw new DomainException("Only creator can invite members");
            }

            if (Memberships.Any(x => x.InvitedId == invitedUser.Id))
            {
                throw new DomainException("Can not invite twice.");
            }

            var membership = new MapMembership(actionExecutor, this, invitedUser);

            Memberships.Add(membership);


            return(membership);
        }
Exemple #4
0
        public Map(User creator, string title)
        {
            Id = Guid.NewGuid().ToString("D");

            CreatedAt      = DateTimeOffset.UtcNow;
            LastModifiedAt = CreatedAt;

            CreatedBy   = creator;
            CreatedById = creator.Id;

            Title       = title;
            ObjectsList = new List <MapObject>();

            Memberships = new List <MapMembership>
            {
                MapMembership.CreateOwnerMembership(this)
            };

            IsRemoved = false;
        }