コード例 #1
0
        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();
            }
        }
コード例 #2
0
        //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();
            }
        }