public async Task <IActionResult> LearnTopic(LearnTopicModel model) { var request = new LearnTopicOperationRequest { TopicId = model.TopicId }; try { await _learnTopicOperation.Execute(request); } catch (TopicNotInLearningDayException ex) { return(BadRequest(new ErrorModel(ex.Message))); } catch (TopicAlreadyLearnedException ex) { return(BadRequest(new ErrorModel(ex.Message))); } return(Ok()); }
public async Task Execute(LearnTopicOperationRequest request) { var fulfillGoalRequest = new FulfillPersonalGoalOperationRequest { TopicId = request.TopicId }; try { await _fulfillPersonalGoalOperation.Execute(fulfillGoalRequest); } catch (GoalNotAssignedException) { var assignGoalRequest = new AssignGoalToSelfOperationRequest { TopicIds = new List <Guid> { request.TopicId } }; await _assignGoalsToSelfOperation.Execute(assignGoalRequest); await _fulfillPersonalGoalOperation.Execute(fulfillGoalRequest); } }