public static async Task <ESGR_PermisoPerfil> Process(Type Formulario, string titleMensaje, string mensaje)
        {
            var result = await Task.Run(() =>
            {
                var ListPrivileges = new List <ESGR_PermisoPerfil>();
                try
                {
                    string nameFormulario = Formulario.Name;
                    ListPrivileges        = new BSGR_PermisoPerfil().GetCollectionPermisoPerfil(SGRVariables.ESGR_Usuario.ESGR_Perfil.IdPerfil).ToList();

                    SGRVariables.ESGR_Usuario.ListESGR_PermisoPerfil = ListPrivileges;

                    //Obtenemos prefijo
                    var ArrayPrefijo = nameFormulario.Split("_".ToArray());
                    var prefijo      = (ArrayPrefijo.Count() > 0) ? ArrayPrefijo[0] : string.Empty;
                    prefijo          = prefijo.Substring(prefijo.Length - 3, 3);

                    var vrObjEPermisoPerfil = SGRVariables.ESGR_Usuario.ListESGR_PermisoPerfil.Where(x => x.ESGR_Formulario.ESGR_Modulo.Prefijo == prefijo && x.ESGR_Formulario.NombreFormulario == nameFormulario && x.Consulta).FirstOrDefault();
                    if (vrObjEPermisoPerfil == null)
                    {
                        bool StatusShowMessage = true;
                        CmpMessageBox.Show(titleMensaje, mensaje, CmpButton.Aceptar, () =>
                        {
                            StatusShowMessage = false;
                        });
                        while (StatusShowMessage)
                        {
                        }
                    }
                    return(vrObjEPermisoPerfil);
                }
                catch (Exception)
                {
                    throw;
                }
            });

            return(result);
        }
Beispiel #2
0
        private async void LoadPermisoPerfil()
        {
            var vrListFormulario     = new List <ESGR_Formulario>();
            var vrListEPermisoPerfil = new List <ESGR_PermisoPerfil>();

            await Task.Factory.StartNew(
                () =>
            {
                try
                {
                    vrListFormulario = new BSGR_Formulario().ListGetAllFormulario();

                    if (ESGR_Perfil != null)
                    {
                        vrListEPermisoPerfil = new BSGR_PermisoPerfil().GetCollectionPermisoPerfil(ESGR_Perfil.IdPerfil).ToList();

                        ///Realizamos equivalencia
                        foreach (var yy in vrListFormulario)
                        {
                            foreach (var ss in vrListEPermisoPerfil)
                            {
                                if (yy.CodFormulario == ss.ESGR_Formulario.CodFormulario)
                                {
                                    yy.Consulta = ss.Consulta;
                                    yy.Nuevo    = ss.Nuevo;
                                    yy.Editar   = ss.Editar;
                                    yy.Eliminar = ss.Eliminar;
                                }
                            }
                        }

                        ///Obtenemos solo los nombres de los módulos
                        var vrGetNombreModulo = vrListFormulario.Select(d => new { d.ESGR_Modulo.NombreModulo, d.ESGR_Modulo.IdModulo })
                                                .Distinct()
                                                .OrderByDescending(d => d.NombreModulo).ToList();

                        Application.Current.Dispatcher.Invoke(() =>
                        {
                            CollectionVMSGR_Modulo.Clear();
                        });
                        ///Recorremos la lista de los nombres de Módulo
                        foreach (var tt in vrGetNombreModulo)
                        {
                            ///Listamos solo los formularios cuyo nombre sea igual al nombre del Módulo
                            var vrItemsFomulario = vrListFormulario.Where(x => x.ESGR_Modulo.NombreModulo == tt.NombreModulo).ToList();
                            Application.Current.Dispatcher.Invoke(() =>
                            {
                                CollectionVMSGR_Modulo.Add(new VMSGR_Modulo()
                                {
                                    HeaderModulo = tt.NombreModulo,
                                    CollectionESGR_FormularioAll = new ObservableCollection <ESGR_Formulario>(vrItemsFomulario),
                                    IdModulo = tt.IdModulo
                                });
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    CmpMessageBox.Show(SGRMessage.TitleMessage, ex.Message, CmpButton.Aceptar);
                }
            });
        }