예제 #1
0
        /// <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);");
                }
            }
        }