示例#1
0
 public void LogStore(StoreTaskDetails storeDetail)
 {
     Console.WriteLine(string.Format("{0} for {1} took {2} seconds. {3}", new object[4]
     {
         (object)storeDetail.Command.GetType().Name,
         (object)storeDetail.Store.Name,
         (object)storeDetail.Elapsed.TotalSeconds,
         storeDetail.Success ? (object)"Successful" : (object)"Failed"
     }));
 }
示例#2
0
 public void LogCost(StoreTaskDetails storeDetail, IOperationCost operationCost, int groupLevel)
 {
     Console.WriteLine("{0}{1,-20}  {2:F1} {3:F2} msecs", new object[4]
     {
         (object)"-> ".PadLeft(groupLevel * 2),
         (object)operationCost.Operation,
         (object)operationCost.Cost,
         (object)operationCost.ElapsedMSecs
     });
 }
        private void VisitCosts(StoreTaskDetails storeDetail, IOperationCost operationCost, int groupLevel, IResultLogger[] loggers)
        {
            Write(loggers, logger => logger.LogCost(storeDetail, operationCost, groupLevel));

            var isGroupLevel = operationCost is GroupOperationCost;

            if (isGroupLevel)
            {
                foreach (IOperationCost stepCost in ((GroupOperationCost)operationCost).StepCosts)
                {
                    VisitCosts(storeDetail, stepCost, groupLevel + 1, loggers);
                }
            }
        }
        public void LogCost(StoreTaskDetails storeDetail, IOperationCost operationCost, int groupLevel)
        {
            EnsureHeadings();

            WriteLine(
                storeDetail.Store.Name,
                storeDetail.Command.GetType().Name,
                $"{storeDetail.Elapsed.TotalSeconds:F2}",
                storeDetail.Success ? "Successful" : "Failed",
                groupLevel.ToString(),
                operationCost.Operation,
                $"{operationCost.Cost:F2}",
                $"{operationCost.ElapsedMSecs:F2}");
        }
        public StoreTaskDetails Run(RunDetails runDetails, IStoreCommand command, IStore store, CancellationToken cancellationToken)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            Task <GroupOperationCost> task        = command.DoAsync(store, cancellationToken);
            StoreTaskDetails          taskDetails = new StoreTaskDetails(command, store, task);

            task.ContinueWith(t =>
            {
                sw.Stop();
                taskDetails.Elapsed = sw.Elapsed;
                if (task.IsCompleted)
                {
                    taskDetails.Cost = task.Result;
                }
            }, cancellationToken);

            return(taskDetails);
        }
 public void LogStore(StoreTaskDetails storeDetail)
 {
     // Nothing to do here - we're writing a single line type to make it easier to work with the data
 }