diff MetroWpf/Stocks.Common/Factory.cs @ 20:6109bc268b90

Latest
author adminsh@apollo
date Tue, 20 Mar 2012 13:37:46 +0000
parents
children a8b50a087544
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MetroWpf/Stocks.Common/Factory.cs	Tue Mar 20 13:37:46 2012 +0000
@@ -0,0 +1,36 @@
+using NLog;
+using Stocks.Common.Core;
+using Stocks.Common.Models;
+using System;
+using Stocks.Common.Exceptions;
+
+namespace Stocks.Common
+{
+  public class Factory
+  {
+    public static Price CreatePrice(string webPriceData)
+    {
+      if (string.IsNullOrEmpty(webPriceData))
+        throw new InvalidWebPriceDataException(webPriceData);
+
+      try
+      {
+        var symbol = webPriceData.Substring(1, webPriceData.IndexOf('"', 2) - 1);
+
+        decimal price = decimal.Parse(webPriceData.Substring(
+            webPriceData.Length - webPriceData.Reverse().IndexOf(",")));
+
+        return new Price()
+        {
+          Symbol = symbol,
+          PreviousPrice = price,
+          CurrentPrice = price
+        };
+      }
+      catch (Exception e)
+      {
+        throw new InvalidWebPriceDataException(webPriceData, e);
+      }
+    }
+  }
+}