public IHttpActionResult Post() { try { using (InterpretEntities entites = new InterpretEntities()) { Models.InterpretJSON interpret = new Models.InterpretJSON(Request.Content.ReadAsStringAsync().Result); // check if the interpret is already in the database var element = entites.Interpret.FirstOrDefault(i => i.NAME == interpret.Name); if (element == null) { // create the interpret InterpretDataAccess.Interpret createdInterpret = new InterpretDataAccess.Interpret(); createdInterpret.NAME = interpret.Name; entites.Interpret.Add(createdInterpret); entites.SaveChanges(); // return success message return(Ok("Interpret successfully created!")); } else { return(Ok("Interpret already exists")); } } } catch (Exception ex) { return(BadRequest()); } }
public List <Models.InterpretDTO> Get() { using (InterpretEntities entites = new InterpretEntities()) { return((from interpret in entites.Interpret select new Models.InterpretDTO { ID = interpret.ID, Name = interpret.NAME }).ToList()); } }
public Models.InterpretDTO Get(int id) { using (InterpretEntities entites = new InterpretEntities()) { return(entites.Interpret.Select(i => new Models.InterpretDTO() { ID = i.ID, Name = i.NAME }).SingleOrDefault(i => i.ID == id)); } }
public IHttpActionResult Delete(int id) { try { if (id <= 0) { return(BadRequest("Not a valid id")); } using (InterpretEntities entites = new InterpretEntities()) { var join = (from m in entites.MusicFile join title in entites.Title on m.Title equals title.ID select new { ID = m.ID, Title = new Models.TitleDTO { ID = title.ID, Name = title.NAME }, Interpret = m.Interpret, Genre = title.Genre }); var interprets = (join.Where(m => m.Interpret == id)).ToList(); // delete all music files with the given interpret id interprets.ForEach(interpret => { entites.MusicFile.Remove(entites.MusicFile.FirstOrDefault(m => m.ID == interpret.ID)); entites.SaveChanges(); }); // delete all titles for the given interpret interprets.ForEach(interpret => { entites.Title.Remove(entites.Title.FirstOrDefault(t => t.ID == interpret.Title.ID)); entites.SaveChanges(); }); // delete the interpret entites.Interpret.Remove(entites.Interpret.FirstOrDefault(i => i.ID == id)); entites.SaveChanges(); return(Ok("Interpret was successfully deleted!")); } } catch (Exception ex) { return(BadRequest()); } }
public IHttpActionResult Put() { try { using (InterpretEntities entites = new InterpretEntities()) { Models.InterpretJSON interpret = new Models.InterpretJSON(Request.Content.ReadAsStringAsync().Result); // check if the interpret is in the database var existingInterpret = entites.Interpret.FirstOrDefault(i => i.ID == interpret.ID); if (existingInterpret != null) { // check if another interpret in the database has the same name var element = entites.Interpret.FirstOrDefault(i => i.ID != interpret.ID && i.NAME == interpret.Name); if (element == null) { existingInterpret.NAME = interpret.Name; entites.SaveChanges(); } else { return(Ok("An interpret with the same name already exists.")); } } else { return(Ok("Cant´t edit the interpret since it doesn´t exist in the database")); } return(Ok("Interpret successfully updated!")); } } catch (Exception ex) { return(BadRequest()); } }
public List <Models.InterpretDTO> Get(string sortBy = null, string search = null) { using (InterpretEntities entites = new InterpretEntities()) { if (search != "null") { var searchedInterprets = entites.Interpret.Where(i => i.NAME.Contains(search)); var orderedInterprets = searchedInterprets.OrderBy(i => i.ID); if (!(sortBy == "null")) { if (sortBy == "name") { orderedInterprets = searchedInterprets.OrderBy(i => i.NAME); } if (sortBy == "-name") { orderedInterprets = searchedInterprets.OrderByDescending(i => i.NAME); } if (sortBy == "id") { orderedInterprets = searchedInterprets.OrderBy(i => i.ID); } if (sortBy == "-id") { orderedInterprets = searchedInterprets.OrderByDescending(i => i.ID); } } System.Diagnostics.Debug.WriteLine("hello1"); System.Diagnostics.Debug.WriteLine(orderedInterprets); return((from interpret in orderedInterprets select new Models.InterpretDTO { Name = interpret.NAME, ID = interpret.ID }).ToList()); } else { var searchedInterprets = entites.Interpret; var orderedInterprets = searchedInterprets.OrderBy(i => i.ID); if (!(sortBy == "null")) { if (sortBy == "name") { orderedInterprets = searchedInterprets.OrderBy(i => i.NAME); } if (sortBy == "-name") { orderedInterprets = searchedInterprets.OrderByDescending(i => i.NAME); } if (sortBy == "id") { orderedInterprets = searchedInterprets.OrderBy(i => i.ID); } if (sortBy == "-id") { orderedInterprets = searchedInterprets.OrderByDescending(i => i.ID); } } System.Diagnostics.Debug.WriteLine(orderedInterprets); return((from interpret in orderedInterprets select new Models.InterpretDTO { Name = interpret.NAME, ID = interpret.ID }).ToList()); } } }