public void DoAutoSaveAsync() { SpreadSheetParser_MainForm.WriteConsole($"자동 저장 중.. {GetDisplayString()}"); SaveDataManager.SaveSheet(SpreadSheetParser_MainForm.pSpreadSheet_CurrentConnected); }
private void OnFinishConnect(ISheetConnector pConnector, Exception pException_OnError) { if (pException_OnError != null) { WriteConsole("연결 실패 " + pException_OnError); return; } if (_mapSaveData.ContainsKey(pConnector.strSheetID)) { pSpreadSheet_CurrentConnected = _mapSaveData[pConnector.strSheetID]; pSpreadSheet_CurrentConnected.eType = pConnector.eSheetType; List <TypeData> listSavedTable = pSpreadSheet_CurrentConnected.listTable; int iOrder = 0; foreach (KeyValuePair <string, SheetData> pSheet in pConnector.mapWorkSheetData_Key_Is_SheetID) { TypeData pTypeDataFind = listSavedTable.FirstOrDefault(x => (x.strSheetID == pSheet.Key)); if (pTypeDataFind == null) { listSavedTable.Add(new TypeData(pSheet.Value.strSheetID, pSheet.Value.strSheetName, iOrder)); } else { // 이미 저장되있는 Sheet의 경우 // 웹에 있는 SheetName과 로컬의 SheetName이 다를 수 있기 때문에 갱신 pTypeDataFind.strSheetName = pSheet.Value.strSheetName; pTypeDataFind.iOrder = iOrder; } iOrder++; } } else { pSpreadSheet_CurrentConnected = new SaveData_SpreadSheet(pConnector.strSheetID, pConnector.eSheetType); _mapSaveData[pSpreadSheet_CurrentConnected.strSheetID] = pSpreadSheet_CurrentConnected; int iOrder = 0; pSpreadSheet_CurrentConnected.listTable.Clear(); foreach (KeyValuePair <string, SheetData> pSheet in pConnector.mapWorkSheetData_Key_Is_SheetID) { pSpreadSheet_CurrentConnected.listTable.Add(new TypeData(pSheet.Value.strSheetID, pSheet.Value.strSheetName, iOrder++)); } SaveDataManager.SaveSheet(pSpreadSheet_CurrentConnected); WriteConsole("새 파일을 만들었습니다."); } checkedListBox_SheetList.Items.Clear(); List <TypeData> listSheetSaved = pSpreadSheet_CurrentConnected.listTable; listSheetSaved.Sort((x, y) => x.iOrder.CompareTo(y.iOrder)); TypeData[] arrSheetDelete = listSheetSaved.Where((pSheet) => pConnector.mapWorkSheetData_Key_Is_SheetID.Values.Any(p => p.strSheetID == pSheet.strSheetID) == false).ToArray(); if (arrSheetDelete.Length > 0) { for (int i = 0; i < arrSheetDelete.Length; i++) { listSheetSaved.Remove(arrSheetDelete[i]); } AutoSaveAsync_CurrentSheet(); } ClearFieldData(listSheetSaved); for (int i = 0; i < listSheetSaved.Count; i++) { checkedListBox_SheetList.Items.Add(listSheetSaved[i], listSheetSaved[i].bEnable); } checkedListBox_WorkList.Items.Clear(); List <WorkBase> listWorkBase = pSpreadSheet_CurrentConnected.listSaveWork; listWorkBase.Sort((x, y) => x.iWorkOrder.CompareTo(y.iWorkOrder)); for (int i = 0; i < listWorkBase.Count; i++) { checkedListBox_WorkList.Items.Add(listWorkBase[i], listWorkBase[i].bEnable); } SetState(EState.IsConnected); WriteConsole("연결 성공"); _bIsConnecting = false; }