示例#1
0
        /// <summary>
        /// Create Entity from Dto asynchronously.
        /// </summary>
        /// <param name="dto">New object</param>
        /// <param name="userId">Id of user creating this particular object.</param>
        /// <returns>Response that contains new created object.</returns>
        public async Task <DtoResponseResult <DtoPoll> > CreateAsync(DtoPoll dto, int userId)
        {
            var entity = _mapper.Map <Poll>(dto);

            entity.CreatedById = userId;
            entity.CreatedDate = DateTime.UtcNow;
            entity.Points      = 0;

            var entityResponse = _unitOfWork.PollRepository.Create(entity);
            await _unitOfWork.SaveChangesAsync();

            return(DtoResponseResult <DtoPoll> .CreateResponse(
                       _mapper.Map <DtoPoll>(entityResponse)));
        }
示例#2
0
        /// <summary>
        /// Updates a particular poll.
        /// </summary>
        /// <param name="dto"> Updated version of an object. </param>
        /// <param name="userId"> Id of the user updating poll. </param>
        /// <returns> Updated object (dto). </returns>
        public async Task <DtoResponseResult <DtoPoll> > UpdateAsync(DtoPoll dto, int userId)
        {
            var entity = await _unitOfWork.PollRepository.FindAsync(p => p.Id == dto.Id);

            if (entity == null)
            {
                return(DtoResponseResult <DtoPoll> .FailedResponse("Poll not found"));
            }

            _mapper.Map(dto, entity);
            entity.UpdatedDate = DateTime.UtcNow;
            entity.UpdatedById = userId;

            var entityResponse = _unitOfWork.PollRepository.Update(entity, dto.Id);
            await _unitOfWork.SaveChangesAsync();

            return(DtoResponseResult <DtoPoll> .CreateResponse(
                       _mapper.Map <DtoPoll>(entityResponse)));
        }