//update стика - возвращает bool (успешно ли обновление) public bool UpdateStick(Stick stick) { UserModel userModel = (from u in sticksyDB.users where u.id == stick.idCreator select u).FirstOrDefault(); if (userModel == null) { DeleteStick(stick.id); sticksyDB.SaveChanges(); return(false); } StickModel stickBase = (from s in sticksyDB.sticks where s.id == stick.id select s).FirstOrDefault(); if (stickBase == null || stickBase.idCreator != stick.idCreator) { return(false); } stickBase.title = stick.title; stickBase.date = stick.date; stickBase.color = stick.color; UpdateTags(stick.id, stick.tags); UpdateFriends(stick.id, stick.visiters); UpdateContent(stick.id, stick.content); return(true); }
//создание нового стика у существующего пользователя - возвращает id стика или -1 если не удалось public int CreateStick(int idCreator) { UserModel creatorStick = (from u in sticksyDB.users where u.id == idCreator select u).FirstOrDefault(); if (creatorStick == null) { return(-1); //нет в базе пользователя с указанным idCreator } else { sticksyDB.sticks.Add(new StickModel(idCreator)); sticksyDB.SaveChanges(); StickModel stickNew = (from s in sticksyDB.sticks where s.idCreator == idCreator select s).FirstOrDefault(); if (stickNew == null) { return(-1); //проверка, произошло ли добавление в базу } else { return(stickNew.id); } } }
//удаление стика по id public void DeleteStick(int idStick) { StickModel stickDel = sticksyDB.sticks.Find(idStick); if (stickDel != null) { try { sticksyDB.sticks.Remove(stickDel); sticksyDB.SaveChanges(); } catch { } } var tagsDel = from t in sticksyDB.tags where t.idStick == idStick select t; foreach (var tag in tagsDel) { try { sticksyDB.tags.Remove(tag); } catch { } } var friendsDel = from f in sticksyDB.friends where f.idStick == idStick select f; foreach (var friend in friendsDel) { try { sticksyDB.friends.Remove(friend); } catch { } } var checkboxContentDel = from c in sticksyDB.checkboxContent where c.idStick == idStick select c; foreach (var checkbox in checkboxContentDel) { try { sticksyDB.checkboxContent.Remove(checkbox); } catch { } } var textContentDel = from t in sticksyDB.textContent where t.idStick == idStick select t; foreach (var text in textContentDel) { try { sticksyDB.textContent.Remove(text); } catch { } } sticksyDB.SaveChanges(); }