PageRenderTime 35ms CodeModel.GetById 17ms app.highlight 13ms RepoModel.GetById 2ms app.codeStats 0ms

/Docs/07-Implementacion/Source/trunk/EDUAR_Regular/EDUAR/EDUAR_UI/Private/Account/RegisterUser.aspx.cs

http://blpm.googlecode.com/
C# | 453 lines | 330 code | 30 blank | 93 comment | 19 complexity | 599864e22fca27550c8913373096d162 MD5 | raw file
  1using System;
  2using System.Collections.Generic;
  3using System.Web.UI;
  4using System.Web.UI.WebControls;
  5using EDUAR_BusinessLogic.Common;
  6using EDUAR_BusinessLogic.Security;
  7using EDUAR_BusinessLogic.Shared;
  8using EDUAR_Entities;
  9using EDUAR_Entities.Security;
 10using EDUAR_UI.Shared;
 11using EDUAR_UI.Utilidades;
 12using EDUAR_Utility.Constantes;
 13using EDUAR_Utility.Enumeraciones;
 14using EDUAR_Utility.Utilidades;
 15
 16namespace EDUAR_UI
 17{
 18    /// <summary>
 19    /// 
 20    /// </summary>
 21    public partial class RegisterUser : EDUARBasePage
 22    {
 23        #region --[Atributos]--
 24        private BLSeguridad atrBLSeguridad;
 25        private BLPersona atrBLPersona;
 26        #endregion
 27
 28        #region --[Propiedades]--
 29        /// <summary>
 30        /// Propiedad que contiene el objeto seguridad que devuelve la consulta a la Capa de Negocio.
 31        /// </summary>
 32        public DTSeguridad propSeguridad
 33        {
 34            get
 35            {
 36                if (ViewState["objSeguridad"] == null)
 37                    return null;
 38
 39                return (DTSeguridad)ViewState["objSeguridad"];
 40            }
 41            set { ViewState["objSeguridad"] = value; }
 42        }
 43
 44        /// <summary>
 45        /// Gets or sets the prop persona.
 46        /// </summary>
 47        /// <value>
 48        /// The prop persona.
 49        /// </value>
 50        public Persona propPersona
 51        {
 52            get
 53            {
 54                if (ViewState["propPersona"] == null)
 55                    return new Persona();
 56
 57                return (Persona)ViewState["propPersona"];
 58            }
 59            set { ViewState["propPersona"] = value; }
 60        }
 61
 62        /// <summary>
 63        /// Gets or sets the prop lista personas.
 64        /// </summary>
 65        /// <value>
 66        /// The prop lista personas.
 67        /// </value>
 68        public List<Persona> propListaPersonas
 69        {
 70            get
 71            {
 72                if (ViewState["propListaPersonas"] == null)
 73                    return new List<Persona>();
 74
 75                return (List<Persona>)ViewState["propListaPersonas"];
 76            }
 77            set { ViewState["propListaPersonas"] = value; }
 78        }
 79        #endregion
 80
 81        #region --[Eventos]--
 82        /// <summary>
 83        /// Método que se ejecuta al dibujar los controles de la página.
 84        /// Se utiliza para gestionar las excepciones del método Page_Load().
 85        /// </summary>
 86        /// <param name="e"></param>
 87        protected override void OnPreRender(EventArgs e)
 88        {
 89            base.OnPreRender(e);
 90            if (AvisoMostrar)
 91            {
 92                AvisoMostrar = false;
 93
 94                try
 95                {
 96                    Master.ManageExceptions(AvisoExcepcion);
 97                }
 98                catch (Exception ex) { Master.ManageExceptions(ex); }
 99            }
100        }
101
102        /// <summary>
103        /// Handles the Load event of the Page control.
104        /// </summary>
105        /// <param name="sender">The source of the event.</param>
106        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
107        protected void Page_Load(object sender, EventArgs e)
108        {
109            try
110            {
111                Master.BotonAvisoAceptar += (VentanaAceptar);
112                Master.BotonAvisoCancelar += (VentanaCancelar);
113
114                if (!Page.IsPostBack)
115                {
116                    propSeguridad = new DTSeguridad();
117                    atrBLSeguridad = new BLSeguridad(propSeguridad);
118                    propPersona = new Persona();
119                    propPersona.idTipoPersona = 1;
120                    CargarPresentacion();
121                    CargarCamposFiltros();
122                    CargarGrilla();
123                }
124            }
125            catch (Exception ex)
126            {
127                AvisoMostrar = true;
128                AvisoExcepcion = ex;
129            }
130        }
131
132        /// <summary>
133        /// Ejecuta las acciones requeridas por el boton aceptar de la ventana de informacion.
134        /// </summary>
135        /// <param name="sender"></param>
136        /// <param name="e"></param>
137        void VentanaAceptar(object sender, EventArgs e)
138        {
139            try
140            {
141                switch (AccionPagina)
142                {
143                    case enumAcciones.Guardar:
144                        GuardarUsuario();
145                        AccionPagina = enumAcciones.Limpiar;
146                        Master.MostrarMensaje(enumTipoVentanaInformacion.Satisfactorio.ToString(), UIConstantesGenerales.MensajeGuardadoOk, enumTipoVentanaInformacion.Satisfactorio);
147                        break;
148                    case enumAcciones.Salir:
149                        Response.Redirect("~/Default.aspx", false);
150                        break;
151                    case enumAcciones.Limpiar:
152                        propSeguridad = new DTSeguridad();
153                        atrBLSeguridad = new BLSeguridad(propSeguridad);
154                        propPersona = new Persona();
155                        propListaPersonas = null;
156                        propPersona.idTipoPersona = 1;
157                        LimpiarCampos();
158                        CargarPresentacion();
159                        //CargarCamposFiltros();
160                        CargarGrilla();
161                        break;
162                    default:
163                        break;
164                }
165                udpRoles.Update();
166                udpGrilla.Update();
167            }
168            catch (Exception ex)
169            {
170                Master.ManageExceptions(ex);
171            }
172        }
173
174        /// <summary>
175        /// Ejecuta las acciones requeridas por el boton cancelar de la ventana de informacion.
176        /// </summary>
177        /// <param name="sender"></param>
178        /// <param name="e"></param>
179        void VentanaCancelar(object sender, EventArgs e)
180        {
181            try
182            {
183                //Response.Redirect("~/Default.aspx", false);
184            }
185            catch (Exception ex)
186            {
187                Master.ManageExceptions(ex);
188            }
189        }
190
191        /// <summary>
192        /// Handles the Click event of the btnGuardar control.
193        /// </summary>
194        /// <param name="sender">The source of the event.</param>
195        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
196        protected void btnBuscar_Click(object sender, EventArgs e)
197        {
198            try
199            {
200                BuscarFiltrando();
201            }
202            catch (Exception ex)
203			{
204				Master.ManageExceptions(ex);
205			}
206        }
207
208        /// <summary>
209        /// Handles the Click event of the btnGuardar control.
210        /// </summary>
211        /// <param name="sender">The source of the event.</param>
212        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
213        protected void btnGuardar_Click(object sender, EventArgs e)
214        {
215            try
216            {
217                if (ValidarPagina())
218                {
219                    if (Page.IsValid)
220                    {
221                        AccionPagina = enumAcciones.Guardar;
222                        Master.MostrarMensaje(enumTipoVentanaInformacion.Confirmación.ToString(), UIConstantesGenerales.MensajeConfirmarCambios, enumTipoVentanaInformacion.Confirmación);
223                    }
224                    else
225                    {
226                        AccionPagina = enumAcciones.Limpiar;
227                        Master.MostrarMensaje(enumTipoVentanaInformacion.Advertencia.ToString(), UIConstantesGenerales.MensajeDatosRequeridos, enumTipoVentanaInformacion.Advertencia);
228                    }
229                }
230            }
231            catch (Exception ex)
232			{
233				Master.ManageExceptions(ex);
234			}
235        }
236
237        /// <summary>
238        /// Handles the Click event of the btnVolver control.
239        /// </summary>
240        /// <param name="sender">The source of the event.</param>
241        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
242        protected void btnVolver_Click(object sender, EventArgs e)
243        {
244            try
245            {
246                CargarPresentacion();
247            }
248            catch (Exception ex)
249            {
250                Master.ManageExceptions(ex);
251            }
252        }
253
254        /// <summary>
255        /// Método que se llama al hacer click sobre las acciones de la grilla
256        /// </summary>
257        /// <param name="sender">The source of the event.</param>
258        /// <param name="e">The <see cref="System.Web.UI.WebControls.GridViewCommandEventArgs"/> instance containing the event data.</param>
259        protected void gvwUsuarios_RowCommand(object sender, GridViewCommandEventArgs e)
260        {
261            try
262            {
263                switch (e.CommandName)
264                {
265                    case "Nuevo":
266                        propPersona = new Persona();
267                        propPersona.idPersona = Convert.ToInt32(e.CommandArgument.ToString());
268                        AccionPagina = enumAcciones.Modificar;
269                        CargarPersona();
270                        btnGuardar.Visible = true;
271                        btnVolver.Visible = true;
272                        btnBuscar.Visible = false;
273                        udpRoles.Visible = true;
274                        udpFiltrosBusqueda.Visible = false;
275                        gvwUsuarios.Visible = false;
276                        udpRoles.Update();
277                        udpFiltros.Update();
278                        break;
279                }
280            }
281            catch (Exception ex)
282            {
283                Master.ManageExceptions(ex);
284            }
285        }
286
287        /// <summary>
288        /// Handles the PageIndexChanging event of the gvwUsuarios control.
289        /// </summary>
290        /// <param name="sender">The source of the event.</param>
291        /// <param name="e">The <see cref="System.Web.UI.WebControls.GridViewPageEventArgs"/> instance containing the event data.</param>
292        protected void gvwUsuarios_PageIndexChanging(object sender, GridViewPageEventArgs e)
293        {
294            try
295            {
296                gvwUsuarios.PageIndex = e.NewPageIndex;
297                CargarGrilla();
298            }
299            catch (Exception ex) { Master.ManageExceptions(ex); }
300        }
301        #endregion
302
303        #region --[Métodos Privados]--
304        /// <summary>
305        /// Cargars the presentacion.
306        /// </summary>
307        private void CargarPresentacion()
308        {
309            btnBuscar.Visible = true;
310            btnGuardar.Visible = false;
311            btnVolver.Visible = false;
312            udpFiltrosBusqueda.Visible = true;
313            gvwUsuarios.Visible = true;
314            udpRoles.Visible = false;
315            udpGrilla.Update();
316            udpFiltros.Update();
317        }
318        /// <summary>
319        /// Cargars the campos filtros.
320        /// </summary>
321        private void CargarCamposFiltros()
322        {
323            atrBLSeguridad.GetRoles();
324            UIUtilidades.BindCombo<DTRol>(ddlListRoles, atrBLSeguridad.Data.ListaRoles, "NombreCorto", "Nombre", true);
325            UIUtilidades.BindComboTipoPersona(ddlTipoUsuario);
326        }
327
328        /// <summary>
329        /// Buscars the filtrando.
330        /// </summary>
331        private void BuscarFiltrando()
332        {
333            Persona objPersona = new Persona();
334            objPersona.nombre = txtNombreBusqueda.Text;
335            objPersona.apellido = txtApellidoBusqueda.Text;
336            objPersona.activo = chkActivoBusqueda.Checked;
337            objPersona.username = null;
338            objPersona.idTipoPersona = Convert.ToInt32(ddlTipoUsuario.SelectedValue);
339            BuscarPersona(objPersona);
340        }
341
342        /// <summary>
343        /// Obteners the datos.
344        /// </summary>
345        private void BuscarPersona(Persona objPersona)
346        {
347            atrBLPersona = new BLPersona(objPersona);
348            propListaPersonas = atrBLPersona.GetPersonas(objPersona);
349            CargarGrilla();
350        }
351
352        /// <summary>
353        /// Cargars the grilla.
354        /// </summary>
355        private void CargarGrilla()
356        {
357            gvwUsuarios.DataSource = propListaPersonas;
358            gvwUsuarios.DataBind();
359            gvwUsuarios.SelectedIndex = -1;
360            udpRoles.Visible = false;
361            udpGrilla.Update();
362        }
363
364        /// <summary>
365        /// Cargars the usuario.
366        /// </summary>
367        private void CargarPersona()
368        {
369			LimpiarCampos();
370            atrBLPersona = new BLPersona();
371            //propPersona.username = string.Empty;
372            atrBLPersona.Data = propPersona;
373            atrBLPersona.GetById();
374            Persona objPersona = atrBLPersona.Data;
375            lblNombreApellido.Text = objPersona.nombre + " " + objPersona.apellido;
376            txtUserName.Text = string.Empty;
377            txtEmailUsuario.Text = objPersona.email;
378            lblPreguntaUsuario.Text = BLConfiguracionGlobal.ObtenerConfiguracion(enumConfiguraciones.PreguntaDefault);
379            lblRespuestaUsuario.Text = objPersona.numeroDocumento.ToString();
380
381            udpRoles.Visible = true;
382            udpRoles.Update();
383        }
384
385        /// <summary>
386        /// Limpiars the campos.
387        /// </summary>
388        private void LimpiarCampos()
389        {
390            txtUserName.Text = string.Empty;
391            txtNombreBusqueda.Text = string.Empty;
392            txtApellidoBusqueda.Text = string.Empty;
393            txtEmailUsuario.Text = string.Empty;
394            ddlListRoles.SelectedValue = "-1"; //SELECCIONE
395            ddlTipoUsuario.SelectedValue = "0"; //TODOS
396        }
397
398        /// <summary>
399        /// Guardars the usuario.
400        /// </summary>
401        private void GuardarUsuario()
402        {
403            DTUsuario objUsuario = new DTUsuario();
404            objUsuario.Nombre = txtUserName.Text;
405            objUsuario.Email = txtEmailUsuario.Text;
406            objUsuario.Aprobado = chkHabilitado.Checked;
407            objUsuario.PaswordPregunta = lblPreguntaUsuario.Text;
408            objUsuario.PaswordRespuesta = lblRespuestaUsuario.Text;
409            objUsuario.EsUsuarioInicial = true;
410            objUsuario.ListaRoles = new List<DTRol>();
411            objUsuario.ListaRoles.Add(new DTRol() { NombreCorto = ddlListRoles.SelectedValue, Nombre = ddlListRoles.SelectedItem.Text });
412
413            DTSeguridad objSeguridad = new DTSeguridad();
414            objSeguridad.Usuario = objUsuario;
415            atrBLSeguridad = new BLSeguridad(objSeguridad);
416            atrBLSeguridad.CrearUsuario();
417
418            Persona objPersona = new Persona();
419            atrBLPersona = new BLPersona(propPersona);
420            atrBLPersona.GetById();
421            atrBLPersona.Data.username = objUsuario.Nombre;
422            atrBLPersona.Save();
423
424        }
425
426        /// <summary>
427        /// Validars the pagina.
428        /// </summary>
429        private bool ValidarPagina()
430        {
431            if (txtUserName.Text.Trim().Length == 0)
432            {
433                AccionPagina = enumAcciones.Limpiar;
434                Master.MostrarMensaje(enumTipoVentanaInformacion.Advertencia.ToString(), UIConstantesGenerales.MensajeDatosRequeridos, enumTipoVentanaInformacion.Advertencia);
435                return false;
436            }
437            if (!EDUARUtilidades.EsEmailValido(txtEmailUsuario.Text.Trim()))
438            {
439                AccionPagina = enumAcciones.Limpiar;
440                Master.MostrarMensaje(enumTipoVentanaInformacion.Advertencia.ToString(), UIConstantesGenerales.MensajeDatosRequeridos, enumTipoVentanaInformacion.Advertencia);
441                return false;
442            }
443            if (ddlListRoles.SelectedValue == "0" || ddlListRoles.SelectedValue == "-1")
444            {
445                AccionPagina = enumAcciones.Limpiar;
446                Master.MostrarMensaje(enumTipoVentanaInformacion.Advertencia.ToString(), UIConstantesGenerales.MensajeDatosRequeridos, enumTipoVentanaInformacion.Advertencia);
447                return false;
448            }
449            return true;
450        }
451        #endregion
452    }
453}