using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class UserManager : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
   {
      if (!IsPostBack)
      {
         panSingle.Visible = false;
         panNew.Visible = false;
      }
      
   }
   protected void grdUsers_SelectedIndexChanged(object sender, EventArgs e)
   {
      object userKey = grdUsers.SelectedDataKey.Values[0];
      MembershipUser user =  Membership.GetUser(userKey);

      if (user != null)
      {
         txtEditEmail.Text = user.Email;
         txtEditComments.Text = user.Comment;

         panSingle.Visible = true;
      }
      

      
   }
   protected void btnEdit_Click(object sender, EventArgs e)
   {
      /*
      MembershipUserCollection allUsers = Membership.GetAllUsers();

      string currentUserName = (string)grdUsers.SelectedDataKey["UserName"];
      MembershipUser user = allUsers[currentUserName];
       * */

      object userKey = grdUsers.SelectedDataKey.Values[0];
      MembershipUser user = Membership.GetUser(userKey);


      user.Email = txtEditEmail.Text;
      user.Comment = txtEditComments.Text;

      Membership.UpdateUser(user);
   }

   protected void btnAdd_Click(object sender, EventArgs e)
   {
      MembershipCreateStatus status;
      Membership.CreateUser(txtUser.Text, txtPass.Text, txtEmail.Text,
         txtPassQuestion.Text, txtPassAnswer.Text, true, out status);
      if (status == MembershipCreateStatus.Success)
         labStatus.Text = "Użytkownika utworzono pomyślnie";
      else
         labStatus.Text = GetErrorMessage(status);
   }
   public string GetErrorMessage(MembershipCreateStatus status)
   {
      switch (status)
      {
         case MembershipCreateStatus.DuplicateUserName:
            return "Nazwa użytkownika już istnieje. Proszę wprowadzić inną nazwę użytkownika.";

         case MembershipCreateStatus.DuplicateEmail:
            return "Nazwa użytkownika dla podanego adresu e-mail już istnieje. Proszę wprowadzić inny adres e-mail.";

         case MembershipCreateStatus.InvalidPassword:
            return "Podane hasło jest nieprawidłowe. Proszę wprowadzić prawidłowe hasło.";

         case MembershipCreateStatus.InvalidEmail:
            return "Podany adres e-mail jest nieprawidłowy. Proszę go sprawdzić sprawdzić i spróbować ponownie.";

         case MembershipCreateStatus.InvalidAnswer:
            return "Podana odpowiedź jest nieprawidłowa. Proszę ją sprawdzić i spróbowac ponownie.";

         case MembershipCreateStatus.InvalidQuestion:
            return "Podane pytanie pomocnicze jest nieprawidłowe. Proszę je sprawdzić i spróbowac ponownie.";

         case MembershipCreateStatus.InvalidUserName:
            return "Podana nazwa użytkownika jest nieprawidłowa. Proszę ją sprawdzić i spróbowac ponownie.";

         case MembershipCreateStatus.ProviderError:
            return "Dostawca uwierzytelnień zwrócił błąd. Proszę sprawdzić wprowadzone dane i spróbować ponownie. Jeśli problem będzie się powtarzać, proszę skontaktować się z administratorem systemu.";

         case MembershipCreateStatus.UserRejected:
            return "Żądanie utworzenia użytkownika zostało anulowane. Proszę sprawdzić wprowadzone dane i spróbować ponownie. Jeśli problem będzie się powtarzać, proszę skontaktować się z administratorem systemu.";

         default:
            return "Wystąpił nieznany błąd. Proszę sprawdzić wprowadzone dane i spróbować ponownie. Jeśli problem będzie się powtarzać, proszę skontaktować się z administratorem systemu.";
      }
   }
   protected void lnkNew_Click(object sender, EventArgs e)
   {
      panNew.Visible = true;
      lnkNew.Visible = false;
   }
}
