public async Task Handle(CarReserved message, IMessageHandlerContext context) { log.Info($"Received CarReserved, CombinedReservationId = {message.combinedReservationId}"); // doda poene korisniku i ako uspije to je kraj, postavi onu rezervaciju na successfull var users = _context.Users.Include(us => us.CombinedReservations).ToList(); string userId = message.userId; var user = await _userManager.FindByIdAsync(userId); user.Points += 10; foreach (var res in user.CombinedReservations) { if (res.Id == message.resId) { res.Status = "Approved"; } } await _userManager.UpdateAsync(user); _context.Update(user); try { _context.SaveChanges(); } catch (Exception e) { foreach (var res in user.CombinedReservations) { if (res.Id == message.resId) { res.Status = "Denied"; await _userManager.UpdateAsync(user); _context.Update(user); _context.SaveChanges(); } } ReservationNotApproved notApproved = new ReservationNotApproved(); notApproved.combinedReservationId = message.combinedReservationId; notApproved.carRes = message.carRes; notApproved.resId = message.resId; notApproved.tickets = message.tickets; notApproved.userId = message.userId; await context.Publish(notApproved).ConfigureAwait(false); } }
public async Task Handle(FlightCancelled message, IMessageHandlerContext context) { log.Info($"Received FlightCancelled"); // doda poene korisniku i ako uspije to je kraj, postavi onu rezervaciju na successfull var users = _context.Users.Include(us => us.CombinedReservations).ToList(); string userId = message.userId; var user = await _userManager.FindByIdAsync(userId); if (user != null) { user.Points -= 5; await _userManager.UpdateAsync(user); _context.Update(user); _context.SaveChanges(); } }
public async Task Handle(SeatNotReserved message, IMessageHandlerContext context) { log.Info($"Received SeatNotReserved, CombinedReservationId = "); // postavi na unsuccessfull, mora da se odradi string userId = message.userId; var users = _context.ApplicationUsers.Include(u => u.CombinedReservations).ToList(); var user = await _userManager.FindByIdAsync(userId); foreach (var res in user.CombinedReservations) { if (res.Id == message.resId) { res.Status = "Denied"; await _userManager.UpdateAsync(user); _context.Update(user); _context.SaveChanges(); return; } } }