/// <summary> /// Create a single answer. /// </summary> /// <param name="dto"> Object to be created. </param> /// <param name="userId"> Id of the user creating an answer. </param> /// <returns> Created answer. </returns> public async Task <DtoResponseResult <DtoPollAnswer> > CreateAsync(DtoPollAnswer dto, int userId) { var entity = _mapper.Map <PollAnswer>(dto); entity.CreatedById = userId; entity.CreatedDate = DateTime.UtcNow; entity.Correctness ??= false; var entityResponse = _unitOfWork.PollAnswerRepository.Create(entity); await _unitOfWork.SaveChangesAsync(); return(DtoResponseResult <DtoPollAnswer> .CreateResponse( _mapper.Map <DtoPollAnswer>(entityResponse))); }
/// <summary> /// Update given answer. /// </summary> /// <param name="dto"> Updated version of an object. </param> /// <param name="userId"> Id of the user updating an answer. </param> /// <returns> Created object (dto).</returns> public async Task <DtoResponseResult <DtoPollAnswer> > UpdateAsync(DtoPollAnswer dto, int userId) { var entity = await _unitOfWork.PollAnswerRepository.FindAsync(p => p.Id == dto.Id); if (entity == null) { return(DtoResponseResult <DtoPollAnswer> .FailedResponse("Answer not found")); } _mapper.Map(dto, entity); entity.UpdatedDate = DateTime.UtcNow; entity.UpdatedById = userId; var entityResponse = _unitOfWork.PollAnswerRepository.Update(entity, dto.Id); await _unitOfWork.SaveChangesAsync(); return(DtoResponseResult <DtoPollAnswer> .CreateResponse( _mapper.Map <DtoPollAnswer>(entityResponse))); }