Mercurial > silverbladetech
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); + } + } + } +}