public async System.Threading.Tasks.Task <ActionResult> AddApprovalProcess() { ApplicationDbContext context = new ApplicationDbContext(); var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var RoleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); List <ApplicationUser> users = new List <ApplicationUser>(); var role = await RoleManager.FindByIdAsync("3a6e2158-8b77-4ff8-9c15-66a48e00248e"); List <ApplicationUser> employees = UserManager.Users.ToList(); foreach (var user in UserManager.Users.ToList()) { if (await UserManager.IsInRoleAsync(user.Id, role.Name)) { users.Add(user); } } ApprovalProcessViewModel model = new ApprovalProcessViewModel { ApproverList = users, Employess = employees }; return(View(model)); }
public async System.Threading.Tasks.Task <ActionResult> AddApprovalProcess(ApprovalProcessViewModel approvers) { ApplicationDbContext context = new ApplicationDbContext(); if (!ModelState.IsValid) { var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var RoleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); List <ApplicationUser> users = new List <ApplicationUser>(); var role = await RoleManager.FindByIdAsync("3a6e2158-8b77-4ff8-9c15-66a48e00248e"); List <ApplicationUser> employees = UserManager.Users.ToList(); foreach (var user in UserManager.Users.ToList()) { if (await UserManager.IsInRoleAsync(user.Id, role.Name)) { users.Add(user); } } ApprovalProcessViewModel model = new ApprovalProcessViewModel { ApproverList = users, Employess = employees }; return(View(model)); } else { List <String> Approvers = approvers.Approver; List <int> Levels = approvers.Level; string appLevels = ""; ApprovalProcess newProcess = new ApprovalProcess(); newProcess.CreatedAt = DateTime.Now; newProcess.UserId = approvers.Employee; int app = 0; foreach (var level in Levels) { Level newLevel = new Level(); string level_approvers = ""; newLevel.CreatedAt = DateTime.Now; for (var i = 0; i < level; i++) { if (level_approvers == "") { level_approvers += Approvers[app]; } else { level_approvers += "," + Approvers[app]; } app++; } newLevel.Approvers = level_approvers; context.Levels.Add(newLevel); context.SaveChanges(); if (appLevels == "") { appLevels += newLevel.Id.ToString(); } else { appLevels += "," + newLevel.Id.ToString(); } } newProcess.Level = appLevels; context.ApprovalProcesses.Add(newProcess); context.SaveChanges(); return(Content(Approvers[0])); } }