public IActionResult CsvImportProccess(CsvFormData data) { var langRequest = Request.HttpContext.Features.Get <IRequestCultureFeature>(); var culture = langRequest.RequestCulture.Culture; var _lang = culture.ToString(); var attachedFile = Request.Form.Files["CsvFile"]; if (attachedFile == null || attachedFile.Length <= 0) { return(Json(null)); } var csvReader = new StreamReader(attachedFile.OpenReadStream(), Encoding.GetEncoding(932), false); var uploadModelList = new List <UserCsvData>(); string inputDataRead; var values = new List <string>(); while ((inputDataRead = csvReader.ReadLine()) != null) { values.Add(inputDataRead.Trim()); } Boolean err = false; //get header var head = values[0]; var arrHead = head.Split(','); int total_col = arrHead.Length; int[] col_val = new int[total_col]; if (total_col > 8) { for (int i = 8; i < total_col; i++) { string machine_name = arrHead[i]; Machine m = _db.Machines.Where(m => m.MachineNameJp == machine_name).FirstOrDefault(); if (m == null) { err = true; WriteLog("Error at header - Machine: [" + machine_name + "] not exist."); break; } else { col_val[i] = m.MachineId; } } } //remove header values.Remove(values[0]); /*values.Remove(values[values.Count - 1]);*/ if (!err) { List <string> cate_name_list = new List <string>(); int row = 1; foreach (var value in values) { var uploadModelRecord = new UserCsvData(); var eachValue = value.Split(','); if (eachValue[0] == "" || countJapaneseStringLength(eachValue[0]) > 100) { WriteLog("Error at rows: " + row + " - 所属名(GroupName): [" + eachValue[1] + "] too long."); err = true; break; } else { var group_name = eachValue[0]; var group = _db.Groups.Include(c => c.Users).Where(c => c.GroupNameJp == group_name && c.Status != 0).FirstOrDefault(); if (group == null) { WriteLog("Error at rows: " + row + " - 所属名 (GroupName): [" + group_name + "] not exist."); err = true; break; } else { uploadModelRecord.GroupName = group_name; uploadModelRecord.GroupId = group.GroupId; if (eachValue[1] == "" || countJapaneseStringLength(eachValue[1]) > 64) { WriteLog("Error at rows: " + row + " - ユーザーID (UserId): [" + eachValue[1] + "] too long."); err = true; break; } else { uploadModelRecord.LoginAccount = eachValue[1]; } if (eachValue[2] == "" || countJapaneseStringLength(eachValue[2]) > 64) { WriteLog("Error at rows: " + row + " - パスワード (LoginPassword): [" + eachValue[2] + "] too long."); err = true; break; } else { uploadModelRecord.LoginPassword = eachValue[2]; } if (eachValue[3] == "" || countJapaneseStringLength(eachValue[3]) > 100) { WriteLog("Error at rows: " + row + " - ユーザー名(UserNameJp): [" + eachValue[3] + "] too long."); err = true; break; } else { uploadModelRecord.UserNameJp = eachValue[3]; } if (eachValue[4] == "" || countJapaneseStringLength(eachValue[4]) > 100) { WriteLog("Error at rows: " + row + " - ユーザー名(UserNameEn): [" + eachValue[4] + "] too long."); err = true; break; } else { uploadModelRecord.UserNameEn = eachValue[4]; } if (eachValue[5] == "" || countJapaneseStringLength(eachValue[5]) > 50) { WriteLog("Error at rows: " + row + " - ユーザー区分 (UserType): [" + eachValue[5] + "] too long."); err = true; break; } else { if (eachValue[5] == "管理者") { uploadModelRecord.UserType = 1; } else { uploadModelRecord.UserType = 0; } } if (eachValue[6] == "" || countJapaneseStringLength(eachValue[6]) > 20 || countJapaneseStringLength(eachValue[6]) < 3) { WriteLog("Error at rows: " + row + " - Tel: [" + eachValue[6] + "] too long."); err = true; break; } else { if (checkTelFormat(eachValue[6])) { uploadModelRecord.Tel = eachValue[6]; } else { WriteLog("Error at rows: " + row + " - Tel: [" + eachValue[6] + "] is not a Tel number."); err = true; break; } } if (eachValue[7] == "" || countJapaneseStringLength(eachValue[7]) > 100) { WriteLog("Error at rows: " + row + " - Mail: [" + eachValue[7] + "] too long."); err = true; break; } else { uploadModelRecord.Mail = eachValue[7]; } List <int> Lmachines = new List <int>(); if (total_col > 8) { for (int j = 8; j < total_col; j++) { if (eachValue[j] == "1") { Lmachines.Add(col_val[j]); } } } uploadModelRecord.MachineId = Lmachines; } } uploadModelList.Add(uploadModelRecord);// newModel needs to be an object of type ContextTables. row++; } } if (err) { var result = new { status = 400, message = (_lang == "en-US") ? "The content of the file is not correct." : "ファイルの内容が正しくありません。" }; return(Json(result)); } else { foreach (var item in uploadModelList) { var user = _db.Users.Include(u => u.CanUseMachines).Where(u => u.LoginAccount == item.LoginAccount).FirstOrDefault(); if (user == null) { var us = new User(); us.LoginAccount = item.LoginAccount; us.LoginPassword = item.LoginPassword; us.GroupId = item.GroupId; us.UserNameEn = item.UserNameEn; us.UserNameJp = item.UserNameJp; us.UserType = item.UserType; us.Status = 1; us.Tel = item.Tel; us.Mail = item.Mail; _db.Users.Add(us); _db.SaveChanges(); var newUser = _db.Users.Include(u => u.CanUseMachines).Where(u => u.UserId == us.UserId).FirstOrDefault(); if (item.MachineId != null) { foreach (int i in item.MachineId) { var canUseMachine = new CanUseMachine(); canUseMachine.MachineId = i; canUseMachine.UserId = us.UserId; newUser.CanUseMachines.Add(canUseMachine); } _db.SaveChanges(); } } else { user.UserNameJp = item.UserNameJp; user.UserNameEn = item.UserNameEn; user.Tel = item.Tel; user.Mail = item.Mail; user.LoginAccount = item.LoginAccount; user.LoginPassword = item.LoginPassword; user.UserType = item.UserType; user.Status = 1; user.GroupId = item.GroupId; _db.Users.Update(user); user.CanUseMachines.Clear(); _db.SaveChanges(); if (item.MachineId != null) { foreach (int i in item.MachineId) { var canUseMachine = new CanUseMachine(); canUseMachine.MachineId = i; canUseMachine.UserId = user.UserId; user.CanUseMachines.Add(canUseMachine); } _db.SaveChanges(); } } } var result = new { status = 200, message = "Import success", data = uploadModelList }; return(Json(result)); } }
public IActionResult SaveCreateUser(string userNameJp, string userNameEn, string tel, string mail, string loginAccount, string loginPassword, int userType, int groupId, string machineId) { var langRequest = Request.HttpContext.Features.Get <IRequestCultureFeature>(); var culture = langRequest.RequestCulture.Culture; var _lang = culture.ToString(); var checkuser = _db.Users.Where(u => u.LoginAccount == loginAccount).FirstOrDefault(); if (checkuser == null) { int[] arrMachineId = null; if (machineId != null && machineId.Length > 0) { arrMachineId = machineId.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); } var group = _db.Groups.Include(p => p.Users).Where(x => x.GroupId == groupId).FirstOrDefault(); var user = new User(); user.UserNameJp = userNameJp; user.UserNameEn = userNameEn; user.Tel = tel; user.Mail = mail; user.LoginAccount = loginAccount; user.LoginPassword = loginPassword; user.UserType = userType; user.Status = 1; user.GroupId = groupId; group.Users.Add(user); _db.SaveChanges(); var newUser = _db.Users.Include(u => u.CanUseMachines).Where(u => u.UserId == user.UserId).FirstOrDefault(); if (arrMachineId != null) { foreach (int i in arrMachineId) { var canUseMachine = new CanUseMachine(); canUseMachine.MachineId = i; canUseMachine.UserId = user.UserId; newUser.CanUseMachines.Add(canUseMachine); } _db.SaveChanges(); } var result = new { status = 200, message = "Create User Success" }; return(Json(result)); } else { var result = new { status = 400, message = (_lang == "en-US") ? "This login ID is already used." : "このログインIDは既に使用されています" }; return(Json(result)); } }
public IActionResult SaveUpdateUser(int id, string userNameJp, string userNameEn, string tel, string mail, string loginAccount, string loginPassword, int userType, string machineId) { var langRequest = Request.HttpContext.Features.Get <IRequestCultureFeature>(); var culture = langRequest.RequestCulture.Culture; var _lang = culture.ToString(); User user = _db.Users.Include(u => u.CanUseMachines).Where(u => u.UserId == id).FirstOrDefault(); if (user == null) { var result = new { status = 400, message = (_lang == "en-US") ? "User information does not exist" : "指定されたユーザーは存在しません。" }; return(Json(result)); } else { var checkuser = _db.Users.Where(u => u.LoginAccount == loginAccount).FirstOrDefault(); if (checkuser != null && user.LoginAccount != loginAccount) { var result = new { status = 400, message = (_lang == "en-US") ? "This login ID is already used." : "このログインIDは既に使用されています" }; return(Json(result)); } else { user.UserNameJp = userNameJp; user.UserNameEn = userNameEn; user.Tel = tel; user.Mail = mail; user.LoginAccount = loginAccount; user.LoginPassword = loginPassword; if (HttpContext.Session.GetInt32("UserType") == 1) { user.UserType = userType; } _db.Users.Update(user); user.CanUseMachines.Clear(); try { _db.SaveChanges(); } catch (Exception) { } int[] arrMachineId = null; if (machineId != null && machineId.Length > 0) { arrMachineId = machineId.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); foreach (int i in arrMachineId) { var canUseMachine = new CanUseMachine(); canUseMachine.MachineId = i; canUseMachine.UserId = user.UserId; user.CanUseMachines.Add(canUseMachine); } try { _db.SaveChanges(); } catch (Exception) { } } // var new_user = _db.Users.Find(id); var result = new { status = 200, message = "Update User Success" // data = new_user }; return(Json(result)); } } }
/* * Update machine * **/ public IActionResult UpdateMachine(MachineFormData formData) { Machine m = _db.Machines.Include(u => u.CanUseMachines).Include(u => u.MachineAdmins).Include(u => u.CustomFields).Include(u => u.ManualFiles).Where(u => u.MachineId == formData.MachineId).FirstOrDefault(); if (m == null) { var result = new { status = 400, message = "Machine not exist" }; return(Json(result)); } else { string origin_name = string.Empty; string manual_file_name = string.Empty; string manualFile = string.Empty; string imageFile = m.ImageFile; if (formData.StatusRemoveImage != 0) { string _fileToBeDeleted = _env.WebRootPath + m.ImageFile; // Check if file exists with its full path if (System.IO.File.Exists(_fileToBeDeleted)) { // If file found, delete it System.IO.File.Delete(_fileToBeDeleted); //Update name infomation file imageFile = string.Empty; } } string filename = string.Empty; var files = Request.Form.Files; if (files.Count() > 0) { foreach (IFormFile file in files) { //IFormFile file = Request.Form.Files[0]; var formInputName = file.Name; //string extention = Path.GetExtension(file.FileName); origin_name = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); string str_random = RandomFilename(); filename = str_random + "_" + origin_name; filename = EnsureCorrectFilename(filename); FileStream fs = System.IO.File.Create(GetPathAndFilename(filename)); file.CopyTo(fs); fs.Close(); if (formInputName == "ImageFile") { imageFile = "files/" + filename; } else { manualFile = "files/" + filename; manual_file_name = origin_name; } } } m.CategoryId = formData.CategoryId; m.MachineNameEn = formData.MachineNameEn; m.MachineNameJp = formData.MachineNameJp; m.UnitPrice = formData.UnitPrice; m.ReferenceAuth = formData.ReferenceAuth; m.MakerNameEn = formData.MakerNameEn; m.MakerNameJp = formData.MakerNameJp; m.ModelEn = formData.ModelEn; m.ModelJp = formData.ModelJp; m.EquipmentNumber = formData.EquipmentNumber; m.BusinessPerson = formData.BusinessPerson; m.BusinessAddress = formData.BusinessAddress; m.BusinessTel = formData.BusinessTel; m.BusinessFax = formData.BusinessFax; m.BusinessMail = formData.BusinessMail; m.TechnicalAddress = formData.TechnicalAddress; m.TechnicalFax = formData.TechnicalFax; m.TechnicalPersion = formData.TechnicalPersion; m.TechnicalMail = formData.TechnicalMail; m.TechnicalTel = formData.TechnicalTel; m.PurchaseDate = formData.PurchaseDate; m.PurchaseCampany = formData.PurchaseCampany; m.ExplanationEn = formData.ExplanationEn; m.ExplanationJp = formData.ExplanationJp; m.SpecEn = formData.SpecEn; m.SpecJp = formData.SpecJp; m.PlaceEn = formData.PlaceEn; m.PlaceJp = formData.PlaceJp; m.ExpendableSupplies = formData.ExpendableSupplies; m.URL = formData.URL; m.URL2 = formData.URL2; m.URL3 = formData.URL3; m.Status = 1; m.ShowOrder = 0; m.ImageFile = imageFile; //m.ManualFile = manualFile; _db.Machines.Update(m); if (manualFile.Length > 0) { ManualFile mfile = new ManualFile(); mfile.MachineId = m.MachineId; mfile.ManualFileName = manualFile; mfile.DisplayName = manual_file_name; m.ManualFiles.Add(mfile); _db.SaveChanges(); } m.MachineAdmins.Clear(); _db.SaveChanges(); int[] arrUserAdminId = null; if (formData.charge_user != null && formData.charge_user.Length > 0) { arrUserAdminId = formData.charge_user.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); foreach (int i in arrUserAdminId) { var machineAdmin = new MachineAdmin(); machineAdmin.MachineId = m.MachineId; machineAdmin.UserId = i; m.MachineAdmins.Add(machineAdmin); } _db.SaveChanges(); } m.CanUseMachines.Clear(); _db.SaveChanges(); int[] arrUserId = null; if (formData.use_user != null && formData.use_user.Length > 0) { arrUserId = formData.use_user.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); foreach (int i in arrUserId) { var canUseMachine = new CanUseMachine(); canUseMachine.MachineId = m.MachineId; canUseMachine.UserId = i; m.CanUseMachines.Add(canUseMachine); } _db.SaveChanges(); } //m.CustomFields.Clear(); //_db.SaveChanges(); int[] arr_Check = null; string[] arr_item_name_jp = null; string[] arr_item_name_en = null; int[] arr_item = null; if (formData.item_name_jp != null && formData.item_name_jp.Length > 0) { arr_item = formData.ItemId.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); arr_Check = formData.arrCheck.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); arr_item_name_jp = formData.item_name_jp.Split(',').ToArray(); arr_item_name_en = formData.item_name_en.Split(',').ToArray(); for (int c = 0; c < arr_item_name_jp.Length; c++) { if (arr_item[c] > 0) { CustomField cust = _db.CustomFields.Find(arr_item[c]); if (cust != null) { cust.FieldNameEn = arr_item_name_en[c]; cust.FieldNameJp = arr_item_name_jp[c]; cust.Required = (arr_Check[c] == 1) ? true : false; _db.CustomFields.Update(cust); } } else { var custome = new CustomField(); custome.FieldNameEn = arr_item_name_en[c]; custome.FieldNameJp = arr_item_name_jp[c]; custome.MachineId = m.MachineId; custome.Required = (arr_Check[c] == 1) ? true : false; m.CustomFields.Add(custome); } } _db.SaveChanges(); } _db.SaveChanges(); var result = new { status = 200, message = "Update Success" }; return(Json(result)); } }