/// <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))); }
/// <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))); }