コード例 #1
0
ファイル: Controller.cs プロジェクト: bowmark/allauth.desktop
        private bool NewDatabase(string dbName, int serverAccountId)
        {
            var apiClient = GetApiClient(serverAccountId);
            var request = new CreateDatabase();

            CreateDatabase.ResponseParams response;
            try
            {
                response = request.GetResponse(apiClient);
            }
            catch (RequestException e)
            {
                MessageBox.Show(e.ErrorCode);
                return false;
            }

            /*var linkSuccessful = false;
            var startTime = DateTime.Now;
            while (!linkSuccessful)
            {
                Thread.Sleep(2000);

                if (startTime.AddSeconds(30) < DateTime.Now)
                    break;

                var checkRequest = new CheckClientLink {LinkIdentifier = response.DatabaseIdentifier};

                CheckClientLink.ResponseParams checkLinkResponse;
                try
                {
                    checkLinkResponse = checkRequest.GetResponse(apiClient);
                }
                catch (BadRequestException e)
                {
                    MessageBox.Show(e.ErrorCode);
                    return false;
                }

                if (checkLinkResponse.LinkEstablished)
                    linkSuccessful = true;
            }

            if (!linkSuccessful)
                return false;*/

            var newDatabaseMetaId = Model.DatabasesMeta.Create(new DatabaseMeta {Name = dbName});
            var newDatabaseId = Model.Databases.Create(new Database
            {
                Identifier = response.DatabaseIdentifier,
                ServerAccountId = serverAccountId,
                DatabaseMetaId = newDatabaseMetaId
            });
            SetDatabaseAsModified(newDatabaseId);

            var newGroupIdentifier = Guid.NewGuid().ToString();
            var groupMetaId = Model.DatabasesGroupsMeta.Create(new DatabaseGroupMeta {Name = "Websites"});
            var groupId = Model.DatabasesGroups.Create(new DatabaseGroup
            {
                Identifier = newGroupIdentifier,
                DatabaseId = newDatabaseId,
                DatabaseGroupMetaId = groupMetaId
            });
            SetGroupAsModified(groupId);

            UpdateHomePage();

            return true;
        }