/// <summary> /// Save row in database /// </summary> /// <param name="rowNum"></param> /// <param name="code"></param> private void SaveEntry(Models.LevelRange entry, string FileName) { using (Models.PhonesDataContext model = new Models.PhonesDataContext()) { Models.PhonesDruzhba phone = new Models.PhonesDruzhba(); phone.Code = entry.code; phone.FromFile = FileName; if (entry.entry.isDep) { phone.Dep = entry.entry.DepName; } else { phone.PIB = entry.entry.FIO; phone.Birthday = entry.entry.Birthday; phone.Post = entry.entry.post; phone.ObjectName = entry.ObjectName; phone.Phone = entry.entry.phone; phone.Email = entry.entry.email; phone.Mobile = entry.entry.mobile; } model.PhonesDruzhbas.InsertOnSubmit(phone); model.SubmitChanges(); } }
/// <summary> /// return tree from file /// </summary> /// <param name="range"></param> /// <param name="FileName"></param> /// <param name="Folder"></param> /// <param name="codeOffset"></param> /// <returns></returns> private List <Models.LevelRange> GetSubRanges(Models.LevelRange range, string FileName, string Folder, int codeOffset) { #region ---Get sub ranges string FileShareResources = System.Configuration.ConfigurationManager.AppSettings["FileShareResources"].ToString(); string PhonesDruzhba = System.IO.Path.Combine(FileShareResources, "Phones", Folder, FileName); List <Models.LevelRange> ranges = new List <Models.LevelRange>(); if (range.endRow > range.startRow) { using (var sr = System.IO.File.OpenRead(PhonesDruzhba)) { NPOI.XSSF.UserModel.XSSFWorkbook wb = new NPOI.XSSF.UserModel.XSSFWorkbook(sr); int searchLevel = range.level + 1; int currPosition = range.startRow; int endRangePosition = currPosition; int rangeNumber = 0; while (currPosition <= range.endRow) { if (wb.GetSheet("TDSheet").GetRow(currPosition).Cells[3] != null && wb.GetSheet("TDSheet").GetRow(currPosition).Cells[3].ToString().Trim() == searchLevel.ToString()) { ranges.Add(new Models.LevelRange() { startRow = currPosition + 1, level = searchLevel, code = range.level == 0? range.code = wb.GetSheet("TDSheet").GetRow(currPosition).Cells[1].ToString() : range.code + "." + (codeOffset + rangeNumber).ToString(), entry = GetEntry(currPosition, FileName, Folder) }); if (rangeNumber > 0) { ranges[rangeNumber - 1].endRow = currPosition - 1; } rangeNumber += 1; } currPosition += 1; } ranges[rangeNumber - 1].endRow = currPosition - 1; } } #endregion if (ranges.Count > 0) { range.childLevels = ranges; foreach (var cl in range.childLevels) { cl.childLevels = GetSubRanges(cl, FileName, Folder, codeOffset); SaveEntry(cl, FileName); } return(range.childLevels); } else { return(new List <Models.LevelRange>()); } }
public void importDruzhba() { string FileName = "phonesDR_AU.xlsx"; string Folder = "DRUZHBA"; int codeOffset = 200; ///--- import file to Druzhba Models.LevelRange range = new Models.LevelRange() { startRow = 2, level = 0, endRow = GetLastRow(FileName, Folder) - 1, code = "0" }; DeleteRecords(FileName); List <Models.LevelRange> ranges = GetSubRanges(range, FileName, Folder, codeOffset); UpdateObjects(FileName); }