using MediatR; using Sledgemapper.Api.Commands; using Sledgemapper.Api.Infrastructure.Data; using System; using System.Threading; using System.Threading.Tasks; namespace Sledgemapper.Api.Handlers { public class NewCampaignCommandHandler : IRequestHandler { private readonly IMediator _mediator; private readonly SledgemapperDbContext _dbcontext; public NewCampaignCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) { _mediator = mediator; _dbcontext = dbcontext; } public async Task Handle(NewCampaignCommand notification, CancellationToken cancellationToken) { try { var user = await _dbcontext.Users.FindAsync(notification.UserId); _dbcontext.Attach(user); var campaign = new Core.Entities.Campaign { CampaignName = notification.CampaignName, OwnerId = user.Id, InvitedUsers = new System.Collections.Generic.List { user } }; _dbcontext.Campaigns.Add(campaign); await _dbcontext.SaveChangesAsync(); return true; } catch (Exception ex) { } return false; } } }