public async Task <IActionResult> AwardLoot(int lootId, int?lootRequestId, CampaignLoot.CampaignLootStatus status, bool?lootAvailableToOtherSyndicates) { var result = await _lootLogic.AwardLoot(lootId, lootRequestId, status, lootAvailableToOtherSyndicates); if (!result) { return(Conflict()); } return(Ok()); }
public async Task <IActionResult> SetLootStatus(int id, CampaignLoot.CampaignLootStatus status) { var result = await _lootLogic.SetLootStatusAsync(id, status); if (!result) { return(NotFound()); } return(Ok()); }
public async Task <bool> SetLootStatusAsync(int id, CampaignLoot.CampaignLootStatus status) { var loot = _dbContext.CampaignLoot.SingleOrDefault(lr => lr.Id == id); if (loot == null) { return(false); } loot.Status = status; await _dbContext.SaveChangesAsync(); return(true); }
public async Task <bool> AwardLoot(int lootId, int?lootRequestId, CampaignLoot.CampaignLootStatus status, bool?lootAvailableToOtherSyndicates, bool dropRequestorDown = true) { var loot = _dbContext.CampaignLoot.SingleOrDefault(cl => cl.Id == lootId); if (loot == null) { return(false); } var lootRequest = lootRequestId.HasValue ? _dbContext.LootRequest.SingleOrDefault(lr => lr.Id == lootRequestId.Value) : null; if (lootRequestId.HasValue && lootRequest == null) { return(false); } loot.Status = status; loot.AvailableToOtherSyndicates = lootAvailableToOtherSyndicates; if (lootRequestId.HasValue) { loot.HolderId = lootRequest.RequestedForId; lootRequest.Status = LootRequest.LootRequestStatus.Awarded; if (dropRequestorDown) { var newHistoryEntry = new PlayerListPositionHistory { LootRequest = lootRequest, PlayerId = lootRequest.RequestedForId, CreatedAt = DateTime.Now, Comment = "Drop associated with loot request", }; await _dbContext.AddAsync(newHistoryEntry); } } await _dbContext.SaveChangesAsync(); return(true); }