using System.Linq;
using AutomatizovanySklad.Core;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin;
using Owin;
using Web.Models;

[assembly: OwinStartupAttribute(typeof(Web.Startup))]
namespace Web {
  public partial class Startup {
    public void Configuration(IAppBuilder app) {
      ConfigureAuth(app);
      createRolesandUsers();
      DbCheck();

    }


    private void DbCheck() {
      //using (var skladDbContext = new AppDbContext()) {
      //  skladDbContext.Open()
      //}
    }

    private void createRolesandUsers() {
     
      ApplicationDbContext context = new ApplicationDbContext();

      var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
      var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));


      // Po nastartování zjistíme zda už existuje role Vedoucího  
      if (!roleManager.RoleExists("Vedouci")) {

        //Vytvoříme roli  
        var roleVedouci = new IdentityRole();
        roleVedouci.Name = "Vedouci";
        roleManager.Create(roleVedouci);
        var roleSkladnici = new IdentityRole();
        roleSkladnici.Name = "Skladnici";
        roleManager.Create(roleSkladnici);


        //Zde se vytvoří admin                

        var user = new ApplicationUser {
          Id = "ada0e064-f822-4be4-8883-fa7cdac62534",
          VybranyZamestnanec = 1,
          Email = "dobesstavbysro@seznam.cz",
          EmailConfirmed = false,
          PhoneNumberConfirmed = false,
          TwoFactorEnabled = false,
          LockoutEnabled = true,
          AccessFailedCount = 0,
          UserName = "dobesstavbysro@seznam.cz",
          Roles = { new IdentityUserRole { UserId = "ada0e064-f822-4be4-8883-fa7cdac62534", RoleId = roleVedouci.Id } }
        };

        var chkUser = UserManager.Create(user, "Heslo123*");

        //Přidej defaultního uživatele k roli
        if (chkUser.Succeeded) {
          UserManager.AddToRole(user.Id, roleVedouci.Name);
        }
      }
    }
  }
}
