コード例 #1
0
    protected void AsociarCompaniasAUsurioSeleccionado_Button_Click(object sender, EventArgs e)
    {
        // asociamos uno o varios roles seleccionados a un usuario seleccionado

        // debe haber un usuario (solo uno) seleccionado

        // nos aseguramos que se haya seleccionado solo un usuario
        Int16 nItemsSelectedCount = 0;

        foreach (ListItem MyItem in Usuarios_ListBox.Items)
        {
            if (MyItem.Selected)
            {
                nItemsSelectedCount++;
            }
        }

        switch (nItemsSelectedCount)
        {
        case 0:
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar un usuario de la lista de usuarios.";
            ErrMessage_Span.Style["display"] = "block";

            return;

        case 1:
            break;

        default:
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar SOLO un usuario de la lista de usuarios.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // nótese que puede no haber compañías seleccionadas, pues se puede querer quitar las que estaban seleccionadas a un usuario
        nItemsSelectedCount = 0;

        foreach (ListItem MyItem in Companias_ListBox.Items)
        {
            if (MyItem.Selected)
            {
                nItemsSelectedCount++;
            }
        }


        //if (nItemsSelectedCount == 0)
        //{
        //    ErrMessage_Span.InnerHtml = "Ud. debe seleccionar al menos una compañía de la lista de compañías.";
        //    ErrMessage_Span.Style["display"] = "block";

        //    return;
        //}

        // primero eliminamos las compañías que ahora corresponan al usuario
        dbContabUsersEntities usersContext = new dbContabUsersEntities();

        var userID = usersContext.aspnet_Users.Where(u => u.UserName == Usuarios_ListBox.SelectedValue).FirstOrDefault().UserId;

        usersContext.ExecuteStoreCommand("Delete From CompaniasYUsuarios Where Usuario = @usuario",
                                         new SqlParameter {
            ParameterName = "usuario", Value = userID
        });

        CompaniasYUsuario companiaYUsuario;

        foreach (ListItem compania in Companias_ListBox.Items)
        {
            if (!compania.Selected)
            {
                continue;
            }

            companiaYUsuario = new CompaniasYUsuario();

            companiaYUsuario.Usuario  = userID;
            companiaYUsuario.Compania = Convert.ToInt32(compania.Value);

            usersContext.CompaniasYUsuarios.AddObject(companiaYUsuario);
        }

        usersContext.SaveChanges();

        Message_Span.InnerHtml = "Ok, las compañías seleccionadas <b>(" + Companias_ListBox.GetSelectedIndices().Count().ToString() +
                                 ")</b> han sido asociadas al usuario " + Usuarios_ListBox.SelectedValue + ".<br />" +
                                 "El usuario " + Usuarios_ListBox.SelectedValue + " solo tendrá acceso a estas compañías";
        Message_Span.Style["display"] = "block";
    }
コード例 #2
0
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            // intentamos seleccionar la compañia que el usuario selecciona en la lista ...

            if (!User.Identity.IsAuthenticated)
            {
                FormsAuthentication.SignOut();
                return;
            }

            string usuario = User.Identity.Name;
            int?   pk      = Convert.ToInt32(GridView1.SelectedDataKey.Value.ToString());

            if (pk != null)
            {
                dbContabUsersEntities context = new dbContabUsersEntities();

                var query = context.tCiaSeleccionadas.Where(s => s.UsuarioLS == usuario);

                foreach (tCiaSeleccionada s in query)
                {
                    context.tCiaSeleccionadas.DeleteObject(s);
                }

                Compania compania = context.Companias.Where(c => c.Numero == pk.Value).FirstOrDefault();

                if (compania == null)
                {
                    string errorMessage = "Error inesperado: no hemos podido encontrar la compañía en la tabla Compañías.";

                    CustomValidator1.IsValid      = false;
                    CustomValidator1.ErrorMessage = errorMessage;

                    return;
                }

                tCiaSeleccionada ciaSeleccionada = new tCiaSeleccionada()
                {
                    CiaSeleccionada = compania.Numero,
                    Nombre          = compania.Nombre,
                    NombreCorto     = compania.NombreCorto,
                    UsuarioLS       = usuario,
                    Usuario         = 0
                };

                context.tCiaSeleccionadas.AddObject(ciaSeleccionada);

                try
                {
                    context.SaveChanges();
                    this.nombreCompaniaSeleccionada_literal.Text = compania.Nombre;
                }
                catch (Exception ex)
                {
                    string errorMessage = ex.Message;

                    if (ex.InnerException != null)
                    {
                        errorMessage += "<br /><br />" + ex.InnerException.Message;
                    }

                    CustomValidator1.IsValid      = false;
                    CustomValidator1.ErrorMessage = errorMessage;

                    return;
                }
                finally
                {
                    context = null;
                }
            }
        }