Beispiel #1
0
        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));
        }