public bool Update(ViewModels.UserDataViewModel userDataViewModel)
        {
            bool ret = false;
            try
            {
                if (userDataViewModel.UserID == userDataViewModel.OldUserID)
                {
                    UserData user = db.UserData.Find(userDataViewModel.OldUserID);

                    user.Email = userDataViewModel.Email;
                    user.EndDate = userDataViewModel.EndDate.Value;
                    user.LoginID = userDataViewModel.LoginID;
                    user.Phone1 = userDataViewModel.Phone1;
                    user.Phone2 = userDataViewModel.Phone2;
                    user.Phone3 = userDataViewModel.Phone3;
                    //user.ResponsibleID = userDataViewModel.ResponsibleID;
                    user.RoleID = userDataViewModel.RoleID;
                    user.StartDate = userDataViewModel.StartDate.Value;
                    //user.UserID = userDataViewModel.UserID;
                    user.UserName = userDataViewModel.UserName;
                    

                    user.Email = userDataViewModel.Email;

                    db.SaveChanges();
                    ret = true;
                }
                else
                {
                    UserData userData = new UserData();

                    userData.Email = userDataViewModel.Email;
                    userData.EndDate = userDataViewModel.EndDate.Value;
                    userData.LoginID = userDataViewModel.LoginID;
                    userData.Phone1 = userDataViewModel.Phone1;
                    userData.Phone2 = userDataViewModel.Phone2;
                    userData.Phone3 = userDataViewModel.Phone3;
                    userData.PwdError = 0;
                    userData.Pwd = "0000";
                    userData.ResponsibleID = "";
                    userData.RoleID = userDataViewModel.RoleID;
                    userData.StartDate = userDataViewModel.StartDate.Value;
                    userData.UserID = userDataViewModel.UserID;
                    userData.UserName = userDataViewModel.UserName;

                    db.UserData.Add(userData);
                    db.SaveChanges();

                    var qry = db.WBSEventC.Where(x => x.CreateUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry)
                    {
                        o.CreateUserID = userDataViewModel.UserID;
                    }

                    var qry2 = db.WBSEventC.Where(x => x.DeleteMarkUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry2)
                    {
                        o.DeleteMarkUserID = userDataViewModel.UserID;
                    }

                    var qry3 = db.WBSEventC.Where(x => x.ModifyUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry3)
                    {
                        o.ModifyUserID = userDataViewModel.UserID;
                    }

                    var qry4 = db.WBSEventC.Where(x => x.QuestionCreateUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry4)
                    {
                        o.QuestionCreateUserID = userDataViewModel.UserID;
                    }

                    var qry5 = db.WBSEventC.Where(x => x.AssignUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry)
                    {
                        o.AssignUserID = userDataViewModel.UserID;
                    }

                    var qry6 = db.WBSEventC.Where(x => x.AssignCreateUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry6)
                    {
                        o.AssignCreateUserID = userDataViewModel.UserID;
                    }

                    var qry7 = db.WBSEventC.Where(x => x.AssignModifyUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry7)
                    {
                        o.AssignModifyUserID = userDataViewModel.UserID;
                    }

                    var qry8 = db.WBSEventC.Where(x => x.ServiceModifyUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry)
                    {
                        o.ServiceModifyUserID = userDataViewModel.UserID;
                    }

                    var qry9 = db.WBSEventC.Where(x => x.ServiceCreateUserID == userDataViewModel.OldUserID);
                    foreach (WBSEventC o in qry9)
                    {
                        o.ServiceCreateUserID = userDataViewModel.UserID;
                    }

                    var qry10 = db.ResponsibleClass.Where(x => x.UserID == userDataViewModel.OldUserID);
                    foreach (ResponsibleClass o in qry10)
                    {
                        o.UserID = userDataViewModel.UserID;
                    }

                    var qry11 = db.ResponsibleClass.Where(x => x.UserID2 == userDataViewModel.OldUserID);
                    foreach (ResponsibleClass o in qry11)
                    {
                        o.UserID2 = userDataViewModel.UserID;
                    }

                    var qry12 = db.UserDevice.Where(x => x.UserID == userDataViewModel.OldUserID);
                    foreach (UserDevice o in qry12)
                    {
                        o.UserID = userDataViewModel.UserID;
                    }

                    var qry13 = db.NewsData.Where(x => x.CreateUserID == userDataViewModel.OldUserID);
                    foreach (NewsData o in qry13)
                    {
                        o.CreateUserID = userDataViewModel.UserID;
                    }

                    var qry14 = db.PageRemark.Where(x => x.ModifyUserID == userDataViewModel.OldUserID);
                    foreach (PageRemark o in qry14)
                    {
                        o.ModifyUserID = userDataViewModel.UserID;
                    }
                  
                    db.SaveChanges();

                    UserData user2 = db.UserData.Find(userDataViewModel.OldUserID);
                    db.UserData.Remove(user2);
                    db.SaveChanges();
                    ret = true;
                }
            }
            catch (DbUpdateConcurrencyException ex)
            {
                // Update the values of the entity that failed to save from the store
                ex.Entries.Single().Reload();
            }
            catch (DbEntityValidationException ex)
            {
                var errorMessages = ex.EntityValidationErrors
                         .SelectMany(x => x.ValidationErrors)
                         .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }
            return ret;
        }
        public bool Create(ViewModels.UserDataViewModel userDataViewModel)
        {
            bool ret = false;
            try
            {
                UserData userData = new UserData();

                userData.Email = userDataViewModel.Email;
                userData.EndDate = userDataViewModel.EndDate.Value;
                userData.LoginID = userDataViewModel.LoginID;
                userData.Phone1 = userDataViewModel.Phone1;
                userData.Phone2 = userDataViewModel.Phone2;
                userData.Phone3 = userDataViewModel.Phone3;
                userData.PwdError = 0;
                userData.Pwd = "0000";
                userData.ResponsibleID = "";
                userData.RoleID = userDataViewModel.RoleID;
                userData.StartDate = userDataViewModel.StartDate.Value;
                userData.UserID = userDataViewModel.UserID;
                userData.UserName = userDataViewModel.UserName;               
                
                db.UserData.Add(userData);
                db.SaveChanges();

                ret = true;
            }
            catch
            {
            }
            return ret;
        }