protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.ServerView);

            Window.AddFlags(WindowManagerFlags.KeepScreenOn);

            Title = $"{_serverUrl} sync folders";

            var removeServerBtn = FindViewById <Button>(Resource.Id.serverViewRemoveServerBtn);

            removeServerBtn.Click += RemoveServerBtn_Click;

            var addFolderBtn = FindViewById <Button>(Resource.Id.serverViewAddFolderBtn);

            addFolderBtn.Click += AddFolderBtn_Click;

            _serverUrl  = Intent.GetStringExtra("server");
            _serverItem = FileSyncApp.Instance.Config.Servers.Single(x => x.Url == _serverUrl);

            _folders.SetServerListFromConfig(_serverItem.Folders);

            _folderListAdapter = new FolderListAdapter(_folders, this);

            _foldersListView            = FindViewById <ListView>(Resource.Id.serverViewFolderListView);
            _foldersListView.Adapter    = _folderListAdapter;
            _foldersListView.ItemClick += FolderListViewOnItemClick;
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.FolderListScan);

            _serverUrl  = Intent.GetStringExtra("server");
            _serverItem = FileSyncApp.Instance.Config.Servers.Single(x => x.Url == _serverUrl);

            _foldersAdapter = new FolderListAdapter(_folders, this);

            _foldersListView            = FindViewById <ListView>(Resource.Id.folderListScanViewFolderListView);
            _foldersListView.Adapter    = _foldersAdapter;
            _foldersListView.ItemClick += FoldersListViewOnItemClick;

            Task.Run(ScanServerFolders);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.FolderView);

            Window.AddFlags(WindowManagerFlags.KeepScreenOn);

            _serverUrl  = Intent.GetStringExtra("server");
            _serverItem = FileSyncApp.Instance.Config.Servers.Single(x => x.Url == _serverUrl);
            _folderId   = Guid.ParseExact(Intent.GetStringExtra("folderId"), "D");
            _folderItem = _serverItem.Folders.Single(x => x.Id == _folderId);

            FindViewById <TextView>(Resource.Id.folderViewNameView).Text = _folderItem.DisplayName;
            FindViewById <TextView>(Resource.Id.folderViewPathView).Text = _folderItem.LocalPath;

            _logTxtView = FindViewById <TextView>(Resource.Id.folderViewLogTxtView);
            _logTxtView.MovementMethod = new ScrollingMovementMethod();

            _syncBtn        = FindViewById <Button>(Resource.Id.folderViewStartSyncBtn);
            _syncBtn.Click += SyncBtnOnClick;

            var btn = FindViewById <Button>(Resource.Id.folderViewDeleteFolderBtn);

            btn.Click += DeleteFolderBtn_Click;

            if (FileSyncApp.Instance.ActiveClients.TryGetValue(_folderId, out var client))
            {
                _syncBtn.Enabled = false;

                _client      = client;
                _client.Log += AppendLog;
                _client.SyncTask.ContinueWith(x =>
                {
                    RunOnUiThread(() => { _syncBtn.Enabled = true; });
                    FileSyncApp.Instance.ActiveClients.Remove(_folderId);
                    _client.Log -= AppendLog;
                    _client      = null;
                });
            }
        }
예제 #4
0
        public void Analyze()
        {
            AllItems.Clear();

            Logger.LogAllLine("Analyze ServerConfig================>");
            var reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Jet\4.0\Engines\Excel", true);

            reg.SetValue("TypeGuessRows", 0);

            ServerConfig config = new ServerConfig();

            var table = ExcelHelper.LoadDataFromExcel(PathManager.InputConfigServerConfigPath.FullName, PathManager.ServerConfigTableName);

            foreach (DataRow row in table.Rows)
            {
                bool isValid   = true;
                bool isAllNull = true;
                for (int i = 0; i < row.ItemArray.Length; i++)
                {
                    if (row.IsNull(i))
                    {
                        isValid = false;
                    }
                    else
                    {
                        isAllNull = false;
                    }
                }

                if (isValid)
                {
                    try
                    {
                        var configItem = new ServerConfigItem();
                        configItem.Id      = Convert.ToUInt32(row["Id"]);
                        configItem.Address = Convert.ToString(row["Address"]);
                        configItem.Port    = Convert.ToUInt32(row["Port"]);

                        configItem.Type = (ServerConfigItem.ServerType)Convert.ToUInt32(row["Type"]);

                        if (!AllItems.ContainsKey(configItem.Id))
                        {
                            AllItems.Add(configItem.Id, false);
                            config.Items.Add(configItem);
                        }
                        else
                        {
                            Logger.LogErrorLine("Duplicate Server Config line:");
                            ExcelHelper.PrintRow(row);
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.LogErrorLine(ex.Message);
                        ExcelHelper.PrintRow(row);
                    }
                }
                else if (!isAllNull)
                {
                    Logger.LogErrorLine("Invalid Server Config line:");
                    ExcelHelper.PrintRow(row);
                }
            }


            using (var file = PathManager.OutputConfigServerConfigPath.OpenWrite())
            {
                Serializer.Serialize(file, config);
            }

            var resourceFile = new FileListFile(PathManager.OutputConfigServerConfigPath, true, true);

            FileSystemGenerator.AddFileAndTag(resourceFile);

            Logger.LogAllLine("Generate:\t{0}", PathManager.OutputConfigServerConfigPath);
        }