Beispiel #1
0
        public async Task <IActionResult> CreateFavorites([FromBody, NotNull] CreateFavoritesCommand model)
        {
            if (!ModelState.IsValid)
            {
                _logger.LogError($"Invalid model for create a new favorites was used.");
                return(BadRequest());
            }

            var result = await _mediator.Send(model);

            return(result.IsFailure ? (IActionResult)BadRequest(result.Error) : Ok(result.Value)); //FP is here
        }
        public async Task <Result <Favorites> > Handle(CreateFavoritesCommand request, CancellationToken cancellationToken)
        {
            var result = _validator.Validate(request, ruleSet: "CheckExistingEmployeeIdValidation");

            if (result.Errors.Count > 0)
            {
                return(Result.Failure <Favorites>(result.Errors.First().ErrorMessage));
            }

            var favoriteDb = _mapper.Map <FavoritesDb>(request);
            var employee   = await _context.Employees
                             .Where(x => x.Id == request.EmployeeId)
                             .Select(b => b)
                             .FirstOrDefaultAsync();

            favoriteDb.WorkerDb = employee;
            _context.Add(favoriteDb);
            await _context.SaveChangesAsync(cancellationToken);

            return(Result.Ok <Favorites>(_mapper.Map <Favorites>(favoriteDb)));
        }