private void DeleteOverrideBookingTimes(BookingTimeOverrideRuleConfiguration config)
        {
            var sql        = "DELETE FROM OverrideBookingTime WHERE BookingTimeOverrideRuleId = @BookingTimeOverrideRuleId";
            var parameters = new[] { new SqlParameter("@BookingTimeOverrideRuleId", config.Id) };

            ExecuteNonQuery(sql, parameters);
        }
        private RuleConfiguration MapBookingTimeOverride(SqlDataReader reader)
        {
            var config = new BookingTimeOverrideRuleConfiguration();

            config.Id      = (int)reader["bt_Id"];
            config.EventId = (int)reader["bt_EventId"];

            return(config);
        }
        private void DeleteBookingTimeOverride(BookingTimeOverrideRuleConfiguration config)
        {
            DeleteOverrideBookingTimes(config);

            var sql       = "DELETE FROM BookingTimeOverrideRule WHERE RuleId = @Id";
            var parameter = new SqlParameter("@Id", config.RuleId);

            ExecuteNonQuery(sql, parameter);
        }
        public static void MapToEntity(this BookingTimeOverrideRuleModel model, BookingTimeOverrideRuleConfiguration rule)
        {
            if (model.Id.HasValue)
            {
                rule.Id = model.Id.Value;
            }

            rule.EventId = model.EventId.Value;
            rule.OverrideBookingTimes = model.BookingTimes.Select(t => TimeSpan.Parse(t)).ToList();
        }
Exemplo n.º 5
0
        private MvcHtmlString BookingTimeOverrideDetails(BookingTimeOverrideRuleConfiguration config)
        {
            var builder   = new StringBuilder();
            var eventName = Events.FirstOrDefault(e => e.Id == config.EventId)?.Name ?? Strings.Admin.Settings.DeactivatedEvent;

            builder.AppendFormat("{0}: {1}<br />", Strings.Admin.RuleDetails.InputLabelEvent, eventName);
            foreach (var bookingTime in config.OverrideBookingTimes.OrderBy(t => t.Ticks))
            {
                builder.AppendFormat("- {0}<br />", bookingTime.ToString("hh\\:mm"));
            }

            return(new MvcHtmlString(builder.ToString()));
        }
        private void SaveBookingTimeOverride(BookingTimeOverrideRuleConfiguration config)
        {
            var sql = @"
			INSERT INTO
				BookingTimeOverrideRule(RuleId, EventId)
			VALUES
				(@RuleId, @EventId);
            SELECT SCOPE_IDENTITY()";

            var parameters = new[]
            {
                new SqlParameter("@RuleId", config.RuleId),
                new SqlParameter("@EventId", config.EventId),
            };

            config.Id = Convert.ToInt32(ExecuteScalar(sql, parameters));

            SaveBookingTimeOverrideData(config);
        }
        private void SaveBookingTimeOverrideData(BookingTimeOverrideRuleConfiguration config)
        {
            foreach (var bookingTime in config.OverrideBookingTimes)
            {
                var sql = @"
				INSERT INTO
					OverrideBookingTime([Value], BookingTimeOverrideRuleId)
				VALUES
					(@Value, @BookingTimeOverrideRuleId)"                    ;

                var parameters = new[]
                {
                    new SqlParameter("@Value", bookingTime),
                    new SqlParameter("@BookingTimeOverrideRuleId", config.Id)
                };

                ExecuteNonQuery(sql, parameters);
            }
        }
        private void UpdateBookingTimeOverride(BookingTimeOverrideRuleConfiguration config)
        {
            var sql        = @"
			UPDATE
				BookingTimeOverrideRule
			SET
				EventId = @EventId
			WHERE
				Id = @Id"                ;
            var parameters = new[]
            {
                new SqlParameter("@Id", config.Id),
                new SqlParameter("@EventId", config.EventId)
            };

            ExecuteNonQuery(sql, parameters);

            DeleteOverrideBookingTimes(config);
            SaveBookingTimeOverrideData(config);
        }
        private void LoadBookingTimeOverrideData(BookingTimeOverrideRuleConfiguration config)
        {
            var sql       = "SELECT * FROM OverrideBookingTime WHERE BookingTimeOverrideRuleId = @Id";
            var parameter = new SqlParameter("@Id", config.Id);

            using (var transaction = new TransactionScope())
                using (var connection = NewSqlConnection())
                    using (var command = new SqlCommand(sql, connection))
                    {
                        connection.Open();
                        command.Parameters.Add(parameter);

                        using (var reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                config.OverrideBookingTimes.Add((TimeSpan)reader["Value"]);
                            }
                        }

                        transaction.Complete();
                    }
        }
 public static void MapFromEntity(this BookingTimeOverrideRuleModel model, BookingTimeOverrideRuleConfiguration rule)
 {
     model.Id           = rule.Id;
     model.BookingTimes = rule.OverrideBookingTimes.Select(t => t.ToString("hh\\:mm")).ToList();
     model.EventId      = rule.EventId;
 }