コード例 #1
0
ファイル: SessionsCommandService.cs プロジェクト: xleza/FAS
        public async Task CreateAsync(CreateSession cmd)
        {
            cmd.Validate();

            if (await _sessionsDao.ExistsByIdAsync(cmd.Id))
            {
                throw new ObjectAlreadyExitsException(cmd.Id, typeof(SeminarSession));
            }

            if (await _sessionsDao.ExistsByWhereAsync($"SeminarId = '{cmd.SeminarId}' AND Status != '{SessionStatus.Finished}'"))
            {
                throw new DomainException($"Can't create a seminar: {cmd.SeminarId} session until all sessions have finished");
            }

            if (await _seminarDao.ExistsAsync(cmd.Id))
            {
                throw new ObjectNotFoundException(cmd.SeminarId, typeof(Seminar));
            }

            await _sessionsDao.AddAsync(new SeminarSession(cmd));
        }