Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> SetLootStatus(int id, CampaignLoot.CampaignLootStatus status)
        {
            var result = await _lootLogic.SetLootStatusAsync(id, status);

            if (!result)
            {
                return(NotFound());
            }
            return(Ok());
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }