public async Task <ActionResult <IEnumerable <ItemDto> > > SalvageInventory([FromServices] IEquipmentSalvager equipmentSalvager) { var userId = User.Claims.GetUserId(); if (userId == null) { return(Forbid()); } var equipment = await Context.Equipment .Include(o => o.Option) .Where(o => o.FighterId == null && o.UserId == userId) .Where(o => o.Option == null || !o.Option.IsFavorite) .ToListAsync(); var items = new List <Item>(); foreach (var equip in equipment) { items.AddRange(equipmentSalvager.Salvage(equip, userId.Value).ToList()); Context.Remove(equip); } Context.AddRange(items); await Context.SaveChangesAsync(); return(Ok(Mapper.Map <IEnumerable <ItemDto> >(items))); }
public SeasonSalvageRewardProvider(IEquipmentSalvager equipmentSalvager) { this.equipmentSalvager = equipmentSalvager; }
public async Task <ActionResult <IEnumerable <ItemDto> > > SalvageEquipment([FromBody] EquipmentDto dto, [FromServices] IEquipmentSalvager equipmentSalvager) { var userId = User.Claims.GetUserId(); if (userId == null) { return(Forbid()); } var equipment = await Context.Equipment .Where(o => o.UserId == userId) .FirstOrDefaultAsync(o => o.Id == dto.Id); if (equipment == null) { return(BadRequest()); } var items = equipmentSalvager.Salvage(equipment, userId.Value).ToList(); Context.Remove(equipment); Context.AddRange(items); await Context.SaveChangesAsync(); return(Ok(Mapper.Map <IEnumerable <ItemDto> >(items))); }