public ActionResult BulkUpload(HttpPostedFileBase file) { var gVal = new GenericValidator(); try { var importerInfo = GetLoggedOnUserInfo(); if (importerInfo == null || importerInfo.Id < 1) { gVal.Code = -1; gVal.Error = "Your session has timed out"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } var bankid = new AspNetUserServices().GetBankId(importerInfo.Id); if (bankid < 1) { gVal.Code = -1; gVal.Error = "Error: process could not be completed. Please try again later"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (file.ContentLength > 0) { var folderPath = HostingEnvironment.MapPath("~/BankBranchBulkUploads/" + importerInfo.Id.ToString(CultureInfo.InvariantCulture)); if (string.IsNullOrEmpty(folderPath)) { gVal.Code = -1; gVal.Error = "Folder access was denied"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); var dInfo = new DirectoryInfo(folderPath); var dSecurity = dInfo.GetAccessControl(); dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow)); dInfo.SetAccessControl(dSecurity); } var fileName = file.FileName; var path = Path.Combine(folderPath, fileName); if (string.IsNullOrEmpty(path)) { gVal.Code = -1; gVal.Error = "Folder access was denied"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } file.SaveAs(path); gVal.BankUserInfoList = new List <BankUserInfo>(); var msg = string.Empty; var errorList = new List <long>(); var branches = new List <BankBranchObject>(); var successfulUploads = ReadExcelData(path, "Branches", ref errorList, ref msg, ref branches, importerInfo.Id); var saveCount = 0; if (!successfulUploads.Any()) { gVal.Code = -1; gVal.Error = msg; return(Json(gVal, JsonRequestBehavior.AllowGet)); } branches.ForEach(s => { s.BankId = bankid; var tt = new BankServices().AddBankBranch(s); if (tt > 0) { saveCount++; } else { errorList.Add(1); } }); if (errorList.Any() && saveCount > 0) { var feedbackMessage = saveCount + " records were successfully uploaded." + "\n" + errorList.Count + " record(s) could not be uploaded due to specified/unspecified errors."; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = -7; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (saveCount != branches.Count && saveCount > 0) { var feedbackMessage = saveCount + " records were successfully uploaded." + "\n" + (branches.Count - saveCount) + " record(s) could not be uploaded due to specified/unspecified errors."; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = -7; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (errorList.Any() && saveCount < 1) { var feedbackMessage = errorList.Count + " record(s) could not be uploaded due to specified/unspecified errors."; ViewBag.ErrorCode = -1; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = -1; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (!errorList.Any() && saveCount > 0) { var feedbackMessage = saveCount + " records were successfully uploaded."; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = 5; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } } gVal.Code = -1; gVal.Error = "The selected file is invalid"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { ErrorLogger.LoggError(ex.StackTrace, ex.Source, ex.Message); gVal.Code = -1; gVal.Error = "File processing failed."; return(Json(gVal, JsonRequestBehavior.AllowGet)); } }
public ActionResult BulkUpload(HttpPostedFileBase file) { var gVal = new GenericValidator(); try { var importerInfo = GetLoggedOnUserInfo(); if (importerInfo == null || importerInfo.Id < 1) { gVal.Code = -1; gVal.Error = "Your session has timed out"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } var bankid = new AspNetUserServices().GetBankId(importerInfo.Id); if (bankid < 1) { gVal.Code = -1; gVal.Error = "Error: process could not be completed. Please try again later"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (file.ContentLength > 0) { var folderPath = HostingEnvironment.MapPath("~/BulkUserUploads/" + importerInfo.Id.ToString(CultureInfo.InvariantCulture)); if (string.IsNullOrEmpty(folderPath)) { gVal.Code = -1; gVal.Error = "Folder access was denied"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); var dInfo = new DirectoryInfo(folderPath); var dSecurity = dInfo.GetAccessControl(); dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow)); dInfo.SetAccessControl(dSecurity); } var fileName = file.FileName; var path = Path.Combine(folderPath, fileName); if (string.IsNullOrEmpty(path)) { gVal.Code = -1; gVal.Error = "Folder access was denied"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } file.SaveAs(path); gVal.BankUserInfoList = new List <BankUserInfo>(); var msg = string.Empty; var errorList = new List <long>(); var users = new List <UserProfileObject>(); var successfulUploads = ReadExcelData(path, "Users", ref errorList, ref msg, ref users, importerInfo.Id); var saveCount = 0; if (!successfulUploads.Any()) { gVal.Code = -1; gVal.Error = msg; return(Json(gVal, JsonRequestBehavior.AllowGet)); } var rad = new Random(); foreach (var s in users) { var tt = new AspNetUserServices().AddPerson(s); if (tt > 0) { var user = new ApplicationUser { UserName = s.AspNetUserObject.Email, Email = s.AspNetUserObject.Email, EmailConfirmed = true, PhoneNumber = s.AspNetUserObject.PhoneNumber, UserInfo = new ApplicationDbContext.UserProfile { IsActive = true, IsAdmin = false, PersonId = tt } }; var pss = rad.Next(); var result = UserManager.Create(user, pss.ToString()); if (result.Succeeded) { UserManager.AddToRole(user.Id, s.Role); var bankUser = new BankUserObject { BranchCode = s.BranchCode, BankId = bankid, UserId = user.UserInfo.Id }; var bnkusr = new AspNetUserServices().AddBankUser(bankUser); if (bnkusr > 0) { var model = new UserViewModel { IsUser = true, Email = user.Email, Password = pss.ToString(), SecurityStamp = user.SecurityStamp, Id = user.UserInfo.Id, FirstName = s.PersonObject.FirstName, LastName = s.PersonObject.LastName }; SendMail(model); gVal.BankUserInfoList.Add(new BankUserInfo { Email = user.Email, Name = s.PersonObject.FirstName + " " + s.PersonObject.LastName, Password = pss.ToString() }); saveCount++; } } else { new AspNetUserServices().DeletePerson(tt); errorList.Add(1); } } } if (errorList.Any() && saveCount > 0) { var feedbackMessage = saveCount + " records were successfully uploaded." + "\n" + errorList.Count + " record(s) could not be uploaded due to specified/unspecified errors."; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = -7; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (saveCount != users.Count && saveCount > 0) { var feedbackMessage = saveCount + " records were successfully uploaded." + "\n" + (users.Count - saveCount) + " record(s) could not be uploaded due to specified/unspecified errors."; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = -7; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (errorList.Any() && saveCount < 1) { var feedbackMessage = errorList.Count + " record(s) could not be uploaded due to specified/unspecified errors."; ViewBag.ErrorCode = -1; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = -1; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (!errorList.Any() && saveCount > 0) { var feedbackMessage = saveCount + " records were successfully uploaded."; if (msg.Length > 0) { feedbackMessage += "<br/>" + msg; } gVal.Code = 5; gVal.Error = feedbackMessage; return(Json(gVal, JsonRequestBehavior.AllowGet)); } } gVal.Code = -1; gVal.Error = "The selected file is invalid"; return(Json(gVal, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { ErrorLogger.LoggError(ex.StackTrace, ex.Source, ex.Message); gVal.Code = -1; gVal.Error = "File processing failed."; return(Json(gVal, JsonRequestBehavior.AllowGet)); } }