/// <summary>
        /// creates media, if the first media, creates also media group
        /// </summary>
        /// <param name="createDto"></param>
        /// <returns>media id</returns>
        public async Task <int> CreateAsync(MediaCreateDto createDto)
        {
            // TODO Armin -> maybe we should seperate create and add method ?
            if (createDto.GroupId == 0)
            {
                MediaGroup mediaGroup = new MediaGroup {
                    Type = createDto.GroupType
                };
                await _context.MediaGroups.AddAsync(mediaGroup);

                await _context.SaveChangesAsync();

                createDto.GroupId = mediaGroup.Id;
            }

            Media media = new Media
            {
                Source   = createDto.Source,
                Url      = createDto.Url,
                Type     = createDto.Type,
                GroupId  = createDto.GroupId,
                PublicId = createDto.PublicId
            };

            await _context.Medias.AddAsync(media);

            await _context.SaveChangesAsync();

            return(media.Id);
        }
        /// <summary>
        /// mocks creating media
        /// </summary>
        /// <param name="createDto">instance of <see cref="MediaCreateDto"/></param>
        /// <returns>new media id</returns>
        public async Task <int> CreateAsync(MediaCreateDto createDto)
        {
            Media media = new Media
            {
                Id     = 6,
                Url    = createDto.Url,
                Type   = createDto.Type,
                Source = createDto.Source
            };

            _medias.Add(media);

            return(await Task.Run(() => { return media.Id; }));
        }