Beispiel #1
0
        public static List <JyCRMDBContext> CreateAllJyDBContext(string connectionList, DBType dbType = DBType.MySql)
        {
            if (string.IsNullOrWhiteSpace(connectionList))
            {
                return(null);
            }
            string[]              connectionString = connectionList.Split(',');
            HashSet <string>      connSet          = new HashSet <string>();
            List <JyCRMDBContext> rlist            = new List <JyCRMDBContext>();

            for (int i = 0, j = connectionString.Length; i < j; i++)
            {
                var connStr = connectionString[i];
                if (connSet.Contains(connStr))
                {
                    continue;
                }
                connSet.Add(connStr);
                var option = BuildConnection.CreateDbContextOptions <JyCRMDBContext>(connStr, dbType);
                if (option != null)
                {
                    rlist.Add(new JyCRMDBContext(option));
                }
            }
            return(rlist);
        }
Beispiel #2
0
 public void Cancel()
 {
     if (!string.IsNullOrEmpty(SessionId))
     {
         BuildConnection.CancelAsync(SessionId, BuildEngine4).Wait();
     }
 }
Beispiel #3
0
        public static JyCRMDBContext CreateJyDBContextFromId(string id, string connectionKeyList, string connectionList, string defaultConnStr, DBType dbType = DBType.MySql)
        {
            var connectionString = string.IsNullOrWhiteSpace(id)? defaultConnStr : ConnectionHelper.getConnectionFromId(id, ",", connectionKeyList, connectionList);
            DbContextOptions <JyCRMDBContext> options = BuildConnection.CreateDbContextOptions <JyCRMDBContext>(connectionString, dbType);

            return(new JyCRMDBContext(options));
        }
Beispiel #4
0
 public void Cancel()
 {
     if (ShouldExecuteRemotely())
     {
         BuildConnection.CancelAsync(SessionId, BuildEngine4).Wait();
     }
 }
Beispiel #5
0
        public override bool Execute()
        {
            var result = base.Execute();

            if (!this.ShouldExecuteRemotely(SessionId))
            {
                return(result);
            }

            var client = BuildConnection
                         .GetAsync(SessionId, BuildEngine4)
                         .Result
                         .Client;

            if (!client.IsConnected)
            {
                return(result);
            }

            foreach (var directory in Directories)
            {
                client.DeleteDirectoryAsync(directory.ItemSpec).Wait();
            }

            if (RemoveAppDir)
            {
                client.DeleteAppDirectoryAsync().Wait();
            }

            return(result);
        }
Beispiel #6
0
        async Task <bool> RunSudoCommandAsync()
        {
            try {
                var client = BuildConnection
                             .GetAsync(SessionId, BuildEngine4)
                             .Result
                             .Client;
                var sshCommands = client
                                  .MessagingService
                                  .Ssh
                                  .Commands;
                var commandOutput = await sshCommands
                                    .RunSudoCommandAsync(Command, ServerPassword.ToSecureString())
                                    .ConfigureAwait(continueOnCapturedContext: false);

                await commandOutput.Do(output => {
                    if (ConsoleToMSBuild && !string.IsNullOrEmpty(output))
                    {
                        Log.LogMessage(output);
                    }
                });

                return(true);
            } catch (Exception ex) {
                Log.LogErrorFromException(ex, showStackTrace: true, showDetail: true, file: null);

                return(false);
            }
        }
Beispiel #7
0
        public override bool Execute()
        {
            var result = base.Execute();

            if (!this.ShouldExecuteRemotely(SessionId))
            {
                return(result);
            }

            var client = BuildConnection
                         .GetAsync(SessionId, BuildEngine4)
                         .Result
                         .Client;

            if (!client.IsConnected)
            {
                return(result);
            }

            foreach (var file in Files)
            {
                client.DeleteFileAsync(file.ItemSpec).Wait();
            }

            return(result);
        }
Beispiel #8
0
        async System.Threading.Tasks.Task <IBuildClient> GetBuildClientAsync()
        {
            var connection = await BuildConnection
                             .GetAsync(SessionId, BuildEngine4)
                             .ConfigureAwait(continueOnCapturedContext: false);

            return(connection.Client);
        }
Beispiel #9
0
        public override void Cancel()
        {
            if (!string.IsNullOrEmpty(SessionId))
            {
                BuildConnection.CancelAsync(SessionId, BuildEngine4).Wait();
            }

            base.Execute();
        }
