public async Task <IActionResult> Create([FromBody] DonePracticeResource model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userId = Int32.Parse((HttpContext.User.FindFirst("id").Value)); DonePractice donePractice = _mapper.Map <DonePracticeResource, DonePractice>(model); donePractice.UserId = userId; var courseResponse = await _donePracticeService.CreateAsync(donePractice); if (!courseResponse.Success) { return(BadRequest(courseResponse.Message)); } return(Ok(courseResponse.Extra)); }
public async Task <BasexResponse <TakenPointResponse> > CreateAsync(DonePractice donePractice) { try { var resDonePractice = await _donePracticeDal.FindByAsync(d => d.UserId == donePractice.UserId && d.GivenPracticeId == donePractice.GivenPracticeId); var singleResDone = resDonePractice.FirstOrDefault(); if (singleResDone != null) { singleResDone.TotalDonePractice++; singleResDone.CreationTime = DateTime.UtcNow; await _donePracticeDal.UpdateAsync(singleResDone); await _unitOfWork.CompleteAsync(); var updatedResponse = new TakenPointResponse { Score = singleResDone.TotalDonePractice * 100, UserId = (int)singleResDone.UserId, GivenPracticeId = singleResDone.GivenPracticeId }; return(new BasexResponse <TakenPointResponse>(updatedResponse)); } donePractice.CreationTime = DateTime.UtcNow; donePractice.TotalDonePractice = 1; await _donePracticeDal.AddAsync(donePractice); await _unitOfWork.CompleteAsync(); var response = new TakenPointResponse { Score = donePractice.TotalDonePractice * 100, UserId = (int)donePractice.UserId, GivenPracticeId = donePractice.GivenPracticeId }; return(new BasexResponse <TakenPointResponse>(response)); } catch (Exception ex) { return(new BasexResponse <TakenPointResponse>(ex.Message)); } }