Example #1
0
        public async Task Should_Delete_Event_Options()
        {
            var eventId = MockCommentsForEvent();
            await _eventUtilitiesService.DeleteByEventAsync(eventId, "testUserId");

            _eventOptionsDbSet.Received(3).Remove(Arg.Any <EventOption>());
        }
Example #2
0
        public async Task DeleteAsync(Guid id, UserAndOrganizationDto userOrg)
        {
            var @event = await _eventsDbSet
                         .Include(e => e.EventOptions)
                         .Include(e => e.EventParticipants)
                         .SingleOrDefaultAsync(e => e.Id == id && e.OrganizationId == userOrg.OrganizationId);

            _eventValidationService.CheckIfEventExists(@event);
            var isAdmin = await _permissionService.UserHasPermissionAsync(userOrg, AdministrationPermissions.Event);

            // ReSharper disable once PossibleNullReferenceException
            _eventValidationService.CheckIfUserHasPermission(userOrg.UserId, @event.ResponsibleUserId, isAdmin);
            _eventValidationService.CheckIfEventEndDateIsExpired(@event.EndDate);

            var timestamp = DateTime.UtcNow;

            @event.Modified   = timestamp;
            @event.ModifiedBy = userOrg.UserId;

            await _eventParticipationService.DeleteByEventAsync(id, userOrg.UserId);

            await _eventUtilitiesService.DeleteByEventAsync(id, userOrg.UserId);

            _eventsDbSet.Remove(@event);

            await _uow.SaveChangesAsync(false);

            await _wallService.DeleteWallAsync(@event.WallId, userOrg, WallType.Events);
        }