Beispiel #10
0
        public override void Cancel()
        {
            if (this.ShouldExecuteRemotely(SessionId))
            {
                BuildConnection.CancelAsync(SessionId, BuildEngine4).Wait();
            }

            base.Cancel();
        }
        public void RefreshConnections()
        {
            var connections = _configuration.Connections.Where(c => c.ConnectionType == ConnectionPluginType.SourceControl);

            SourceControlConnection.SetAvailableConnections(connections);

            connections = _configuration.Connections.Where(c => c.ConnectionType == ConnectionPluginType.Build);
            BuildConnection.SetAvailableConnections(connections);
        }
 public PositionRepository(string positionStreamName, string positionEventType, BuildConnection buildConnection,
                           ILogger logger, int interval = 1000)
 {
     _positionStreamName = positionStreamName;
     _buildConnection    = buildConnection;
     _interval           = interval;
     PositionEventType   = positionEventType;
     if (interval <= 0)
     {
         return;
     }
     _timer          = new Timer(interval);
     _timer.Elapsed += _timer_Elapsed;
     _timer.Enabled  = true;
     _log            = logger;
 }
Beispiel #13
0
        public static AuthAdminSolrServer <T> CreateSolrServer(string connectionString, string coreIndex, IndexType indexType = IndexType.Solr)
        {
            var connection = BuildConnection.CreateSolrConnection(connectionString + coreIndex, indexType);

            var docSerializer        = new SolrDocumentSerializer <T>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var headerResponseParser = new HeaderResponseParser <T>();

            var solrFieldSerializer = new DefaultFieldSerializer();
            var mapper               = new AttributesMappingManager();
            var dparser              = new SolrDocumentResponseParser <T>(mapper, new DefaultDocumentVisitor(mapper, new DefaultFieldParser()), new SolrDocumentActivator <T>());
            var parser               = new DefaultResponseParser <T>(dparser);
            var querySerializer      = new DefaultQuerySerializer(solrFieldSerializer);
            var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
            var executer             = new SolrQueryExecuter <T>(parser, connection, querySerializer, facetQuerySerializer, null);

            var basesolr = new SolrBasicServer <T>(connection, executer, docSerializer, null, headerResponseParser, null, null, null);

            return(new AuthAdminSolrServer <T>(basesolr, null, null));
        }
Beispiel #14
0
        public static JyCRMDBReadContext CreateJyCRMDBReadContextFromId(string id, string connectionKeyList, string connectionList, string defaultConnStr, DBType dbType = DBType.MySql)
        {
            var connectionString = string.IsNullOrWhiteSpace(id) ? defaultConnStr : ConnectionHelper.getConnectionFromId(id, ",", connectionKeyList, connectionList);

            if (connectionString.IndexOf("^") > 0)
            {
                int           slavecount   = SubstringCount(connectionString, "^");
                StringBuilder slaveKeyList = new StringBuilder();
                for (int i = 1; i <= slavecount; i++)
                {
                    slaveKeyList.Append(i.ToString()).Append("^");
                }
                slaveKeyList.Remove(slaveKeyList.Length - 1, 1);
                connectionString = ConnectionHelper.getConnectionFromId(id, "^", slaveKeyList.ToString(), connectionString);
            }
            DbContextOptions <JyCRMDBReadContext> options = BuildConnection.CreateDbContextOptions <JyCRMDBReadContext>(connectionString, dbType);

            return(new JyCRMDBReadContext(options));
        }
Beispiel #15
0
        async Threading.Task <bool> ExecuteAsync()
        {
            try {
                var connection = await BuildConnection.GetAsync(SessionId, BuildEngine4).ConfigureAwait(continueOnCapturedContext: false);

                var buildClient = connection.Client as BuildClient;

                if (!connection.IsConnected || buildClient == null)
                {
                    Log.LogWarning(MSBStrings.E0179, nameof(VerifyXcodeVersion));

                    return(true);
                }

                var xcodeVerificationResult = await buildClient
                                              .RunMessagingAsync <VerifyXcodeVersionMessage, VerifyXcodeVersionResult> (new VerifyXcodeVersionMessage())
                                              .ConfigureAwait(continueOnCapturedContext: false);

                if (!xcodeVerificationResult.IsCompatibleVersion)
                {
                    if (string.IsNullOrEmpty(xcodeVerificationResult.XcodeVersion) || string.IsNullOrEmpty(xcodeVerificationResult.RecommendedXcodeVersion))
                    {
                        Log.LogWarning(MSBStrings.E0183);
                    }
                    else
                    {
                        Log.LogWarning(MSBStrings.E0184, xcodeVerificationResult.XcodeVersion, xcodeVerificationResult.RecommendedXcodeVersion);
                    }
                }

                return(true);
            } catch (Exception ex) {
                Log.LogWarning(MSBStrings.E0185, ex.Message);

                return(true);
            }
        }
