Catrobat.IDE.Core.ViewModels.Editor.Sprites.SpritesViewModel.CopySpriteAction C# (CSharp) Method

CopySpriteAction() private method

private CopySpriteAction ( ) : void
return void
        private async void CopySpriteAction()
        {
            var spritesToCopy = SelectedSprites.ToList();

            foreach (var sprite in spritesToCopy)
            {
                var originalIndex = CurrentProgram.Sprites.IndexOf(sprite);

                var newSprite = await sprite.CloneAsync(CurrentProgram);
                List<string> nameList = new List<string>();
                foreach (var spriteItem in _currentProgram.Sprites)
                {
                    nameList.Add(spriteItem.Name);
                }
                newSprite.Name = await ServiceLocator.ContextService.FindUniqueName(newSprite.Name, nameList);
                var newIndex = originalIndex + 1;
                CurrentProgram.Sprites.Insert(newIndex, newSprite);
            }
            SelectedSprites.Clear();
            CommandBarMode = MultiModeEditorCommandBarMode.Normal;
        }