private void AutoSaveAsync_CurrentSheet()
        {
            if (_bIsUpdating_TableUI)
            {
                return;
            }

            pSpreadSheet_CurrentConnected.UpdateDate();
            WriteConsole("자동 저장 중.." + pSpreadSheet_CurrentConnected.GetFileName());
            SaveDataManager.SaveSheet_Async(pSpreadSheet_CurrentConnected, AutoSaveDone);
        }
示例#2
0
 public void DoAutoSaveAsync()
 {
     SpreadSheetParser_MainForm.WriteConsole($"자동 저장 중.. {GetDisplayString()}");
     SaveDataManager.SaveSheet(SpreadSheetParser_MainForm.pSpreadSheet_CurrentConnected);
 }
 private void AutoSaveAsync_Config()
 {
     WriteConsole("자동 저장 중.. Config");
     SaveDataManager.SaveConfig_Async(_pConfig, AutoSaveDone);
 }
        private void MainForm_Load(object sender, EventArgs e)
        {
            SetState(EState.None);
            _bIsLoading_CreateForm = true;

            _pConfig     = SaveDataManager.LoadConfig();
            _mapSaveData = SaveDataManager.LoadSheet(WriteConsole);

            comboBox_DependencyField.DropDownStyle     = ComboBoxStyle.DropDownList;
            comboBox_DependencyField_Sub.DropDownStyle = ComboBoxStyle.DropDownList;
            comboBox_SaveSheet.DropDownStyle           = ComboBoxStyle.DropDownList;
            comboBox_SaveSheet.Items.Clear();
            comboBox_SaveSheet.Items.AddRange(_mapSaveData.Values.Where(p => p.eType == ESpreadSheetType.GoogleSpreadSheet).Cast <object>().ToArray());

            SaveData_SpreadSheet pSheet_LastEdit = GetSheet_LastEdit(_mapSaveData);

            if (pSheet_LastEdit != null)
            {
                switch (pSheet_LastEdit.eType)
                {
                case ESpreadSheetType.MSExcel:
                    textBox_ExcelPath_ForConnect.Text = pSheet_LastEdit.strSheetID;
                    if (_pConfig.bAutoConnect)
                    {
                        WriteConsole("Config - 자동연결로 인해 연결을 시작합니다..");
                        button_Connect_Excel_Click(null, null);
                    }
                    break;

                case ESpreadSheetType.GoogleSpreadSheet:
                    textBox_SheetID.Text = pSheet_LastEdit.strSheetID;
                    if (_pConfig.bAutoConnect)
                    {
                        WriteConsole("Config - 자동연결로 인해 연결을 시작합니다..");
                        button_Connect_Click(null, null);
                    }
                    break;
                }
            }

            comboBox_ExcelPath_Saved.DropDownStyle = ComboBoxStyle.DropDownList;
            comboBox_ExcelPath_Saved.Items.Clear();
            comboBox_ExcelPath_Saved.Items.AddRange(_mapSaveData.Values.Where(p => p.eType == ESpreadSheetType.MSExcel).Cast <object>().ToArray());

            checkBox_AutoConnect.Checked                   = _pConfig.bAutoConnect;
            checkedListBox_SheetList.ItemCheck            += CheckedListBox_TableList_ItemCheck;
            checkedListBox_SheetList.SelectedIndexChanged += CheckedListBox_SheetList_SelectedIndexChanged;
            checkedListBox_WorkList.ItemCheck             += CheckedListBox_WorkList_ItemCheck;
            checkedListBox_WorkList.SelectedIndexChanged  += CheckedListBox_WorkList_SelectedIndexChanged;
            CheckedListBox_WorkList_SelectedIndexChanged(null, null);

            comboBox_WorkList.DropDownStyle = ComboBoxStyle.DropDownList;
            comboBox_WorkList.Items.Clear();
            var listWork = GetEnumerableOfType <WorkBase>();

            foreach (var pWork in listWork)
            {
                comboBox_WorkList.Items.Add(pWork);
            }

            listView_Field.SelectedIndexChanged += ListView_Field_SelectedIndexChanged;

            _bIsLoading_CreateForm = false;
        }
        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;
        }