Exemplo n.º 1
0
        public IHttpActionResult CreateOrUpdateCategory(webModel.Category category)
        {
            var coreCategory = category.ToModuleModel();

            if (coreCategory.Id == null)
            {
                if (coreCategory.SeoInfos == null || !coreCategory.SeoInfos.Any())
                {
                    var slugUrl = category.Name.GenerateSlug();
                    if (!String.IsNullOrEmpty(slugUrl))
                    {
                        var catalog         = _catalogService.GetById(category.CatalogId);
                        var defaultLanguage = catalog.Languages.First(x => x.IsDefault).LanguageCode;
                        coreCategory.SeoInfos = new[] { new SeoInfo {
                                                            LanguageCode = defaultLanguage, SemanticUrl = slugUrl
                                                        } };
                    }
                }

                CheckCurrentUserHasPermissionForObjects(CatalogPredefinedPermissions.Create, coreCategory);

                var retVal = _categoryService.Create(coreCategory).ToWebModel(_blobUrlResolver);
                retVal.Catalog = null;
                return(Ok(retVal));
            }
            else
            {
                CheckCurrentUserHasPermissionForObjects(CatalogPredefinedPermissions.Update, coreCategory);

                _categoryService.Update(new[] { coreCategory });
                return(StatusCode(HttpStatusCode.NoContent));
            }
        }
        public IHttpActionResult Post(webModel.Category category)
        {
            var coreCategory = category.ToModuleModel();

            if (coreCategory.Id == null)
            {
                if (coreCategory.SeoInfos == null || !coreCategory.SeoInfos.Any())
                {
                    var slugUrl = category.Name.GenerateSlug();
                    if (!String.IsNullOrEmpty(slugUrl))
                    {
                        var catalog         = _catalogService.GetById(category.CatalogId);
                        var defaultLanguage = catalog.Languages.First(x => x.IsDefault).LanguageCode;
                        coreCategory.SeoInfos = new SeoInfo[] { new SeoInfo {
                                                                    LanguageCode = defaultLanguage, SemanticUrl = slugUrl
                                                                } };
                    }
                }

                var retVal = _categoryService.Create(coreCategory).ToWebModel();
                retVal.Catalog = null;
                return(Ok(retVal));
            }
            else
            {
                _categoryService.Update(new[] { coreCategory });
                return(StatusCode(HttpStatusCode.NoContent));
            }
        }
        public IHttpActionResult GetNewCategory(string catalogId, [FromUri]string parentCategoryId = null)
        {
            var retVal = new webModel.Category
            {
                ParentId = parentCategoryId,
                CatalogId = catalogId,
                Catalog = _catalogService.GetById(catalogId).ToWebModel(),
                Code = Guid.NewGuid().ToString().Substring(0, 5),
                SeoInfos = new List<SeoInfo>(),
				IsActive = true
            };

            base.CheckCurrentUserHasPermissionForObjects(CatalogPredefinedPermissions.Create, retVal.ToModuleModel());
            retVal.SecurityScopes = base.GetObjectPermissionScopeStrings(retVal.ToModuleModel());

            return Ok(retVal);
        }
        public IHttpActionResult GetNewCategory(string catalogId, [FromUri] string parentCategoryId = null)
        {
            var retVal = new webModel.Category
            {
                ParentId  = parentCategoryId,
                CatalogId = catalogId,
                Code      = Guid.NewGuid().ToString().Substring(0, 5),
                SeoInfos  = new List <SeoInfo>(),
                IsActive  = true
            };

            CheckCurrentUserHasPermissionForObjects(CatalogPredefinedPermissions.Create, retVal.ToModuleModel());
            retVal.SecurityScopes = GetObjectPermissionScopeStrings(retVal.ToModuleModel());

            return(Ok(retVal));
        }