예제 #1
0
        /// <summary>
        /// Inserts schedule.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <exception cref="System.ArgumentException">The input DTO is null.</exception>
        public void InsertShedule(ProcessScheduleEditDto dto)
        {
            if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string CommandText =
                @"

        INSERT INTO [dbo].ProcessSchedule
        (
            ProcessId,
            NumberOfItemsScheduled,
            ScheduleFrequencyPatternId,
            ScheduleKeyField,
            ScheduleDisplayDateField,
            ScheduleStartStateGuid,
            ScheduleDateField,
            ScheduleFilterGuid
        )
        VALUES
        (
            @p_ProcessId,
            @p_NumberOfItemsScheduled,
            @p_ScheduleFrequencyPatternId,
            @p_ScheduleKeyField,
            @p_ScheduleDisplayDateField,
            @p_ScheduleStartStateGuid,
            @p_ScheduleDateField,
            @p_ScheduleFilterGuid
        )";

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

                using (var command = new SqlCommand(CommandText, connection))
                {
                    command.Parameters.AddWithValue("@p_ProcessId", dto.ProcessId);
                    command.Parameters.AddWithValue("@p_NumberOfItemsScheduled", dto.NumberOfItemsScheduled);
                    command.Parameters.AddWithValue("@p_ScheduleFrequencyPatternId", dto.ScheduleFrequencyPatternId);
                    command.Parameters.AddWithValue("@p_ScheduleKeyField", dto.ScheduleKeyField);
                    command.Parameters.AddWithValue("@p_ScheduleDisplayDateField", dto.ScheduleDisplayDateField);
                    command.Parameters.AddWithValue("@p_ScheduleStartStateGuid", dto.ScheduleStartStateGuid);
                    command.Parameters.AddWithValue("@p_ScheduleDateField", dto.ScheduleBasedOnDateField);
                    command.Parameters.AddWithValue("@p_ScheduleFilterGuid", dto.ScheduleFilterGuid);

                    command.ExecuteNonQuery();
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Updates schedule.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception>
        public void UpdateSchedule(ProcessScheduleEditDto dto)
        {
            if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string CommandText =
                @"
        DECLARE @ScheduleId INT
        SELECT TOP 1
                @ScheduleId = Id
        FROM    [dbo].[ProcessSchedule]
        WHERE   [ProcessId] = @p_ProcessId

        IF ISNULL(@ScheduleId, 0) > 0 
            BEGIN
                UPDATE  [dbo].[ProcessSchedule]
                SET     [NumberOfItemsScheduled] = @p_NumberOfItemsScheduled,
                        [ScheduleFrequencyPatternId] = @p_ScheduleFrequencyPatternId,
                        [ScheduleKeyField] = @p_ScheduleKeyField,
                        [ScheduleDisplayDateField] = @p_ScheduleDisplayDateField,
                        [ScheduleStartStateGuid] = @p_ScheduleStartStateGuid,
                        [ScheduleDateField] = @p_ScheduleDateField,
                        [ScheduleFilterGuid] = @p_ScheduleFilterGuid
                WHERE   [ProcessId] = @p_ProcessId

                SELECT  @ScheduleId
            END
        ELSE 
            BEGIN
                INSERT  INTO [dbo].ProcessSchedule
                        ( ProcessId,
                          NumberOfItemsScheduled,
                          ScheduleFrequencyPatternId,
                          ScheduleKeyField,
                          ScheduleDisplayDateField,
                          ScheduleStartStateGuid,
                          ScheduleDateField,
                          ScheduleFilterGuid
                        )
                VALUES  ( @p_ProcessId,
                          @p_NumberOfItemsScheduled,
                          @p_ScheduleFrequencyPatternId,
                          @p_ScheduleKeyField,
                          @p_ScheduleDisplayDateField,
                          @p_ScheduleStartStateGuid,
                          @p_ScheduleDateField,
                          @p_ScheduleFilterGuid
                        )

                SELECT  [Id]
                FROM    [dbo].[ProcessSchedule]
                WHERE   [Id] = SCOPE_IDENTITY()
            END
";
            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;

                using (var paramsUpdate = new SqlCommand(CommandText, cn))
                {
                    paramsUpdate.Parameters.AddWithValue("@p_ProcessId", dto.ProcessId);
                    paramsUpdate.Parameters.AddWithValue("@p_NumberOfItemsScheduled", dto.NumberOfItemsScheduled);
                    paramsUpdate.Parameters.AddWithValue("@p_ScheduleFrequencyPatternId", dto.ScheduleFrequencyPatternId);
                    paramsUpdate.Parameters.AddWithValue("@p_ScheduleKeyField", dto.ScheduleKeyField);
                    paramsUpdate.Parameters.AddWithValue("@p_ScheduleDisplayDateField", dto.ScheduleDisplayDateField);
                    paramsUpdate.Parameters.AddWithValue("@p_ScheduleStartStateGuid", dto.ScheduleStartStateGuid);
                    paramsUpdate.Parameters.AddWithValue("@p_ScheduleDateField", dto.ScheduleBasedOnDateField);
                    paramsUpdate.Parameters.AddWithValue("@p_ScheduleFilterGuid", dto.ScheduleFilterGuid);

                    dto.Id = (int)paramsUpdate.ExecuteScalar();
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Retrieves schedule.
        /// </summary>
        /// <param name="id">The Process Schedule id.</param>
        /// <returns>The <see cref="ProcessScheduleEditDto" />.</returns>
        public ProcessScheduleEditDto FetchSchedule(int id)
        {
            var result = new ProcessScheduleEditDto();
            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var connection = ctx.Connection;
                const string CommandText =
                    @"
        SELECT    [s].[Id]
                , [s].[ProcessId]
                , [s].[NumberOfItemsScheduled]
                , [s].[ScheduleFrequencyPatternId]
                , [s].[ScheduleKeyField]
                , [s].[ScheduleDisplayDateField]
                , [s].[ScheduleStartStateGuid]
                , [s].[ScheduleDateField]
                , [s].[ScheduleFilterGuid]
        FROM   [dbo].[ProcessSchedule] s
        WHERE  s.ProcessId = @p_Id";

                using (var command = new SqlCommand(CommandText, connection))
                {
                    command.Parameters.AddWithValue("@p_Id", id);

                    using (var reader = new SafeDataReader(command.ExecuteReader()))
                    {
                        if (reader.Read())
                        {
                            result.Id = reader.GetInt32(0);
                            result.ProcessId = reader.GetInt32(1);
                            result.NumberOfItemsScheduled = reader.GetInt32(2);
                            result.ScheduleFrequencyPatternId = reader.GetInt32(3);
                            result.ScheduleKeyField = reader.GetString(4);
                            result.ScheduleDisplayDateField = reader.GetString(5);
                            result.ScheduleStartStateGuid = reader.GetString(6);
                            result.ScheduleBasedOnDateField = reader.GetString(7);
                            result.ScheduleFilterGuid = reader.GetNullableGuid(8) ?? Guid.Empty;
                        }
                        else
                        {
                            return null;
                        }
                    }
                }
            }

            return result;
        }