예제 #1
0
        public async Task <ProductSegmentDto> SaveAsync(Guid orgId, ProductSegmentDto dto)
        {
            if (orgId == null || orgId == Guid.Empty)
            {
                throw new ArgumentNullException("orgId", "Org id is missing");
            }

            ProductSegment segment = _mapper.Map <ProductSegment>(dto);

            if (segment.Id == Guid.Empty)
            {
                segment.OrgId        = orgId;
                segment.DateCreated  = DateTime.UtcNow;
                segment.DateModified = null;
                await _context.ProductSegments.AddAsync(segment);
            }
            else
            {
                segment.DateModified = DateTime.UtcNow;
                _context.ProductSegments.Update(segment);
            }
            await _context.SaveChangesAsync();

            dto = _mapper.Map <ProductSegmentDto>(segment);
            return(dto);
        }
예제 #2
0
        public async Task <ProductSegmentDto> GetByIdAsync(Guid segmentId)
        {
            ProductSegmentDto segment = await _context.ProductSegments
                                        .ProjectTo <ProductSegmentDto>(_mapper.ConfigurationProvider)
                                        .AsNoTracking()
                                        .SingleOrDefaultAsync(pc => pc.Id == segmentId);

            if (segment != null)
            {
                return(segment);
            }

            throw new KeyNotFoundException("Product segment not found");
        }