Пример #1
0
        public RallyResults.Common.IResult InsertEvent(
            RallyResults.Common.Models.Data.Event subject)
        {
            try
            {
                this.c_connection.Open();

                var _entry = this.MapEvent(subject, this.FetchLastestId());

                NpgsqlCommand _cmd = new NpgsqlCommand("INSERT INTO \"Event\" VALUES(:Id, :Category_Class, :CreationTimestamp)", this.c_connection);

                _cmd.Parameters.Add(new NpgsqlParameter("Id", _entry.id));
                var parameter = _cmd.CreateParameter();
                parameter.ParameterName = "Category_Class";
                parameter.Value         = JsonConvert.SerializeObject(_entry.eventDetails);
                parameter.NpgsqlDbType  = NpgsqlDbType.Json;
                _cmd.Parameters.Add(parameter);
                _cmd.Parameters.Add(new NpgsqlParameter("CreationTimestamp", _entry.creationTimestamp));

                _cmd.ExecuteNonQuery();

                return(new RallyResults.Common.Result(RallyResults.Common.Status.Success, "Event successfully stored"));
            }
            catch (NpgsqlException ex)
            {
                c_logger.ErrorFormat($"{ex}");
            }
            finally
            {
                this.c_connection.Close();
            }

            return(new RallyResults.Common.Result(RallyResults.Common.Status.Failure, "Error: "));
        }
Пример #2
0
        public RallyResults.Common.IResult UpdateEvent(
            int id,
            RallyResults.Common.Models.Data.Event subject)
        {
            var _entry = this.MapEvent(subject, id);

            try
            {
                this.c_connection.Open();

                NpgsqlCommand _cmd = new NpgsqlCommand("UPDATE \"Event\" SET \"Category_Class\" = :Category_Class, \"CreationTimestamp\" = :CreationTimestamp WHERE \"Id\" = :id;", this.c_connection);

                _cmd.Parameters.Add(new NpgsqlParameter("Id", _entry.id));
                var parameter = _cmd.CreateParameter();
                parameter.ParameterName = "Category_Class";
                parameter.Value         = JsonConvert.SerializeObject(_entry.eventDetails);
                parameter.NpgsqlDbType  = NpgsqlDbType.Json;
                _cmd.Parameters.Add(parameter);
                _cmd.Parameters.Add(new NpgsqlParameter("CreationTimestamp", _entry.creationTimestamp));

                _cmd.ExecuteNonQuery();

                return(new RallyResults.Common.Result(RallyResults.Common.Status.Success, "Success"));
            }
            catch (NpgsqlException ex)
            {
                c_logger.ErrorFormat($"{ex}");
            }
            finally
            {
                this.c_connection.Close();
            }

            return(new RallyResults.Common.Result(RallyResults.Common.Status.Failure, "Error"));
        }
Пример #3
0
        private RallyResults.Common.Models.AggregateRoot.Event MapEvent(
            RallyResults.Common.Models.Data.Event subject,
            int id)
        {
            var categories = subject.category.Select(category => new RallyResults.Common.Models.AggregateRoot.Category(category.type, category.@class)).ToList();

            return(new RallyResults.Common.Models.AggregateRoot.Event(
                       id,
                       new RallyResults.Common.Models.AggregateRoot.EventDetails(
                           subject.name,
                           subject.startdate,
                           subject.finishdate,
                           subject.surface,
                           subject.image,
                           subject.service,
                           subject.endofday,
                           categories),
                       DateTime.Now));
        }