public Message GetRawMessage(string messageID) { TableOperation retrieveOperation = RetrieveUserlineMsgByID <BaseMessageEntity>(messageID); TableResult retrievedResult = _userline.ExecuteRetriveOperation(retrieveOperation); if (retrievedResult.Result != null) { BaseMessageEntity entity = (BaseMessageEntity)retrievedResult.Result; return(entity.ToMessage()); } return(null); }
public Attachment GetAttachmentInfo(string attachmetID) { if (string.IsNullOrEmpty(attachmetID)) { return(null); } string[] split = attachmetID.Split(';'); if (split.Length != 2) { return(null); } string pk = split[0]; string rk = split[1]; TableOperation retrieveOperation = TableOperation.Retrieve <AttachmentEntity>(pk, rk); TableResult retrievedResult = _attachment.ExecuteRetriveOperation(retrieveOperation); if (retrievedResult.Result == null) { return(null); } AttachmentEntity entity = (AttachmentEntity)retrievedResult.Result; return(entity.toAttachment()); }
public CounterRecord GetSingleCounterRecord(string groupID, string name, int number = 0) { TableOperation retrieveOperation = TableOperation.Retrieve( ToRecordPK(groupID, name), ToRecordRK(number)); return(CounterRecordHelper.ParseEntity( _counterRecord.ExecuteRetriveOperation(retrieveOperation).Result as DynamicTableEntity )); }
public CounterSetEntity GetCounterSet(string groupID, string name) { TableOperation retrieveOperation = TableOperation.Retrieve <CounterSetEntity>(groupID, name); TableResult result = _counterSet.ExecuteRetriveOperation(retrieveOperation); if (result.Result == null) { return(null); } CounterSetEntity entity = (CounterSetEntity)result.Result; return(entity); }
private SearchResult GetSearchHistory(string searchId) { TableResult result = _searchHistoryTable.ExecuteRetriveOperation(TableOperation.Retrieve <SearchHistoryEntity>(searchId, searchId)); SearchHistoryEntity entity = result.Result as SearchHistoryEntity; if (entity != null) { return(new SearchResult(entity.ResultId, entity.LastSearchDateUTC, entity.TakenTime, entity.ResultsCount)); } else { return(null); } }
public string GetRichMessage(string richMsgID) { if (string.IsNullOrEmpty(richMsgID)) { return(null); } string[] split = richMsgID.Split(';'); if (split.Length != 2) { return(null); } TableOperation retrieveOperation = TableOperation.Retrieve <DynamicTableEntity>(split[0], split[1]); TableResult retrievedResult = _richMsg.ExecuteRetriveOperation(retrieveOperation); if (retrievedResult.Result != null) { DynamicTableEntity entity = (DynamicTableEntity)retrievedResult.Result; if (entity.Properties["RichMsgSize"].Int32Value == null) { return(""); } if (entity.Properties["RichMsgSize"].Int32Value <= 0) { return(""); } int size = entity.Properties["RichMsgSize"].Int32Value.Value; byte[] stringRawByte = new byte[size]; int blockCount = (size - 1) / BlockSize + 1; for (int i = 0; i < blockCount; i++) { int blockSize = 0; if (i == (blockCount - 1)) { blockSize = size % BlockSize; } else { blockSize = BlockSize; } Array.Copy(entity.Properties["Block" + i].BinaryValue, 0, stringRawByte, i * BlockSize, blockSize); } return(System.Text.Encoding.UTF8.GetString(stringRawByte)); } return(null); }
public void AppendDataRecord(int id, string key, string value) { if (System.Text.UTF8Encoding.UTF8.GetByteCount(key) > MetricRecordKeyTooLongException.MaxKeyLengthInByte) { throw new MetricRecordKeyTooLongException(); } using (var _gorillaCtx = new MSGorillaEntities()) { MetricDataSet data = _gorillaCtx.MetricDataSets.Find(id); if (data == null) { throw new MetricDataSetNotFoundException(); } MetricEntity mentity = null; if ((data.RecordCount % MetricEntity.MaxMetricRecord) == 0) { //create a new entity mentity = new MetricEntity(id.ToString(), data.RecordCount.ToString(RowKeyFormat)); } else { //retrive the last entity TableResult result = _metricData.ExecuteRetriveOperation( TableOperation.Retrieve <DynamicTableEntity>( id.ToString(), ((data.RecordCount / MetricEntity.MaxMetricRecord) * MetricEntity.MaxMetricRecord).ToString(RowKeyFormat) ) ); mentity = new MetricEntity((DynamicTableEntity)result.Result); } //insert new data record mentity.Put(key, value, DateTime.UtcNow); TableOperation insertOperation = TableOperation.InsertOrReplace(mentity.ToITableEntity()); _metricData.Execute(insertOperation); data.RecordCount++; _gorillaCtx.SaveChanges(); } }