Beispiel #16
0
 public void Cancel() => BuildConnection.CancelAsync(SessionId, BuildEngine4).Wait();
Beispiel #17
0
        public override bool Execute()
        {
            try {
                LogTaskProperty("ImageAssets", ImageAssets);
                LogTaskProperty("ProjectDir", ProjectDir);
                LogTaskProperty("SessionId", SessionId);

                var connection  = BuildConnection.GetAsync(SessionId, BuildEngine4).Result;
                var buildClient = connection.Client as BuildClient;

                if (!connection.IsConnected || buildClient == null)
                {
                    Log.LogWarning(MSBStrings.E0179, nameof(ResolveUniversalTypeIdentifiers));

                    return(true);
                }

                var contentFiles = ImageAssets
                                   .Where(asset => Path.GetFileName(asset.ItemSpec) == "Contents.json" &&
                                          Path.GetDirectoryName(asset.ItemSpec).EndsWith(".dataset"))
                                   .Select(x => x.ItemSpec);

                foreach (var filePath in contentFiles)
                {
                    string  content;
                    DataSet dataset = null;

                    if (File.Exists(filePath))
                    {
                        content = File.ReadAllText(filePath);
                        dataset = JsonConvert.DeserializeObject <DataSet> (content);
                    }

                    if (dataset == null)
                    {
                        Log.LogError(MSBStrings.E0180, Path.GetDirectoryName(filePath));
                        continue;
                    }

                    var dataItemsToComplete = dataset
                                              .DataItems
                                              .Where(item => string.IsNullOrEmpty(item.UniversalTypeIdentifier) &&
                                                     !string.IsNullOrEmpty(item.Filename)).ToList();

                    foreach (var data in dataItemsToComplete)
                    {
                        var file = ImageAssets.FirstOrDefault(x => Path.GetFileName(x.ItemSpec) == data.Filename);

                        if (file == null)
                        {
                            Log.LogWarning(MSBStrings.E0181, data.Filename);

                            continue;
                        }

                        var message = new GetUniversalTypeIdentifierMessage {
                            Payload  = File.ReadAllBytes(file.ItemSpec),
                            FileName = Path.GetFileName(data.Filename)
                        };

                        var response = buildClient
                                       .RunMessagingAsync <GetUniversalTypeIdentifierMessage, GetUniversalTypeIdentifierResult> (message, timeoutSecs: 10)
                                       .Result;

                        if (string.IsNullOrEmpty(response.UniversalTypeIdentifier))
                        {
                            Log.LogError(string.Format(MSBStrings.E0182, data.Filename, Path.GetDirectoryName(filePath)));
                        }

                        data.UniversalTypeIdentifier = response.UniversalTypeIdentifier;
                    }

                    if (dataItemsToComplete.Any())
                    {
                        content = JsonConvert.SerializeObject(dataset, Formatting.Indented);
                        File.WriteAllText(filePath, content);
                    }
                }

                return(!Log.HasLoggedErrors);
            } catch (Exception ex) {
                Log.LogErrorFromException(ex);

                return(false);
            }
        }
Beispiel #18
0
        public static TransactedConnection CreateJyDBContext(string connectionString, DBType dbType = DBType.MySql)
        {
            var conn = BuildConnection.GetConnection(connectionString, dbType);

            return(new TransactedConnection(conn, conn.BeginTransaction()));
        }
 public PositionRepository(string positionStreamName, string positionEventType, BuildConnection buildConnection,
                           int interval = 1000) : this(positionStreamName, positionEventType, buildConnection,
                                                       new SimpleConsoleLogger(nameof(PositionRepository)), interval)
 {
 }
Beispiel #20
0
        public static JyCRMDBContext CreateJyDBContext(string connectionString, DBType dbType = DBType.MySql)
        {
            DbContextOptions <JyCRMDBContext> options = BuildConnection.CreateDbContextOptions <JyCRMDBContext>(connectionString, dbType);

            return(new JyCRMDBContext(options));
        }
Beispiel #21
0
 public static void ConnectionBuilder(BuildConnection builder)
 {
     Guard.AgainstNull(nameof(builder), builder);
     connectionBuilder = builder;
 }
Beispiel #22
0
 public static void ConnectionBuilder(BuildConnection builder)
 {
     connectionBuilder = builder;
 }