private void btnOK_Click(object sender, EventArgs e) { OperationResult objOperationResult = new OperationResult(); string Result = ""; string personId; bool sendNotification = false; int systemUserId = -1; string SihayError = ""; if (uvPacient.Validate(true, false).IsValid) { #region Validation if (txtName.Text.Trim() == "") { MessageBox.Show("Por favor ingrese un nombre apropiado para Nombres.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (txtFirstLastName.Text.Trim() == "") { MessageBox.Show("Por favor ingrese un nombre apropiado para Apellido Paterno.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (txtSecondLastName.Text.Trim() == "") { MessageBox.Show("Por favor ingrese un nombre apropiado para Apellido Materno.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (txtDocNumber.Text.Trim() == "") { MessageBox.Show("Por favor ingrese un nombre apropiado para Número Documento.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (txtMail.Text.Trim() == "") { MessageBox.Show("Por favor ingrese un Email .", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else if (txtMail.Text.Trim() != "") { if (!Sigesoft.Common.Utils.email_bien_escrito(txtMail.Text.Trim())) { MessageBox.Show("Por favor ingrese un Email con formato correcto.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (dtpBirthdate.Checked == false) { MessageBox.Show("Por favor ingrese una fecha de nacimiento.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int caracteres = txtDocNumber.TextLength; if (int.Parse(ddlDocType.SelectedValue.ToString()) == (int)Common.Document.DNI) { if (caracteres != 8) { MessageBox.Show("La cantida de caracteres de Número Documento es invalido.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else if (int.Parse(ddlDocType.SelectedValue.ToString()) == (int)Common.Document.PASAPORTE) { if (caracteres != 9) { MessageBox.Show("La cantida de caracteres de Número Documento es invalido.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else if (int.Parse(ddlDocType.SelectedValue.ToString()) == (int)Common.Document.LICENCIACONDUCIR) { if (caracteres != 9) { MessageBox.Show("La cantida de caracteres de Número Documento es invalido.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else if (int.Parse(ddlDocType.SelectedValue.ToString()) == (int)Common.Document.CARNETEXTRANJ) { if (caracteres < 9) { MessageBox.Show("La cantida de caracteres de Número Documento es invalido.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } if (txtPassword2.Text.Trim() != txtPassword1.Text.Trim()) { MessageBox.Show("Los Password no coinciden Por favor verifique.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } #endregion if (_tmpListProtocolSystemUser == null) { _tmpListProtocolSystemUser = new List <protocolsystemuserDto>(); } if (_mode == "New") { // Validar la longitud de los numeros de documentos if (!IsValidDocumentNumberLenght()) { return; } // Populate the entity objPerson = new personDto(); objPerson.v_FirstName = txtName.Text.Trim(); objPerson.v_FirstLastName = txtFirstLastName.Text.Trim(); objPerson.v_SecondLastName = txtSecondLastName.Text.Trim(); objPerson.i_DocTypeId = Convert.ToInt32(ddlDocType.SelectedValue); objPerson.i_SexTypeId = Convert.ToInt32(ddlSexType.SelectedValue); objPerson.i_MaritalStatusId = Convert.ToInt32(ddlMaritalStatus.SelectedValue); objPerson.i_LevelOfId = Convert.ToInt32(ddlLevelOfId.SelectedValue); objPerson.v_DocNumber = txtDocNumber.Text.Trim(); objPerson.d_Birthdate = dtpBirthdate.Value; objPerson.v_BirthPlace = txtBirthPlace.Text.Trim(); objPerson.v_TelephoneNumber = txtTelephoneNumber.Text.Trim(); objPerson.v_AdressLocation = txtAdressLocation.Text.Trim(); objPerson.v_Mail = txtMail.Text.Trim(); // Datos de usuario systemuserDto pobjSystemUser = new systemuserDto(); pobjSystemUser.v_UserName = txtUserName.Text.Trim(); pobjSystemUser.v_Password = SecurityBL.Encrypt(txtPassword2.Text.Trim()); pobjSystemUser.i_SystemUserTypeId = (int)SystemUserTypeId.External; //if (rbFEchaExpiracion.Checked) // pobjSystemUser.d_ExpireDate = dtpExpiredDate.Value.Date; // Graba persona systemUserId = _protocolBL.AddPersonUsuarioExterno(ref objOperationResult, objPerson, null, pobjSystemUser, Globals.ClientSession.GetAsList()); //Obtener Todos los protocolos de la Empresa var idEmpresa = cboEmpresa.SelectedValue.ToString().Split('|'); var ListaProtocolos = _protocolBL.DevolverProtocolosPorEmpresa(idEmpresa[0].ToString()); #region Eval CheckedList for create new -> chklPermisosOpciones / chklNotificaciones foreach (var item in ListaProtocolos) { _tmpListProtocolSystemUser = new List <protocolsystemuserDto>(); for (int i = 0; i < chklPermisosOpciones.CheckedItems.Count; i++) { protocolsystemuserDto protocolSystemUser = new protocolsystemuserDto(); KeyValueDTO obj = (KeyValueDTO)chklPermisosOpciones.CheckedItems[i]; protocolSystemUser.v_ProtocolId = item.v_ProtocolId; protocolSystemUser.i_ApplicationHierarchyId = int.Parse(obj.Id); _tmpListProtocolSystemUser.Add(protocolSystemUser); } // Graba UsuarioExterno SihayError = _protocolBL.AddSystemUserExternal_(ref objOperationResult, _tmpListProtocolSystemUser, Globals.ClientSession.GetAsList(), systemUserId); //for (int i = 0; i < chklNotificaciones.CheckedItems.Count; i++) //{ // protocolsystemuserDto protocolSystemUser = new protocolsystemuserDto(); // KeyValueDTO obj = (KeyValueDTO)chklNotificaciones.CheckedItems[i]; // protocolSystemUser.v_ProtocolId = item.v_ProtocolId; // protocolSystemUser.i_ApplicationHierarchyId = int.Parse(obj.Id); // _tmpListProtocolSystemUser.Add(protocolSystemUser); //} } #endregion if (SihayError == "-1") { if (objOperationResult.ErrorMessage != null) { //MessageBox.Show("Por favor ingrese un nombre apropiado para Nombres.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); //return; MessageBox.Show(objOperationResult.ErrorMessage, "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } this.Enabled = false; frmWaiting.Show(this); bgwSendEmail.RunWorkerAsync(); } else if (_mode == "Edit") { bool isChangeUserName = false; bool isChangeDocNumber = false; // Validar la longitud de los numeros de documentos if (!IsValidDocumentNumberLenght()) { return; } #region Validate SystemUSer // Almacenar temporalmente el nombre de usuario actual if (txtUserName.Text != _objSystemUserTemp.v_UserName) { isChangeUserName = true; sendNotification = true; } #endregion #region Validate Document Number // Almacenar temporalmente el número de documento del usuario actual if (txtDocNumber.Text != objPerson.v_DocNumber) { isChangeDocNumber = true; } #endregion // Almacenar temporalmente el password del usuario actual var passTemp = _objSystemUserTemp.v_Password; // Si el password actual es diferente al ingresado en la cajita de texto, quiere decir que se ha cambiado el password por lo tanto // se bede encriptar el nuevo password if (txtPassword2.Text != passTemp) { _objSystemUserTemp.v_Password = SecurityBL.Encrypt(txtPassword2.Text.Trim()); sendNotification = true; } else { _objSystemUserTemp.v_Password = txtPassword2.Text.Trim(); } #region Datos de persona // Datos de persona objPerson.v_PersonId = _personId; objPerson.v_FirstName = txtName.Text.Trim(); objPerson.v_FirstLastName = txtFirstLastName.Text.Trim(); objPerson.v_SecondLastName = txtSecondLastName.Text.Trim(); objPerson.i_DocTypeId = Convert.ToInt32(ddlDocType.SelectedValue); objPerson.i_SexTypeId = Convert.ToInt32(ddlSexType.SelectedValue); objPerson.i_MaritalStatusId = Convert.ToInt32(ddlMaritalStatus.SelectedValue); objPerson.i_LevelOfId = Convert.ToInt32(ddlLevelOfId.SelectedValue); objPerson.v_DocNumber = txtDocNumber.Text.Trim(); objPerson.d_Birthdate = dtpBirthdate.Value; objPerson.v_BirthPlace = txtBirthPlace.Text.Trim(); objPerson.v_TelephoneNumber = txtTelephoneNumber.Text.Trim(); objPerson.v_AdressLocation = txtAdressLocation.Text.Trim(); objPerson.v_Mail = txtMail.Text.Trim(); #endregion #region Datos de Profesional // Datos de Profesional if (ddlProfession.SelectedNode.Tag.ToString() != "-1" || !string.IsNullOrEmpty(txtProfessionalCode.Text) || !string.IsNullOrEmpty(txtProfessionalInformation.Text)) { _professionalDto = new professionalDto(); _professionalDto.i_ProfessionId = Convert.ToInt32(ddlProfession.SelectedNode.Tag); if (!string.IsNullOrEmpty(txtProfessionalCode.Text)) { _professionalDto.v_ProfessionalCode = txtProfessionalCode.Text.Trim(); } if (!string.IsNullOrEmpty(txtProfessionalInformation.Text)) { _professionalDto.v_ProfessionalInformation = txtProfessionalInformation.Text.Trim(); } } #endregion #region Datos de Usuario // Datos de Usuario _objSystemUserTemp.i_SystemUserId = _objSystemUserTemp.i_SystemUserId; _objSystemUserTemp.v_PersonId = _personId; _objSystemUserTemp.v_UserName = txtUserName.Text; _objSystemUserTemp.d_InsertDate = _objSystemUserTemp.d_InsertDate; _objSystemUserTemp.i_InsertUserId = _objSystemUserTemp.i_SystemUserId; _objSystemUserTemp.i_IsDeleted = _objSystemUserTemp.i_IsDeleted; if (rbFEchaExpiracion.Checked) { _objSystemUserTemp.d_ExpireDate = dtpExpiredDate.Value.Date; } else if (rbNuncaCaduca.Checked) { _objSystemUserTemp.d_ExpireDate = null; } #endregion // LoadCheckedListForUpdate(); // Actualiza persona _protocolBL.UpdateSystemUserExternal(ref objOperationResult, isChangeDocNumber, objPerson, _professionalDto, isChangeUserName, _objSystemUserTemp, _listProtocolSystemUserPermisoUpdate, _listProtocolSystemUserPermisoDelete, _listProtocolSystemUserNotifcacionUpdate, _listProtocolSystemUserNotifcacionDelete, Globals.ClientSession.GetAsList()); if (sendNotification) { this.Enabled = false; frmWaiting.Show(this); bgwSendEmail.RunWorkerAsync(); } } if (objOperationResult.ErrorMessage != null) { //MessageBox.Show("Por favor ingrese un nombre apropiado para Nombres.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); //return; MessageBox.Show(objOperationResult.ErrorMessage, "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { if (objOperationResult.Success != 1) { MessageBox.Show("Error en operación:" + System.Environment.NewLine + objOperationResult.ExceptionMessage); return; } } if (!sendNotification && _mode != "New") { this.DialogResult = DialogResult.OK; this.Close(); } } else { MessageBox.Show("Por favor corrija la información ingresada. Vea los indicadores de error.", "Error de validación", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }