public async Task <CreateOrderResponse> CreateOrderAsync(CreateOrderRequest request) { var response = new CreateOrderResponse { Code = 200 }; try { await this.gateway.InsertOrderAsync(request.Order.AsEntity()); var senderBuilder = new SenderEmailBuilder(request.Order.SenderEmail, request.Order.SenderName, request.Order.RecipientName, request.Order.ProductName, request.Order.ProductPrice, request.Order.OrderQuantity); var senderEmailMessage = EmailDirector.ConstructEmail(senderBuilder); var recipientBuilder = new RecipientEmailBuilder(request.Order.RecipientEmail, request.Order.RecipientName, request.Order.SenderName, request.Order.ProductName, request.Order.ProductPrice, request.Order.OrderQuantity); var recipientEmailMessage = EmailDirector.ConstructEmail(recipientBuilder); await this.emailSender.SendEmail(senderEmailMessage); await this.emailSender.SendEmail(recipientEmailMessage); } catch (Exception ex) { this.logger.LogError(ex.Message); response.Code = 500; } return(response); }
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); }
static void Main(string[] args) { Console.WriteLine("Email BUILDER!"); var emailBuilder = new EmailBuilder(); var diretor = new EmailDirector(emailBuilder); var email = diretor.Work(); email.Send(); }
static void Main(string[] args) { var directory = new EmailDirector(new LocalEmailBuilder()); var sender = new Person() { Email = "*****@*****.**", Name = "Test User" }; var email = directory.BuildEmail(sender, sender, "Re: utang", "dear User, magbayad ka na ng utang mo. Thanks!"); }