public async Task <ResultDto <MotiveDto> > EditMotive(MotiveViewModel viewModel, int motiveId, int UserId)
        {
            var result = new ResultDto <MotiveDto>();

            var motive = await Task.Run(() => _motiveRepository.GetBy(x => x.Id == motiveId && x.UserId == UserId));

            if (motive == null)
            {
                result.Errors.Add("Motyw o podanych parametrach nie został odnaleziony");
                return(result);
            }

            motive.MainColor = viewModel.MainColor;
            motive.FontColor = viewModel.FontColor;
            motive.Name      = viewModel.Name;

            var isUpdated = await Task.Run(() => _motiveRepository.Update(motive));

            if (isUpdated == 0)
            {
                result.Errors.Add("Wystąpił problem podczas edycji motywu");
            }

            return(result);
        }
        public async Task <ResultDto <MotiveDto> > AddMotive(MotiveViewModel viewModel, int userId)
        {
            var result = new ResultDto <MotiveDto>();

            bool isMotiveExist = _motiveRepository.Exist(x => x.UserId == userId && (x.Name == viewModel.Name ||
                                                                                     (x.MainColor == viewModel.MainColor && x.FontColor == viewModel.FontColor)));

            if (isMotiveExist)
            {
                result.Errors.Add("W twojej kolekcji motywów istnieje już motyw o podanych parametrach");
                return(result);
            }

            var motive = _mapper.Map <MotiveViewModel, Motive>(viewModel);

            motive.UserId = userId;

            var insertedMotive = await _motiveRepository.InsertAndReturnObject(motive);

            if (insertedMotive == null)
            {
                result.Errors.Add("Wystąpił błąd podczas dodawania motywu");
                return(result);
            }

            result.SuccessResult = _mapper.Map <Motive, MotiveDto>(motive);

            return(result);
        }
        public async Task <IActionResult> EditMotive([FromBody] MotiveViewModel viewModel, int motiveId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int userId = Convert.ToInt32(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Sid).Value);

            var result = await _motiveService.EditMotive(viewModel, motiveId, userId);

            if (result.IsError)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }