protected void UmbracoDefaultBeforeRequestInit(object sender, RequestInitEventArgs e) { try { //Domain.Core.Initialize.Init(); } catch (Exception) { //throw; } try { var currentNode = Node.GetCurrent(); if (ProductVariant.IsAlias(currentNode.NodeTypeAlias)) { var product = DomainHelper.GetProductById(currentNode.Parent.Id); if (product != null) { HttpContext.Current.Response.RedirectPermanent(product.NiceUrl(), true); } } else if (Product.IsAlias(currentNode.NodeTypeAlias)) { var product = DomainHelper.GetProductById(currentNode.Id); if (product != null) { HttpContext.Current.Response.RedirectPermanent(product.NiceUrl(), true); } } else if (Category.IsAlias(currentNode.NodeTypeAlias)) { var category = DomainHelper.GetCategoryById(currentNode.Id); if (category != null) { HttpContext.Current.Response.RedirectPermanent(/* todo nicer */ RazorExtensions.ExtensionMethods.NiceUrl(category), true); } } } // ReSharper disable once EmptyGeneralCatchClause catch (Exception) { // intentionally left empty, because Umbraco will serve a 404 } }
private static void PublishedContentRequest_Prepared(object sender, EventArgs e) { var request = sender as PublishedContentRequest; if (request == null) { return; } var currentContent = request.PublishedContent; if (currentContent == null) { return; } if (ProductVariant.IsAlias(currentContent.DocumentTypeAlias) && currentContent.Parent != null) { var product = DomainHelper.GetProductById(currentContent.Parent.Id); if (product != null) { UwebshopRequest.Current.Product = (IProduct)product; } } else if (uWebshop.Domain.Product.IsAlias(currentContent.DocumentTypeAlias)) { var product = DomainHelper.GetProductById(currentContent.Id); if (product != null) { UwebshopRequest.Current.Product = (IProduct)product; } } else if (Category.IsAlias(currentContent.DocumentTypeAlias)) { var category = DomainHelper.GetCategoryById(currentContent.Id); if (category != null) { UwebshopRequest.Current.Category = (ICategory)category; } } }
private void ContentOnAfterUpdateDocumentCache(Document sender, DocumentCacheEventArgs documentCacheEventArgs) { //if (sender.ContentType.Alias.StartsWith("uwbs") && sender.ContentType.Alias != Order.NodeAlias) //todo: work with aliasses from config var alias = sender.ContentType.Alias; // todo: make a nice way for this block if (Product.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (ProductVariant.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (Category.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (PaymentProvider.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (PaymentProviderMethod.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (DiscountProduct.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (DiscountOrder.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (ShippingProvider.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (ShippingProviderMethod.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (Store.IsAlias(alias)) { ResetAll(sender.Id, alias); } else if (alias.StartsWith("uwbs") && alias != Order.NodeAlias) { ResetAll(sender.Id, alias); } var storePickerProperty = sender.getProperty(Constants.StorePickerAlias); if (storePickerProperty != null) { int storeId; if (storePickerProperty.Value != null && int.TryParse(storePickerProperty.Value.ToString(), out storeId)) { var storeService = StoreHelper.StoreService; var storeById = storeService.GetById(storeId, null); if (storeById != null) { storeService.TriggerStoreChangedEvent(storeById); } } } if (alias.StartsWith(Settings.NodeAlias)) { IO.Container.Resolve <ISettingsService>().TriggerSettingsChangedEvent(SettingsLoader.GetSettings()); } if (alias.StartsWith(Store.NodeAlias)) { //todo: naar nieuwe v6+ API omzetten var storeService = StoreHelper.StoreService; storeService.TriggerStoreChangedEvent(storeService.GetById(sender.Id, null)); var node = new Node(sender.Id); if (!sender.Text.Equals(node.Name)) { StoreHelper.RenameStore(node.Name, sender.Text); } } }
/// <summary> /// Get node ID based on document /// </summary> /// <param name="documentTypeAlias"></param> /// <param name="documentName"></param> public static int GetNodeIdForDocument(string documentTypeAlias, string documentName) { try { if (documentTypeAlias != null && documentName != null) { var it = library.GetXmlNodeByXPath(string.Format("//{0}[@nodeName = '{1}']", documentTypeAlias, documentName)); // todo: all uwebshop doctypes are now customizable, not only category/product/variant //parent[starts-with(@name,'data')] if (Category.IsAlias(documentTypeAlias) || Product.IsAlias(documentTypeAlias) || ProductVariant.IsAlias(documentTypeAlias)) { // todo: IMPORTANT, incorrect logic (startwith needs to be on the first part) it = library.GetXmlNodeByXPath(string.Format("//{0}[starts-with(@nodeName,'{1}') and not(starts-with(name(),'{1}Repository'))]", documentTypeAlias, documentName)); } while (it.MoveNext()) { if (it.Current == null) { continue; } { var nodeId = Convert.ToInt32(it.Current.GetAttribute("id", it.Current.NamespaceURI)); return(nodeId); } } } return(-1); } catch { return(-1); } }
public static bool EditNodeProperties() { var editNodeId = HttpContext.Current.Request["editNodeId"]; var storeAlias = HttpContext.Current.Request["storeAlias"]; var sender = HttpContext.Current.Request["Id"]; if (!string.IsNullOrEmpty(editNodeId)) { int nodeId; int.TryParse(editNodeId, out nodeId); if (nodeId != 0) { bool publish = false; //var contentService = ApplicationContext.Current.Services.ContentService; var doc = IO.Container.Resolve <ICMSChangeContentService>().GetById(nodeId); //var doc = new Document(nodeId);//contentService.GetById(nodeId); foreach (var key in HttpContext.Current.Request.Form.AllKeys) { if (key != null && !key.StartsWith("ctl00$") && !key.StartsWith("body_TabView") && !key.StartsWith("__EVENT") && !key.StartsWith("__VIEWSTATE") && !key.StartsWith("__ASYNCPOST") && doc.HasProperty(key)) { var value = HttpContext.Current.Request.Form[key]; if (!key.StartsWith("stock")) { if (!string.IsNullOrEmpty(value)) { doc.SetValue(key, value); //doc.SetValue(key, value); publish = true; } } else { if (Product.IsAlias(doc.ContentTypeAlias) || ProductVariant.IsAlias(doc.ContentTypeAlias)) { int newStockInt; int.TryParse(value, out newStockInt); UWebshopStock.UpdateStock(nodeId, newStockInt, false, storeAlias); } } } } if (publish) { //contentService.SaveAndPublish(doc, 0, true); doc.SaveAndPublish(); //doc.Save(); //doc.Publish(new User(0)); BasePage.Current.ClientTools.ChangeContentFrameUrl(string.Concat("editContent.aspx?id=", sender)); return(true); } } } return(false); }