Beispiel #1
0
 internal IStatement ReadReminderRows(GrainReference grainRef, IGrainReferenceConversionProvider grainReferenceConversionProvider)
 {
     var(partition, hash, grainKey) = GetGrainKeys(grainRef, grainReferenceConversionProvider);
     return(this["ReadReminderRowsKey"].Bind(new
     {
         partition = partition,
         grain_hash = hash,
         grain_id = grainKey,
     }));
 }
Beispiel #2
0
        public IStatement ReadReminderRows(GrainReference grainRef, IGrainReferenceConversionProvider grainReferenceConversionProvider)
        {
            var Keys = GetGrainKeys(grainRef, grainReferenceConversionProvider);

            return(queries["ReadReminderRowsKey"].Bind(new
            {
                partition = Keys.Item1,
                grain_hash = Keys.Item2,
                grain_id = Keys.Item3,
            }));
        }
Beispiel #3
0
 internal IStatement UpsertReminderRow(ReminderEntry entry, Guid eTag, IGrainReferenceConversionProvider grainReferenceConversionProvider)
 {
     var(partition, hash, grainKey) = GetGrainKeys(entry.GrainRef, grainReferenceConversionProvider);
     return(this["UpsertReminderRowKey"].Bind(new
     {
         partition = partition,
         grain_hash = hash,
         grain_id = grainKey,
         reminder_name = entry.ReminderName,
         start_time = entry.StartAt,
         period = (int)entry.Period.TotalMilliseconds,
         etag = eTag,
     }));
 }
Beispiel #4
0
        public IStatement UpsertReminderRow(ReminderEntry entry, Guid eTag, IGrainReferenceConversionProvider grainReferenceConversionProvider)
        {
            var Keys = GetGrainKeys(entry.GrainRef, grainReferenceConversionProvider);

            return(queries["UpsertReminderRowKey"].Bind(new
            {
                partition = Keys.Item1,
                grain_hash = Keys.Item2,
                grain_id = Keys.Item3,
                reminder_name = entry.ReminderName,
                start_time = entry.StartAt,
                period = (int)entry.Period.TotalMilliseconds,
                etag = eTag,
            }));
        }
Beispiel #5
0
        internal IStatement DeleteReminderRow(GrainReference grainRef, string reminderName, Guid expectedETag, IGrainReferenceConversionProvider grainReferenceConversionProvider)
        {
            var Keys = GetGrainKeys(grainRef, grainReferenceConversionProvider);

            return(this["DeleteReminderRowKey"].Bind(new
            {
                partition = Keys.Item1,
                grain_hash = Keys.Item2,
                grain_id = Keys.Item3,
                reminder_name = reminderName,
                etag = expectedETag
            }));
        }
Beispiel #6
0
        static (sbyte partition, int hash, byte[] grainKey) GetGrainKeys(GrainReference grainRef, IGrainReferenceConversionProvider grainReferenceConversionProvider)
        {
            var hash = GetGrainHash(grainRef);

            return(GetPartitionFromGrainHash(hash), hash, grainReferenceConversionProvider.GetKey(grainRef));
        }
Beispiel #7
0
 public CassandraReminderTable(IGrainReferenceConverter grainReferenceConverter, IOptions <CassandraReminderTableOptions> options, IGrainReferenceConversionProvider grainReferenceConversionProvider = null)
 {
     this.options = options.Value;
     this.grainReferenceConversionProvider = grainReferenceConversionProvider ?? new DefaultGrainReferenceConversionProvider(grainReferenceConverter);
 }
Beispiel #8
0
        static Tuple <sbyte, int, byte[]> GetGrainKeys(GrainReference grainRef, IGrainReferenceConversionProvider grainReferenceConversionProvider)
        {
            var hash = GetGrainHash(grainRef);

            return(new Tuple <sbyte, int, byte[]>(GetPartitionFromGrainHash(hash), hash, grainReferenceConversionProvider.GetKey(grainRef)));
        }
 public CassandraReminderTable(IGrainReferenceConversionProvider grainReferenceConversionProvider, IOptions <CassandraReminderTableOptions> options)
 {
     this.options = options.Value;
     this.grainReferenceConversionProvider = grainReferenceConversionProvider;
 }