示例#1
0
        public async Task <bool> RemoveSong(int id)
        {
            using (var ctx = new MmDbContext())
            {
                var item = ctx.Songs.FirstOrDefault(it => it.Id == id);
                if (item == null)
                {
                    return(false);
                }

                var path = item.Path;

                // Даже если файлы уже дулаены вручную, удаляем запись из БД
                try
                {
                    File.Delete(path);
                }
                finally
                {
                    var del = ctx.Songs.FirstOrDefault(it => it.Id == id);
                    ctx.Remove(del);
                    await ctx.SaveChangesAsync().ConfigureAwait(false);
                }
            }

            return(true);
        }
示例#2
0
        public async Task <int> AddSong(string name, Stream file)
        {
            var filePath = generateFilePath();

            try
            {
                using (var stream = new FileStream(filePath, FileMode.Create))
                {
                    file.Seek(0, SeekOrigin.Begin);
                    file.CopyTo(stream);
                }
            }
            catch
            {
                return(-1);
            }


            using (var ctx = new MmDbContext())
            {
                var song = new Song()
                {
                    Name = name, Path = filePath
                };
                ctx.Songs.Add(song);
                await ctx.SaveChangesAsync().ConfigureAwait(false);

                return(song.Id);
            }
        }