public async Task <IActionResult> Edit(Guid id, Audio audio)
        {
            try
            {
                if (id != audio.ID)
                {
                    return(BadRequest());
                }
                var list = await AddOns.ReadFromJson();

                var solo = list.FirstOrDefault(x => x.ID == id);
                if (Data.Exists(AddOns.Path(directory: "Files", filename: solo.Name)))
                {
                    Data.Move(AddOns.Path(directory: "Files", filename: solo.Name), AddOns.Path(directory: "Files", filename: audio.Name));
                }
                solo.Name = audio.Name;
                solo.Size = audio.Size;
                await list.WriteToJson();

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                await ex.LogAsync();

                return(View());
            }
        }
        public async Task <IActionResult> Delete(Audio audio)
        {
            try
            {
                var list = await AddOns.ReadFromJson();

                var newlist = new List <Audio>();
                foreach (var item in list)
                {
                    if (item != audio)
                    {
                        newlist.Add(item);
                    }
                }
                var name = (await SingleAsync(audio.ID)).Name;
                await newlist.WriteToJson();

                if (Data.Exists(AddOns.Path(directory: "Files", filename: name)))
                {
                    Data.Delete(AddOns.Path(directory: "Files", filename: name));
                }
                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                await ex.LogAsync();

                return(View());
            }
        }
        public async Task <IActionResult> Create(List <IFormFile> files)
        {
            try
            {
                if (files == null)
                {
                    return(RedirectToAction(nameof(Index)));
                }
                foreach (var file in files)
                {
                    using (var fs = new FileStream(AddOns.Path(directory: "Files", filename: file.FileName), FileMode.Create))
                    {
                        await file.CopyToAsync(fs);
                    }
                }
                await files.WriteToJson();

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                await ex.LogAsync();

                return(View());
            }
        }
Пример #4
0
        public async Task <IActionResult> GetSound(string Name)
        {
            try
            {
                var path = AddOns.Path(directory: "Files", filename: Name);
                if (Files.Exists(path))
                {
                    return(PhysicalFile(path, "audio/mpeg", Name));
                }
                return(StatusCode(403));
            }
            catch (Exception ex)
            {
                await ex.LogAsync();

                return(StatusCode(500));
            }
        }