public override void HandelOrderCompleted(OrderCompletedEventArgs e) { if (e == null) return; if (e.Order == null) return; // do nothing if (!WebStoreConfiguration.LogDoNothingOrderHandler) { return; } log.Info("DoNothingOrderCompletedHandler called"); StringBuilder orderDetails = new StringBuilder(); orderDetails.Append("Order from " + e.Order.CustomerFirstName + " " + e.Order.CustomerLastName); orderDetails.Append("\r\n"); // you can also get the customer information from the order // e.Order.BillingLastName // e.Order.BillingFirstName // e.Order.CustomerEmail // etc, lots of other properties on the order object // this DataSet has 2 relaqted tables Offers and Products // where the products correspond to the products included in the offer(s) DataSet dsOffers = Order.GetOrderOffersAndProducts(e.Order.StoreGuid, e.Order.OrderGuid); foreach (DataRow row in dsOffers.Tables["Offers"].Rows) { string oguid = row["OfferGuid"].ToString(); orderDetails.Append(row["Name"].ToString() + " "); orderDetails.Append(row["Quantity"].ToString() + " @ "); orderDetails.Append(string.Format(e.CurrencyCulture, "{0:c}", Convert.ToDecimal(row["OfferPrice"]))); orderDetails.Append("\r\n"); string whereClause = string.Format("OfferGuid = '{0}'", oguid); DataView dv = new DataView(dsOffers.Tables["Products"], whereClause, "", DataViewRowState.CurrentRows); if (dv.Count > 1) { foreach (DataRow r in dsOffers.Tables["Products"].Rows) { string poguid = r["OfferGuid"].ToString(); if (oguid == poguid) { orderDetails.Append(r["Name"].ToString() + " "); orderDetails.Append(r["Quantity"].ToString() + " \r\n"); } } } } log.Info(orderDetails.ToString()); }
protected virtual async void OnOrderCompleted(object sender, OrderCompletedEventArgs e) { // Моделирует задержку между моментом, когда заказ приготовлен, и помещением информации на информационное табло var delayEmulator = Task.Delay(TimeSpan.FromMilliseconds(_random.Next(MIN_DELAY_TIME_IN_MILLISECONDS, MAX_DELAY_TIME_IN_MILLISECONDS))); lock (_locker) { _completingOrdersNumbers.Remove(e.CompletdOrderInfo.OrderNumber); // TODO: if order number don't contains - log this if (!_completedOrdersInfosByNumber.ContainsKey(e.CompletdOrderInfo.OrderNumber)) // TODO: if order number contains - log this { _completedOrdersInfosByNumber.Add(e.CompletdOrderInfo.OrderNumber, e.CompletdOrderInfo.ProductDeliveryWindowNumber); } } await delayEmulator; OrderMarkedCompleted(this, new OrderMarkedCompletedEventArgs(e.CompletdOrderInfo)); }
public static void ConfirmOrder(Store store, Order order) { if (store == null) { return; } if (order == null) { return; } CommerceConfiguration commerceConfig = SiteUtils.GetCommerceConfig(); CultureInfo defaultCulture = SiteUtils.GetDefaultUICulture(); string subjectTemplate = ResourceHelper.GetMessageTemplate(defaultCulture, commerceConfig.DefaultConfirmationEmailSubjectTemplate); string textBodyTemplate = ResourceHelper.GetMessageTemplate(defaultCulture, commerceConfig.DefaultConfirmationEmailTextBodyTemplate); int pageId = -1; List<PageModule> pageModules = PageModule.GetPageModulesByModule(store.ModuleId); foreach (PageModule pm in pageModules) { // use first pageid found, really a store should only // be on one page pageId = pm.PageId; break; } Module m = new Module(store.ModuleId); Order.EnsureSalesReportData(order.OrderGuid, m.ModuleGuid, pageId, store.ModuleId); SiteUser.UpdateTotalRevenue(order.UserGuid); SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); CultureInfo currencyCulture = ResourceHelper.GetCurrencyCulture(siteSettings.GetCurrency().Code); OrderCompletedEventArgs e = new OrderCompletedEventArgs(order, currencyCulture); foreach (OrderCompletedHandlerProvider p in OrderCompletedHandlerProviderManager.Providers) { try { p.HandelOrderCompleted(e); } catch (Exception ex) { log.Error(ex); } } //TODO: make this asynchronous so if it takes a long time or has a timeout error it does //not prevent the redirect SendConfirmEmail( defaultCulture, currencyCulture, siteSettings, pageId, commerceConfig, store, order, subjectTemplate, textBodyTemplate); }
public abstract void HandelOrderCompleted(OrderCompletedEventArgs e);
public override void HandelOrderCompleted(OrderCompletedEventArgs e) { }
public void OnOrderCompleted(object sender, OrderCompletedEventArgs e) { Logged(this, $"Повар \"{sender}\" приготовил заказ с номером {e.CompletdOrderInfo.OrderNumber}.{Environment.NewLine}" + $"Зазаз был направлен в окно выдачи с номером {e.CompletdOrderInfo.ProductDeliveryWindowNumber}."); }