Beispiel #1
0
        public Task <ActionResult <CauseViewModel> > PostAsync([FromBody] CauseInputModel inputModel)
        => ExecuteAsync <CauseViewModel>(async() =>
        {
            var userId = User.UserId();
            var user   = await _usersRepository.GetByIdAsync(userId);
            var cause  = new Cause(user, inputModel.Description, inputModel.Icon);

            await _causesRepository.AddAsync(cause);

            return(Ok((CauseViewModel)cause));
        });
Beispiel #2
0
        public Task <ActionResult <CauseViewModel> > PutAsync(Guid id, [FromBody] CauseInputModel inputModel)
        => ExecuteAsync <CauseViewModel>(async() =>
        {
            var userId = User.UserId();
            var cause  = await _causesRepository.GetByIdAsync(id);

            if (cause == null)
            {
                return(NotFound());
            }

            if (cause.UserId != userId)
            {
                return(Forbid());
            }

            cause.SetDescription(inputModel.Description);
            cause.Icon = inputModel.Icon;

            await _causesRepository.UpdateAsync(cause);

            return(Ok((CauseViewModel)cause));
        });