コード例 #1
0
        public async Task <CreateNmedianPayload> CreateNmedianAsync(
            CreateNmedianInput input,
            [Service] IDateTimeOffset dateTimeOffset,
            [Service] IGuid guid,
            [ScopedService] NmediaContext dbContext,
            CancellationToken cancellationToken
            )
        {
            var entity = new Nmedian
            {
                Age        = input.Age,
                Created    = dateTimeOffset.Now,
                IsActive   = input.IsActive,
                Hired      = input.Hired,
                HourlyRate = input.HourlyRate,
                JobTitle   = input.JobTitle,
                Name       = input.Name,
                Picture    = input.Picture,
                Slug       = input.Slug,
                Uuid       = guid.NewGuid()
            };

            dbContext.Nmedians.Add(entity);
            await dbContext.SaveChangesAsync(cancellationToken);

            return(new CreateNmedianPayload(entity));
        }
コード例 #2
0
        public async Task <NmedianModel> Handle(GetNmedianById request, CancellationToken cancellationToken)
        {
            Nmedian entity = await _dbContext.Nmedians
                             .SingleOrDefaultAsync(x => x.Uuid == request.Id, cancellationToken)
                             ?? throw new NotFoundException();

            return(_mapper.Map <NmedianModel>(entity));
        }
コード例 #3
0
        public async Task <Unit> Handle(DeleteNmedian request, CancellationToken cancellationToken)
        {
            Nmedian entity = await _dbContext.Nmedians
                             .SingleOrDefaultAsync(x => x.Uuid == request.Id, cancellationToken)
                             ?? throw new NotFoundException();

            if (_appContext.User.Role != Role.Master)
            {
                throw new ForbiddenException();
            }

            _dbContext.Nmedians.Remove(entity);
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
コード例 #4
0
        public async Task <NmedianModel> Handle(SaveNmedian request, CancellationToken cancellationToken)
        {
            if (_appContext.User.Role != Role.Master)
            {
                throw new ForbiddenException();
            }

            Nmedian entity;

            if (request.Id.HasValue)
            {
                entity = await _dbContext.Nmedians
                         .SingleOrDefaultAsync(x => x.Uuid == request.Id.Value, cancellationToken)
                         ?? throw new NotFoundException();

                entity.Updated = _dateTimeOffset.Now;
            }
            else
            {
                entity = new Nmedian
                {
                    Created = _dateTimeOffset.Now,
                    Uuid    = _guid.NewGuid()
                };

                _dbContext.Nmedians.Add(entity);
            }

            entity.Age        = request.Model.Age;
            entity.Hired      = request.Model.Hired;
            entity.HourlyRate = request.Model.HourlyRate;
            entity.IsActive   = request.Model.IsActive;
            entity.JobTitle   = request.Model.JobTitle == null
        ? (JobTitle?)null
        : Enum.Parse <JobTitle>(request.Model.JobTitle);
            entity.Name    = request.Model.Name?.CleanTrim() ?? throw new InvalidOperationException("The Name is required.");
            entity.Picture = request.Model.Picture?.CleanTrim();
            entity.Slug    = request.Model.Slug?.CleanTrim();

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(_mapper.Map <NmedianModel>(entity));
        }
コード例 #5
0
ファイル: NmedianType.cs プロジェクト: fpionnmedia/nmedia-api
 public static IQueryable <Article> GetArticles(Nmedian nmedian, [ScopedService] NmediaContext dbContext)
 {
     return(dbContext.Articles.Where(x => x.NmedianId == nmedian.Id));
 }