using FlexJobApi.Core; using Furion.DatabaseAccessor; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.FlexJobServer.Application { /// /// 任务雇佣命令处理器 /// public class TaskUserCommandHandler( IRepository repUserTaskCollect ) : IRequestHandler { private readonly IRepository repUserTaskCollect = repUserTaskCollect; /// /// 收藏任务 /// /// /// /// public async Task Handle(CollectTaskCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var entity = await repUserTaskCollect.AsQueryable().AsNoTracking() .Where(it => it.TaskInfoId == request.Id && it.UserId == logier.Id) .FirstOrDefaultAsync(cancellationToken); if (entity == null) { entity = new UserTaskCollect { TaskInfoId = request.Id, UserId = logier.Id }; await repUserTaskCollect.InsertAsync(entity); } return true; } } }