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()); } }
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)); } }