Skip to content

Instantly share code, notes, and snippets.

@rnikitin
Created December 6, 2012 13:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rnikitin/4224556 to your computer and use it in GitHub Desktop.
Save rnikitin/4224556 to your computer and use it in GitHub Desktop.
Azure Tables Client 2.0 sucks
public IList<ChatMessageEntry> QueryChatMessages(Guid companyId, Guid? appId = null, Guid? formId = null, Guid? ticketId = null)
{
var chatTable = GetTable(companyId, TABLE_CHAT);
var filters = new List<string>();
if (appId.HasValue)
{
filters.Add(TableQuery.GenerateFilterConditionForGuid("AppId",
QueryComparisons.Equal,
appId.Value));
}
if (formId.HasValue)
{
filters.Add(TableQuery.GenerateFilterConditionForGuid("FormId",
QueryComparisons.Equal,
formId.Value));
}
if (ticketId.HasValue)
{
filters.Add(TableQuery.GenerateFilterCondition("PartitionKey",
QueryComparisons.Equal,
ticketId.Value.ToString()));
}
var query = new TableQuery<ChatMessageEntity>
{
FilterString = String.Join(" and ", filters)
};
try
{
var messages = chatTable.ExecuteQuery(query);
return messages.Select(x => new ChatMessageEntry()).ToList();
}
catch (Exception ex)
{
ErrorSignal.FromCurrentContext().Raise(ex);
throw;
}
}
public IList<TicketDataEntry> QueryTicketData(Guid companyId, Guid? appId = null, Guid? formId = null, DateTime? afterDate = null)
{
var ticketDataTable = GetTable(companyId, TABLE_TICKET_DATA);
var filters = new List<string>();
if (appId.HasValue)
{
filters.Add(TableQuery.GenerateFilterConditionForGuid("AppId",
QueryComparisons.Equal,
appId.Value));
}
if (formId.HasValue)
{
filters.Add(TableQuery.GenerateFilterCondition("PartitionKey",
QueryComparisons.Equal,
formId.Value.ToString()));
}
if (afterDate.HasValue)
{
filters.Add(TableQuery.GenerateFilterConditionForDate("Created",
QueryComparisons.GreaterThanOrEqual,
afterDate.Value));
}
var query = new TableQuery<TicketDataEntity>
{
FilterString = String.Join(" and ", filters)
};
try
{
var tickets = ticketDataTable.ExecuteQuery(query);
return tickets.Select(Mapper.Map<TicketDataEntry>).ToList();
}
catch (Exception ex)
{
ErrorSignal.FromCurrentContext().Raise(ex);
throw;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment