public async Task <ICollection <WeaponItemDto> > Handle(GetWeaponsForCurrentCharacterCommand request, CancellationToken cancellationToken) { var weaponItems = await _characterService.WeaponItemProperty(_userService.GetCurrentUser().Id); var items = weaponItems.Select(e => e.Item.Id).ToList(); var weapons = await _weaponService.WeaponsByProductId(items); var result = weaponItems.Select(e => { var currentWeapon = weapons.First(w => w.ProductId == e.Item.ProductId); return(new WeaponItemDto { Item = _mapper.Map <ItemDto>(e.Item), IsMasterful = e.IsMasterful, Size = e.Size, Damage = currentWeapon.DamageBySize(e.Size), AdditionalDamages = e.AdditionalDamages, Range = currentWeapon.Range, MultiplierCrit = currentWeapon.MultiplierCrit, CritRange = currentWeapon.CritRange, Ammunition = currentWeapon.Ammunition, DamageTypeList = currentWeapon.DamageTypeList, WeaponType = currentWeapon.WeaponType }); }).ToList(); return(result); }