public OOB.ResultadoAuto UsuarioGrupo_Agregar(OOB.LibSistema.UsuarioGrupo.Agregar ficha)
        {
            var rt = new OOB.ResultadoAuto();

            var list = ficha.permisos.Select(s =>
            {
                var nr = new DtoLibSistema.GrupoUsuario.Permiso()
                {
                    codigoFuncion = s.codigoFuncion,
                    estatus       = s.estatus,
                    seguridad     = s.seguridad,
                };
                return(nr);
            }).ToList();
            var fichaDTO = new DtoLibSistema.GrupoUsuario.Agregar()
            {
                nombre   = ficha.nombre,
                permisos = list,
            };
            var r01 = MyData.GrupoUsuario_Agregar(fichaDTO);

            if (r01.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                rt.Mensaje = r01.Mensaje;
                rt.Result  = OOB.Enumerados.EnumResult.isError;
                return(rt);
            }

            rt.Auto = r01.Auto;

            return(rt);
        }
示例#2
0
 public DtoLib.ResultadoAuto GrupoUsuario_Agregar(DtoLibSistema.GrupoUsuario.Agregar ficha)
 {
     return(ServiceProv.GrupoUsuario_Agregar(ficha));
 }
        public DtoLib.ResultadoAuto GrupoUsuario_Agregar(DtoLibSistema.GrupoUsuario.Agregar ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var cnn = new sistemaEntities(_cnSist.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var sql = "update sistema_contadores set a_usuarios_grupo=a_usuarios_grupo+1";
                        var r1  = cnn.Database.ExecuteSqlCommand(sql);
                        if (r1 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR TABLA CONTADORES";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        var aUsuarioGrupo    = cnn.Database.SqlQuery <int>("select a_usuarios_grupo from sistema_contadores").FirstOrDefault();
                        var autoUsuarioGrupo = aUsuarioGrupo.ToString().Trim().PadLeft(10, '0');

                        var ent = new usuarios_grupo()
                        {
                            auto   = autoUsuarioGrupo,
                            nombre = ficha.nombre,
                        };
                        cnn.usuarios_grupo.Add(ent);
                        cnn.SaveChanges();

                        sql = @"INSERT INTO usuarios_grupo_permisos (codigo_grupo,codigo_funcion,estatus,seguridad) " +
                              "VALUES (@p1, @p2, @p3,@p4)";
                        var p1 = new MySqlParameter();
                        var p2 = new MySqlParameter();
                        var p3 = new MySqlParameter();
                        var p4 = new MySqlParameter();
                        foreach (var it in ficha.permisos)
                        {
                            p1.ParameterName = "@p1";
                            p1.Value         = autoUsuarioGrupo;
                            p2.ParameterName = "@p2";
                            p2.Value         = it.codigoFuncion;
                            p3.ParameterName = "@p3";
                            p3.Value         = it.estatus;
                            p4.ParameterName = "@p4";
                            p4.Value         = it.seguridad;

                            r1 = cnn.Database.ExecuteSqlCommand(sql, p1, p2, p3, p4);
                            if (r1 == 0)
                            {
                                result.Mensaje = "PROBLEMA AL INSERTAR PERMISOS AL GRUPO";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            cnn.SaveChanges();
                        }

                        ts.Complete();
                        result.Auto = autoUsuarioGrupo;
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException e)
            {
                var msg = "";
                foreach (var eve in e.Entries)
                {
                    //msg += eve.m;
                    foreach (var ve in eve.CurrentValues.PropertyNames)
                    {
                        msg += ve.ToString();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }