/// <summary> /// Save user info /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSave_Click(object sender, EventArgs e) { Model.Users newUser = null; if ("0" == Mode) { newUser = new Model.Users(); if (GetValue(ref newUser)) { //set the new user's default loans per page(50) newUser.LoansPerPage = 50; if (!CheckBeforeSave(newUser)) { return; } int?nSourceUID = null; int nTemp = 0; if (null != ViewState["SourceUID"]) { if (int.TryParse(ViewState["SourceUID"].ToString(), out nTemp)) { nSourceUID = nTemp; } } try { // save the new added user info, nSourceUID is null or not indicated to clone or not UserId = UsersManager.AddUserInfo(newUser, this.hiCurrLoanRep.Value, this.hiCurrGroup.Value, nSourceUID); Mode = "1"; this.btnDelete.Enabled = true; this.btnClone.Enabled = true; try { ServiceManager sm = new ServiceManager(); using (LP2ServiceClient service = sm.StartServiceClient()) { UpdateADUserRequest uReq = new UpdateADUserRequest(); ReqHdr hdr = new ReqHdr(); hdr.UserId = UserId.Value; uReq.hdr = hdr; uReq.AD_OU_Filter = this.lbPrefix.Text; uReq.AD_User = new LP_Service.User(); uReq.AD_User.Username = this.tbUserName.Text; uReq.AD_User.Firstname = this.tbFirstName.Text; uReq.AD_User.Lastname = this.tbLastName.Text; uReq.AD_User.Email = this.tbEmail.Text; uReq.AD_User.Enabled = this.ckbEnabled.Checked; if (!string.IsNullOrEmpty(this.tbPWD.Text.Trim())) { uReq.AD_User.Password = this.tbPWD.Text.Trim(); } else { uReq.AD_User.Password = string.Empty; } uReq.Command = UserMgrCommandType.CreateUser; UpdateADUserResponse uResponse; uResponse = service.UpdateADUser(uReq); if (!uResponse.hdr.Successful) { PageCommon.AlertMsg(this, "Failed to save user info in AD."); CallClientFn("closeBox(true);"); LPLog.LogMessage(LogType.Logerror, "Failed to save user info in AD. UserID: " + UserId.ToString() + ", Error: " + uResponse.hdr.StatusInfo); return; } } } catch (System.ServiceModel.EndpointNotFoundException ee) { LPLog.LogMessage(ee.Message); CallClientFn("closeBox(true);"); PageCommon.AlertMsg(this, "Failed to save user info in AD, reason: User Manager is not running."); return; } catch (Exception ex) { PageCommon.AlertMsg(this, "Failed to save user info in AD, reason:" + ex.Message); CallClientFn("closeBox(true);"); LPLog.LogMessage(LogType.Logerror, "Error occured when save user info in AD: " + ex.Message); return; } CallClientFn("ShowMsg('saveSuccss', '', true, true);"); } catch (Exception ex) { PageCommon.AlertMsg(this, "Failed to save user info, reason:" + ex.Message); LPLog.LogMessage(LogType.Logerror, "Error occured when save user info: " + ex.Message); return; } } else { CallClientFn("ShowMsg('invalidInput', '', false);"); } } else if ("1" == Mode) { newUser = UsersManager.GetModel(UserId.Value); bool changePwd = false; if ((newUser.Password != tbPWD.Text.Trim()) && !string.IsNullOrEmpty(tbPWD.Text.Trim())) { changePwd = true; } if (GetValue(ref newUser)) { if (!CheckBeforeSave(newUser)) { return; } try { // update current user info, without personalization info UsersManager.UpdateUserInfo(newUser, this.hiCurrLoanRep.Value, this.hiCurrGroup.Value); try { ServiceManager sm = new ServiceManager(); using (LP2ServiceClient service = sm.StartServiceClient()) { UpdateADUserRequest uReq = new UpdateADUserRequest(); ReqHdr hdr = new ReqHdr(); hdr.UserId = UserId.Value; uReq.hdr = hdr; uReq.AD_OU_Filter = this.lbPrefix.Text; uReq.AD_User = new LP_Service.User(); uReq.AD_User.Username = this.tbUserName.Text; uReq.AD_User.Firstname = this.tbFirstName.Text; uReq.AD_User.Lastname = this.tbLastName.Text; uReq.AD_User.Email = this.tbEmail.Text; uReq.AD_User.Enabled = this.ckbEnabled.Checked; if (changePwd) { uReq.AD_User.Password = this.tbPWD.Text; } else { uReq.AD_User.Password = string.Empty; } uReq.Command = UserMgrCommandType.UpdateUser; UpdateADUserResponse uResponse; uResponse = service.UpdateADUser(uReq); if (!uResponse.hdr.Successful) { PageCommon.AlertMsg(this, "Failed to update user info in AD, reason: " + uResponse.hdr.StatusInfo); CallClientFn("closeBox(true, false);"); LPLog.LogMessage(LogType.Logerror, "Failed to update user info to AD. UserID: " + UserId.ToString() + ", Error: " + uResponse.hdr.StatusInfo); return; } } } catch (System.ServiceModel.EndpointNotFoundException ee) { LPLog.LogMessage(ee.Message); CallClientFn("closeBox(true, false);"); PageCommon.AlertMsg(this, "Failed to update user info in AD, reason: User Manager is not running."); return; } catch (Exception ex) { PageCommon.AlertMsg(this, "Failed to update user info in AD, reason: " + ex.Message); CallClientFn("closeBox(true, false);"); LPLog.LogMessage(LogType.Logerror, "Error occured when update user info to AD: " + ex.Message); return; } CallClientFn("ShowMsg('saveSuccss', '', true, true, false);"); } catch (Exception ex) { PageCommon.AlertMsg(this, "Failed to save user info, reason: " + ex.Message); LPLog.LogMessage(LogType.Logerror, "Failed to save user info: " + ex.Message); return; } } else { CallClientFn("ShowMsg('invalidInput', '', false);"); } } }