public ActionResult SetupUsers() { HttpPostedFileBase fileUpload = Request.Files[0]; var users = new List <EdayRoomUser>(); if (fileUpload != null) { fileUpload.SaveAs(Server.MapPath("~/temp/" + fileUpload.FileName)); var fi = new FileInfo(Server.MapPath("~/temp/" + fileUpload.FileName)); var fiOut = new FileInfo( Path.Combine( Server.MapPath(ConfigurationManager.AppSettings["userFilesDirectory"]), string.Format("{0}_" + fileUpload.FileName, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss")))); var db = new edayRoomEntities(); List <string> existingUsers = (from u in db.users select u.username).ToList(); var package = new ExcelPackage(fi); ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; worksheet.Cells[1, 3].Value = "usuario"; worksheet.Cells[1, 4].Value = "password"; for (int i = 2; i <= worksheet.Dimension.End.Row; i++) { var nombre = (string)worksheet.Cells[i, 1].Value; var apellido = (string)worksheet.Cells[i, 2].Value; var u = new EdayRoomUser { Name = nombre + " " + apellido, Password = PasswordManagement.GenerateRandomPassword(6), }; u.Username = u.Name.Replace(" ", ".").ToLower(); int uid = 1; if (existingUsers.Any(us => us == u.Username)) { string original = u.Username; while (true) { u.Username = original + "." + uid; if (existingUsers.All(us => us != u.Username)) { break; } uid++; } } existingUsers.Add(u.Username); worksheet.Cells[i, 3].Value = u.Username; worksheet.Cells[i, 4].Value = u.Password; users.Add(u); string salt = ""; string passwordHash = PasswordManagement.GeneratePasswordHash(u.Password, out salt); db.users.AddObject(new user { nombre = nombre, apellido = apellido, username = u.Username, salt = salt, hash = passwordHash }); } db.UserFiles.AddObject(new UserFile { fileName = fiOut.Name }); db.SaveChanges(); package.SaveAs(fiOut); } var errores = new List <string> { "error " + fileUpload.FileName }; return(GetAllUsers(errores, users)); }
public string LoadUsuarios() { HttpPostedFileBase fileUpload = Request.Files[0]; var users = new List <EdayRoomUser>(); if (fileUpload != null) { fileUpload.SaveAs(Server.MapPath("~/temp/" + fileUpload.FileName)); var fi = new FileInfo(Server.MapPath("~/temp/" + fileUpload.FileName)); var fiOut = new FileInfo( Path.Combine( Server.MapPath(ConfigurationManager.AppSettings["userFilesDirectory"]), string.Format("{0}_" + fileUpload.FileName, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss")))); var db = new edayRoomEntities(); List <string> existingUsers = (from u in db.users select u.username).ToList(); var package = new ExcelPackage(fi); var passwordPackage = new ExcelPackage(); ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; passwordPackage.Workbook.Worksheets.Add("Passwords"); ExcelWorksheet passwordWorksheet = passwordPackage.Workbook.Worksheets["Passwords"]; passwordWorksheet.Cells[1, 1].Value = "Nombre"; passwordWorksheet.Cells[1, 3].Value = "Apellido"; passwordWorksheet.Cells[1, 3].Value = "usuario"; passwordWorksheet.Cells[1, 4].Value = "password"; for (int i = 2; i <= worksheet.Dimension.End.Row; i++) { var nombre = (string)worksheet.Cells[i, 1].Value; string apellido = worksheet.Cells[i, 2].Value == null ? "" : worksheet.Cells[i, 2].Value.ToString(); string grupo = (string)worksheet.Cells[i, 3].Value ?? ""; bool admin = ((string)worksheet.Cells[i, 4].Value).ToLower() == "si"; bool supervisor = ((string)worksheet.Cells[i, 5].Value).ToLower() == "si"; bool leader = ((string)worksheet.Cells[i, 6].Value).ToLower() == "si"; bool participacion = ((string)worksheet.Cells[i, 7].Value).ToLower() == "si"; bool movilizacion = ((string)worksheet.Cells[i, 8].Value).ToLower() == "si"; bool exitpolls = ((string)worksheet.Cells[i, 9].Value).ToLower() == "si"; bool quickcount = ((string)worksheet.Cells[i, 10].Value).ToLower() == "si"; bool totalizacion = ((string)worksheet.Cells[i, 11].Value).ToLower() == "si"; bool dashboard = ((string)worksheet.Cells[i, 12].Value).ToLower() == "si"; bool alertas = ((string)worksheet.Cells[i, 13].Value).ToLower() == "si"; var password = (worksheet.Cells[i, 14].Value == null ? "" : worksheet.Cells[i, 14].Value.ToString()); var u = new EdayRoomUser { Name = nombre + " " + apellido, Password = string.IsNullOrWhiteSpace(password) ? PasswordManagement.GenerateRandomPassword(6) : password, Group = grupo, Admin = admin, Leader = leader, Participacion = participacion, Movilizacion = movilizacion, ExitPolls = exitpolls, QuickCount = quickcount, Totalizacion = totalizacion, Dashboard = dashboard }; u.Username = nombre.Trim().Split(' ').First().ToLower() + "." + apellido.Trim().Split(' ').First().ToLower(); byte[] b = Encoding.GetEncoding(1251).GetBytes(u.Username); u.Username = Encoding.ASCII.GetString(b); int uid = 1; if (existingUsers.Any(us => us == u.Username)) { string original = u.Username; while (true) { u.Username = original + "." + uid; if (existingUsers.All(us => us != u.Username)) { break; } uid++; } } existingUsers.Add(u.Username); worksheet.Cells[i, 3].Value = u.Username; worksheet.Cells[i, 4].Value = u.Password; users.Add(u); string salt = ""; string passwordHash = u.Password;//PasswordManagement.GeneratePasswordHash(u.Password, out salt); db.users.AddObject(new user { nombre = nombre, apellido = apellido, username = u.Username, salt = salt, hash = passwordHash, grupo = grupo, admin = admin, leader = leader, participacion = participacion, movilizacion = movilizacion, exitpolls = exitpolls, quickcount = quickcount, totalizacion = totalizacion, dashboard = dashboard, supervisor = supervisor, alertas = alertas }); } db.UserFiles.AddObject(new UserFile { fileName = fiOut.Name }); db.SaveChanges(); package.SaveAs(fiOut); var errores = new List <string> { "error " + fileUpload.FileName }; } return("YEAH"); }