コード例 #1
0
 private void SerializeHeaderIfExists(TaskExecutionStartRequest startRequest)
 {
     if (_taskExecutionHeader != null)
     {
         startRequest.TaskExecutionHeader = JsonGenericSerializer.Serialize(_taskExecutionHeader);
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 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)
     });
 }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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");
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: BlockFactory.cs プロジェクト: tuga1975/Taskling.NET
        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);
        }
コード例 #9
0
ファイル: BlockFactory.cs プロジェクト: tuga1975/Taskling.NET
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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> >());
        }
コード例 #12
0
 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();
     }
 }
コード例 #13
0
 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());
     }
 }
コード例 #14
0
        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);
        }