コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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));
                }
            }
        }
コード例 #4
0
ファイル: MachineController.cs プロジェクト: tinhvtq/testprj
        /*
         * 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));
            }
        }