private void SerializeHeaderIfExists(TaskExecutionStartRequest startRequest) { if (_taskExecutionHeader != null) { startRequest.TaskExecutionHeader = JsonGenericSerializer.Serialize(_taskExecutionHeader); } }
private List <string> Serialize(List <T> values) { var jsonValues = new List <string>(); foreach (var value in values) { jsonValues.Add(JsonGenericSerializer.Serialize <T>(value)); } return(jsonValues); }
protected IListBlockItem <TItem> Convert(ProtoListBlockItem listBlockItem) { return(new ListBlockItem <TItem>() { LastUpdated = listBlockItem.LastUpdated, ListBlockItemId = listBlockItem.ListBlockItemId, Status = listBlockItem.Status, StatusReason = listBlockItem.StatusReason, Step = listBlockItem.Step, Value = JsonGenericSerializer.Deserialize <TItem>(listBlockItem.Value) }); }
public async Task ThenReturnLastCreated() { // ARRANGE InsertBlocks(); // ACT var sut = CreateSut(); var block = await sut.GetLastListBlockAsync(CreateRequest()); // ASSERT Assert.Equal(_block5, block.ListBlockId); Assert.Equal(new DateTime(2016, 1, 1).AddMinutes(-60), JsonGenericSerializer.Deserialize <DateRange>(block.Header).FromDate); Assert.Equal(new DateTime(2016, 1, 1), JsonGenericSerializer.Deserialize <DateRange>(block.Header).ToDate); }
public TaskExecutionMeta <TExecutionHeader> GetLastExecutionMeta <TExecutionHeader>() { var request = CreateTaskExecutionMetaRequest(1); var response = _taskExecutionRepository.GetLastExecutionMetas(request); if (response.Executions != null && response.Executions.Any()) { var meta = response.Executions.First(); return(new TaskExecutionMeta <TExecutionHeader>(meta.StartedAt, meta.CompletedAt, meta.Status, JsonGenericSerializer.Deserialize <TExecutionHeader>(meta.Header, true), meta.ReferenceValue)); } return(null); }
public static T ReadValue <T>(SqlDataReader reader, string valueColumn, string compressedColum) { if (reader[valueColumn] == DBNull.Value && reader[compressedColum] == DBNull.Value) { return(default(T)); } else if (reader[valueColumn] != DBNull.Value) { return(JsonGenericSerializer.Deserialize <T>(reader[valueColumn].ToString())); } else if (reader[compressedColum] != DBNull.Value) { var compressedBytes = (byte[])reader[compressedColum]; var uncompressedText = LargeValueCompressor.Unzip(compressedBytes); return(JsonGenericSerializer.Deserialize <T>(uncompressedText)); } throw new ExecutionException("The stored value is null which is not a valid state"); }
public static IGenericSerializer <T> CreateSerializerObject(DataFormatType dataFormat) { IGenericSerializer <T> serializer; switch (dataFormat) { case DataFormatType.XML: serializer = new XmlGenericSerializer <T>(); break; case DataFormatType.JSON: serializer = new JsonGenericSerializer <T>(); break; default: throw new NotSupportedException(); } return(serializer); }
private ListBlock <TItem, THeader> Convert <TItem, THeader>(ProtoListBlock protoListBlock, bool fillBlock = false) { if (protoListBlock == null) { return(null); } var block = new ListBlock <TItem, THeader>(); block.Attempt = protoListBlock.Attempt; if (fillBlock) { block.Items = Convert <TItem>(protoListBlock.Items); } block.ListBlockId = protoListBlock.ListBlockId; block.Header = JsonGenericSerializer.Deserialize <THeader>(protoListBlock.Header); return(block); }
private IList <IListBlockItem <T> > Convert <T>(IList <ProtoListBlockItem> protoListBlockItems) { if (protoListBlockItems == null) { return(null); } var items = new List <IListBlockItem <T> >(); foreach (var protoItem in protoListBlockItems) { var item = new ListBlockItem <T>(); item.LastUpdated = protoItem.LastUpdated; item.ListBlockItemId = protoItem.ListBlockItemId; item.Status = protoItem.Status; item.StatusReason = protoItem.StatusReason; item.Step = protoItem.Step; item.Value = JsonGenericSerializer.Deserialize <T>(protoItem.Value); items.Add(item); } return(items); }
public List <ListBlockItem <T> > GetListBlockItems <T>(string blockId, ItemStatus status) { var items = new List <ListBlockItem <T> >(); using (var connection = new SqlConnection(TestConstants.TestConnectionString)) { connection.Open(); var command = connection.CreateCommand(); command.CommandText = GetListBlockItemsQuery; command.Parameters.Add("@BlockId", SqlDbType.BigInt).Value = long.Parse(blockId); command.Parameters.Add("@Status", SqlDbType.TinyInt).Value = (byte)status; var reader = command.ExecuteReader(); while (reader.Read()) { var item = new ListBlockItem <T>(); item.ListBlockItemId = reader.GetInt64(0).ToString(); item.Value = JsonGenericSerializer.Deserialize <T>(reader.GetString(1)); item.Status = (ItemStatus)reader.GetByte(2); if (reader[4] != DBNull.Value) { item.StatusReason = reader.GetString(4); } if (reader[5] != DBNull.Value) { item.Step = reader.GetByte(5); } items.Add(item); } } return(items); }
public IList <TaskExecutionMeta <TExecutionHeader> > GetLastExecutionMetas <TExecutionHeader>(int numberToRetrieve) { var request = CreateTaskExecutionMetaRequest(numberToRetrieve); var response = _taskExecutionRepository.GetLastExecutionMetas(request); if (response.Executions != null && response.Executions.Any()) { return(response.Executions.Select(x => new TaskExecutionMeta <TExecutionHeader>(x.StartedAt, x.CompletedAt, x.Status, JsonGenericSerializer.Deserialize <TExecutionHeader>(x.Header, true), x.ReferenceValue)) .ToList()); } return(new List <TaskExecutionMeta <TExecutionHeader> >()); }
public void InsertPhantomObjectBlock(string applicationName, string taskName) { using (var connection = new SqlConnection(TestConstants.TestConnectionString)) { connection.Open(); var command = connection.CreateCommand(); command.CommandText = InsertPhantomObjectBlockQuery; command.Parameters.Add("@ApplicationName", SqlDbType.VarChar, 200).Value = applicationName; command.Parameters.Add("@TaskName", SqlDbType.VarChar, 200).Value = taskName; command.Parameters.Add("@BlockType", SqlDbType.TinyInt).Value = (byte)BlockType.Object; command.Parameters.Add("@ObjectData", SqlDbType.NVarChar, -1).Value = JsonGenericSerializer.Serialize("My phantom block"); command.ExecuteNonQuery(); } }
public long InsertObjectBlock(int taskDefinitionId, DateTime createdDate, string objectData) { using (var connection = new SqlConnection(TestConstants.TestConnectionString)) { connection.Open(); var command = connection.CreateCommand(); command.CommandText = InsertObjectBlockQuery; command.Parameters.Add("@TaskDefinitionId", SqlDbType.Int).Value = taskDefinitionId; command.Parameters.Add("@CreatedDate", SqlDbType.DateTime).Value = createdDate; command.Parameters.Add("@ObjectData", SqlDbType.NVarChar, -1).Value = JsonGenericSerializer.Serialize <string>(objectData); command.Parameters.Add("@BlockType", SqlDbType.TinyInt).Value = (byte)BlockType.Object; return((long)command.ExecuteScalar()); } }
private void InsertBlocks() { _taskExecution1 = _executionHelper.InsertOverrideTaskExecution(_taskDefinitionId); _baseDateTime = new DateTime(2016, 1, 1); var dateRange1 = new DateRange() { FromDate = _baseDateTime.AddMinutes(-20), ToDate = _baseDateTime }; _block1 = _blocksHelper.InsertListBlock(_taskDefinitionId, DateTime.UtcNow, JsonGenericSerializer.Serialize <DateRange>(dateRange1)).ToString(); _blocksHelper.InsertBlockExecution(_taskExecution1, long.Parse(_block1), _baseDateTime.AddMinutes(-20), _baseDateTime.AddMinutes(-20), _baseDateTime.AddMinutes(-25), BlockExecutionStatus.Failed); Thread.Sleep(10); var dateRange2 = new DateRange() { FromDate = _baseDateTime.AddMinutes(-30), ToDate = _baseDateTime }; _block2 = _blocksHelper.InsertListBlock(_taskDefinitionId, DateTime.UtcNow, JsonGenericSerializer.Serialize <DateRange>(dateRange2)).ToString(); _blocksHelper.InsertBlockExecution(_taskExecution1, long.Parse(_block2), _baseDateTime.AddMinutes(-30), _baseDateTime.AddMinutes(-30), _baseDateTime.AddMinutes(-35), BlockExecutionStatus.Started); Thread.Sleep(10); var dateRange3 = new DateRange() { FromDate = _baseDateTime.AddMinutes(-40), ToDate = _baseDateTime }; _block3 = _blocksHelper.InsertListBlock(_taskDefinitionId, DateTime.UtcNow, JsonGenericSerializer.Serialize <DateRange>(dateRange3)).ToString(); _blocksHelper.InsertBlockExecution(_taskExecution1, long.Parse(_block3), _baseDateTime.AddMinutes(-40), _baseDateTime.AddMinutes(-40), _baseDateTime.AddMinutes(-45), BlockExecutionStatus.NotStarted); Thread.Sleep(10); var dateRange4 = new DateRange() { FromDate = _baseDateTime.AddMinutes(-50), ToDate = _baseDateTime }; _block4 = _blocksHelper.InsertListBlock(_taskDefinitionId, DateTime.UtcNow, JsonGenericSerializer.Serialize <DateRange>(dateRange4)).ToString(); _blocksHelper.InsertBlockExecution(_taskExecution1, long.Parse(_block4), _baseDateTime.AddMinutes(-50), _baseDateTime.AddMinutes(-50), _baseDateTime.AddMinutes(-55), BlockExecutionStatus.Completed); Thread.Sleep(10); var dateRange5 = new DateRange() { FromDate = _baseDateTime.AddMinutes(-60), ToDate = _baseDateTime }; _block5 = _blocksHelper.InsertListBlock(_taskDefinitionId, DateTime.UtcNow, JsonGenericSerializer.Serialize <DateRange>(dateRange5)).ToString(); _blocksHelper.InsertBlockExecution(_taskExecution1, long.Parse(_block5), _baseDateTime.AddMinutes(-60), _baseDateTime.AddMinutes(-60), _baseDateTime.AddMinutes(-65), BlockExecutionStatus.Started); }