public static void RegisterOrUpdate(Users user, LoginInfo loginInfo) { using (var db = new DBExpenceContext()) { var userId = user.IdUser; //check if (db.LoginInfo.Any(li => li.LoginName == loginInfo.LoginName) && userId != -1) { throw new Exception("User with this login name already exists"); } if (db.Users.Any(e => e.IdUser == userId)) { loginInfo.IdUser = userId; db.Users.Attach(user); db.Entry(user).State = System.Data.Entity.EntityState.Modified; db.LoginInfo.Attach(loginInfo); db.Entry(loginInfo).State = System.Data.Entity.EntityState.Modified; } else { db.Users.Add(user); db.SaveChanges(); loginInfo.IdUser = user.IdUser; db.LoginInfo.Add(loginInfo); } db.SaveChanges(); } }
//Updates if record exists inserts if there is no such record public static void InsertExpence(Expences expence) { using (var db = new DBExpenceContext()) { var id = expence.IdExpence; if (db.Expences.Any(e => e.IdExpence == id)) { db.Expences.Attach(expence); db.Entry(expence).State = System.Data.Entity.EntityState.Modified; } else { db.Expences.Add(expence); } db.SaveChanges(); } }