public async Task <ActionResult <ActivityViewModel> > PostActivity([FromBody] ActivityInputModel activityModel) { Client client = await _clientsRepository.GetClientWithUser(activityModel.ClientId); if (client is null) { return(NotFound($"El cliente con identificación {activityModel.ClientId} no se encuentra registrado.")); } Activity activity = _mapper.Map <Activity>(activityModel); activity.Client = client; _activitiesRepository.Insert(activity); activity.PublishEvent(new SavedActivity(activity)); await _unitWork.SaveAsync(); return(_mapper.Map <ActivityViewModel>(activity)); }
public async Task <ActionResult <ActivityViewModel> > SaveActivity([FromBody] ActivityInputModel activityInput) { Qualification qualification = await dbContext.Qualifications.Include(a => a.Activities) .Where(q => q.Id == activityInput.QualificationId).FirstOrDefaultAsync(); if (qualification is null) { return(BadRequest($"There is no Qualification with the id = {activityInput.QualificationId}")); } Activity activity = _mapper.Map <Activity>(activityInput); if (!qualification.AddActivity(activity)) { return(BadRequest($"The activity cannot be added, the percentage of the activity exceeds the allowed")); } qualification.Calculate(); dbContext.Qualifications.Update(qualification); await dbContext.SaveChangesAsync(); return(_mapper.Map <ActivityViewModel>(activity)); }