public IPersistanceData Get(long persistanceDataId)
        {
            IPersistanceData result = null;

            using (var connection = new SqlConnectionWithExceptionLogger(this._loggingService, this._connectionStringValue))
            {
                connection.Open();
                connection.TryExecute(() =>
                {
                    var command         = connection.CreateCommand();
                    command.CommandType = CommandType.Text;
                    command.CommandText =
                        "SELECT [SomeData] FROM [dbo].[ufn_GetPersistedData](@PersistanceDataId)";
                    command.Parameters.AddWithValue("@PersistanceDataId", persistanceDataId);
                    using (var reader = command.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            result = new PersistanceData
                            {
                                SomeData = reader.GetString(0)
                            };
                        }
                    }
                });
            }
            return(result);
        }
        public IPersistanceData LoadOrCreate(long persistanceId, object someData)
        {
            var data = this._persistanceService.Get(persistanceId);

            if (data == null)
            {
                data = new PersistanceData
                {
                    PersistanceDataId = persistanceId,
                    SomeData          = someData
                };

                this._persistanceService.Create(data);
            }

            return(data);
        }
Exemple #3
0
        public IPersistanceData LoadOrCreate(long persistanceDataId, object data)
        {
            var key = new StateKey
            {
                PersistanceDataId = persistanceDataId,
                Data = data
            };

            var newData = new PersistanceData
            {
                PersistanceDataId = persistanceDataId,
                SomeData          = data
            };

            var item = this._storage.AddOrUpdate(key, newData, (k, oldData) =>
            {
                return(oldData);
            });

            return(item);
        }