public object Evaluate(SpreadsheetProcessor processor)
 {
     var result = processor.GetCellValue(Address);
     var exception = result as Exception;
     if (exception != null)
         throw exception;
     return result;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Get loanbook data
        /// </summary>
        /// <param name="ct"></param>
        /// <returns></returns>
        public async Task <IEnumerable <LoanbookItem> > GetLoanbookAsync(CancellationToken ct = default)
        {
            var file = await ZonkyApi.GetLoanbookFileAddressAsync().ConfigureAwait(false);

            var processor = new SpreadsheetProcessor <LoanbookItem>();

            return(await ZonkyApi.GetLoanbookAsync(file, processor, ct).ConfigureAwait(false));
        }
Ejemplo n.º 3
0
        public void GetLoanbookOk()
        {
            var file      = _zonkyApi.GetLoanbookFileAddressAsync().GetAwaiter().GetResult();
            var processor = new SpreadsheetProcessor <LoanbookItem>();
            var data      = _zonkyApi.GetLoanbookAsync(file, processor).GetAwaiter().GetResult();

            Assert.IsNotNull(data);
            Assert.IsTrue(data.Any());
        }
Ejemplo n.º 4
0
        public object Evaluate(SpreadsheetProcessor processor)
        {
            var result    = processor.GetCellValue(Address);
            var exception = result as Exception;

            if (exception != null)
            {
                throw exception;
            }
            return(result);
        }
Ejemplo n.º 5
0
 public object Evaluate(SpreadsheetProcessor processor)
 {
     try
     {
         return(Expression.Evaluate(processor));
     }
     catch (SpreadsheetException exception)
     {
         throw SpreadsheetException.AddCellAddressToErrorStack(exception, Address);
     }
     catch (Exception exception)
     {
         throw SpreadsheetException.AddCellAddressToErrorStack(new ExpressionEvaluationException(exception.Message, exception), Address);
     }
 }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            var isConsoleInput  = args.Length < 1;
            var isConsoleOutput = args.Length < 2;

            try
            {
                var input  = isConsoleInput ? Console.OpenStandardInput() : File.Open(args[0], FileMode.Open);
                var output = isConsoleOutput ? Console.OpenStandardOutput() : File.Create(args[1]);
                using (var reader = new SpreadsheetReader(input))
                {
                    Console.WriteLine(isConsoleInput ? Resources.EnterTable : Resources.ReadingTable);
                    var spreadsheet = reader.ReadSpreadsheet();

                    Console.WriteLine(Resources.Processing);
                    var processor = new SpreadsheetProcessor(spreadsheet);
                    var result    = processor.Evaluate(new ParallelProcessingStrategy());

                    Console.WriteLine(isConsoleOutput ? Resources.ResultTable : Resources.WritingResult);
                    using (var write = new SpreadsheetWriter(output))
                    {
                        write.WriteSpreedsheat(result);
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.Message);
            }

            if (isConsoleOutput)
            {
                Console.Write(Resources.PressAnyKeyForExit);
                Console.ReadKey();
            }
        }
 public object Evaluate(SpreadsheetProcessor processor) => Value;
 public object Evaluate(SpreadsheetProcessor processor) => Value;
 public object Evaluate(SpreadsheetProcessor processor)
 {
     return Operation.UnaryOperation(Value.Evaluate(processor));
 }
 public object Evaluate(SpreadsheetProcessor processor)
 {
     return(Operation.BinaryOperation(Left.Evaluate(processor), Right.Evaluate(processor)));
 }
 public object Evaluate(SpreadsheetProcessor processor)
 {
     return(Operation.UnaryOperation(Value.Evaluate(processor)));
 }
Ejemplo n.º 12
0
        /// <summary>
        /// Get loanbook data
        /// </summary>
        /// <param name="loanbookFileUrl"></param>
        /// <param name="processor"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public async Task <IEnumerable <LoanbookItem> > GetLoanbookAsync(Uri loanbookFileUrl, SpreadsheetProcessor <LoanbookItem> processor, CancellationToken ct = default)
        {
            using (var loanbookFile = await _httpClient.GetStreamAsync(loanbookFileUrl).ConfigureAwait(false))
                using (var memoryStream = new MemoryStream())
                {
                    await loanbookFile.CopyToAsync(memoryStream).ConfigureAwait(false);

                    memoryStream.Position = 0;

                    var workbook = new XSSFWorkbook(memoryStream);
                    return(processor.ProcessWorkbook(workbook));
                }
        }
 public object Evaluate(SpreadsheetProcessor processor)
 {
     return Operation.BinaryOperation(Left.Evaluate(processor), Right.Evaluate(processor));
 }
Ejemplo n.º 14
0
 public IEnumerable <CellAddress> GetDependencies(SpreadsheetProcessor processor)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 15
0
 public object Evaluate(SpreadsheetProcessor processor)
 {
     EvaluateCallCount++;
     Processor = processor;
     return(_expression());
 }