Esempio n. 1
0
        /// <summary>
        /// Inserts state connector security configuration.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception>
        public void InsertStateConnectorSecurityConfiguration(StateConnectorSecurityConfigurationEditDto dto)
        {
            if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
INSERT INTO [dbo].[StateConnectorSecurityConfigurations]
(
     [StateOutGuid]
    ,[StateInGuid]
    ,[CanMove]
    ,[RoleId]
    ,[BusinessUnitId]
    ,[PersonFieldName]
)
VALUES
(
     @stateOutGuid
    ,@stateInGuid
    ,@canMove
    ,@roleId
    ,@businessUnitId
    ,@personFieldName
);
SELECT [Id]
FROM   [dbo].[StateConnectorSecurityConfigurations]
WHERE  [Id] = SCOPE_IDENTITY()
";

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;

                using (var cmd = new SqlCommand(Sql, cn))
                {
                    cmd.Parameters.AddWithValue("@stateOutGuid", dto.StateOutGuid);
                    cmd.Parameters.AddWithValue("@stateInGuid", dto.StateInGuid);
                    cmd.Parameters.AddWithValue("@canMove", dto.CanMove);
                    cmd.Parameters.AddWithValue("@roleId", dto.RoleId);
                    cmd.Parameters.AddWithValue("@businessUnitId", dto.BusinessUnitId);
                    cmd.Parameters.AddWithValue("@personFieldName", dto.PersonFieldName);

                    dto.Id = (int)cmd.ExecuteScalar();
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Updates state connector security configuration.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception>
        /// <exception cref="System.Data.DBConcurrencyException">Indicates stale data.</exception>
        public void UpdateStateConnectorSecurityConfiguration(StateConnectorSecurityConfigurationEditDto dto)
        {
            if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
UPDATE [dbo].[StateConnectorSecurityConfigurations]
SET
     [CanMove] = @canMove
    ,[RoleId] = @roleId
    ,[BusinessUnitId] = @businessUnitId
    ,[PersonFieldName] = @personFieldName
WHERE [Id] = @id
";

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;

                using (var cmd = new SqlCommand(Sql, cn))
                {
                    cmd.CommandText = Sql;
                    cmd.Parameters.AddWithValue("@canMove", dto.CanMove);
                    cmd.Parameters.AddWithValue("@roleId", dto.RoleId);
                    cmd.Parameters.AddWithValue("@businessUnitId", dto.BusinessUnitId);
                    cmd.Parameters.AddWithValue("@personFieldName", dto.PersonFieldName);
                    cmd.Parameters.AddWithValue("@id", dto.Id);

                    var rowsAffected = cmd.ExecuteNonQuery();

                    if (rowsAffected == 0)
                    {
                        throw new DBConcurrencyException(Resources.StaleDataException);
                    }
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Reads connectors security configurations.
        /// </summary>
        /// <param name="process">The process.</param>
        /// <param name="sr">The reader.</param>
        private static void ReadConnectorsSecurityConfigurations(ProcessEditDto process, SafeDataReader sr)
        {
            sr.NextResult();
            var connectorInId = Guid.Empty;
            var connectorOutId = Guid.Empty;
            ConnectorDTO connector = null;

            while (sr.Read())
            {
                var securityDto = new StateConnectorSecurityConfigurationEditDto
                {
                    Id = sr.GetInt(0),
                    CanMove = sr.GetBoolean(1),
                    RoleId = sr.GetInt(2),
                    BusinessUnitId = sr.GetInt(3),
                    PersonFieldName = sr.GetString(4),
                    StateInGuid = sr.GetGuid(5),
                    StateOutGuid = sr.GetGuid(6)
                };

                if (connectorInId != securityDto.StateInGuid || connectorOutId != securityDto.StateOutGuid)
                {
                    connectorInId = securityDto.StateInGuid;
                    connectorOutId = securityDto.StateOutGuid;
                    connector = process.States.SelectMany(s => s.Connectors).FirstOrDefault(c => c.ConnectsToStateGuid == connectorInId && c.ConnectsFromStateGuid == connectorOutId);

                    if (connector == null)
                    {
                        continue;
                    }
                }

                if (connector != null)
                {
                    connector.SecurityConfigurations.Add(securityDto);
                }
            }
        }