static void Main(string[] args) { //Chain of responsibility string actionToDownload = "08 OCTAVA"; ActionProvider bossa = new BossaProvider(actionToDownload); ActionProvider onet = new OnetProvider(actionToDownload); bossa.SetNextActionProvider(onet); bossa.DoTask(TasksToDo.DownloadSingleAction); //Decorator Provision DownloadedAction da = new DownloadedAction(onet.actionModel); Provision provisionDecorator = new Provision(da); double decoratedPrice = provisionDecorator.Price(); Console.WriteLine($"TKO with Provision: {decoratedPrice} PLN"); //Exchange Rate Console.WriteLine($"Today exchange rate: {CurrentExchangeRates.UsdRate()}"); Console.WriteLine($"TKO with Provision: {CurrentExchangeRates.ConvertPlnToUSD(decoratedPrice)} USD"); //BUILDER PostmanCompanyOne postmanCompanyOne = new PostmanCompanyOne(); //POSTMAN CONFIGURE SETTINGS postmanCompanyOne.SetPort(587); postmanCompanyOne.SetHost(@"smtp.poczta.onet.pl"); postmanCompanyOne.SetTimeOut(5000); postmanCompanyOne.SetDeliveryMethod(); postmanCompanyOne.SetDefaultCredential(); postmanCompanyOne.SetUserSettingsCredential("*****@*****.**", "Daniel123"); postmanCompanyOne.SetMailFrom(@"*****@*****.**"); postmanCompanyOne.SetMailTo(@"*****@*****.**"); postmanCompanyOne.SetSubject($"ZTP-GIELDA Ceny Akcji {actionToDownload}"); postmanCompanyOne.SetMailBody($"Nazwa Akcji: {actionToDownload}\r\n" + $"Cena Akcji bez prowizji: {onet.actionModel.Tko} \r\n" + $"Cena Akcji z prowizją: {decoratedPrice} \r\n" + $"Dzisiejsza cena Dolara: {CurrentExchangeRates.UsdRate()} \r\n" + $"Cena po przeliczeniu PLN-USD: {CurrentExchangeRates.ConvertPlnToUSD(decoratedPrice)}"); //DIRECTOR EmailDirector director = new EmailDirector(postmanCompanyOne); //director.SendMail(); Console.WriteLine(@"Email with Action Summary was send to [email protected]"); SoundPlayer.Instance.PlaySound(); //OBSERVER SETTINGS Provision observered = new Provision(provisionDecorator); SoundPlayer.Instance.SetObserveredAction(observered); Logger.Instance.SetObserveredAction(observered); observered.addObserver(SoundPlayer.Instance); observered.addObserver(Logger.Instance); //FAKE OBSERVER DATA FakeObserverData.Instance.GenerateFakeProvision(observered); }
public override double Price() { CurrentExchangeRates.ConvertPlnToUSD(2); return(action.Price()); }