Beispiel #1
0
        public void CreateItemAction_GivenModel_ReturnsCreatedItem()
        {
            ITestItem parentItem = new TestItem
            {
                Title = "TestTitle",
                Name  = "Parent"
            };

            const string newItemName  = "NewTestItem";
            const string newItemTitle = "NewItemTitle";

            var newItem = new TestItem
            {
                Title = newItemTitle,
                Name  = newItemName
            };

            var createOptions = new CreateByModelOptions
            {
                Parent = parentItem,
                Model  = newItem
            };

            var fixture            = new Fixture();
            var createItemResponse = fixture.Build <TestItem>()
                                     .With(x => x.Name, newItemName)
                                     .With(x => x.Title, newItemTitle)
                                     .With(x => x.BaseTemplateIds, new List <string>())
                                     .Create();

            _requestContext.SitecoreService.CreateItem <TestItem>(createOptions)
            .ReturnsForAnyArgs(createItemResponse);

            var createdModel = _contentRepository.CreateItem <TestItem>(createOptions);

            Assert.IsNotNull(createdModel);
            createdModel.Name.Should().Be(newItemName);
            createdModel.Title.Should().Be(newItemTitle);
        }
Beispiel #2
0
        public void AddShortUrl(Guid destination)
        {
            var shorthand = _shorthandGenerator.GenerateShorthand(_settingsRepository.GetShorthandLength(),
                                                                  _settingsRepository.GetShorthandPattern());

            var model = new UrlShorteningServiceEntry {
                Name        = shorthand,
                Shorthand   = shorthand,
                Destination = new Link {
                    TargetId = destination,
                    Type     = LinkType.Internal
                }
            };

            var createOptions = new CreateByModelOptions(model)
            {
                Parent = _entriesFolder,
                Silent = true
            };

            _requestContext.SitecoreService.CreateItem(createOptions);
        }
Beispiel #3
0
        protected override bool Execute(UploadPackageData data, FormSubmitContext formSubmitContext)
        {
            try
            {
                Assert.ArgumentNotNull(data, nameof(data));
                Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

                // Initialize services
                _contentRepository = (IContentRepository)DependencyResolver.Current.GetService(typeof(IContentRepository));
                _contextRepository = (IContextRepository)DependencyResolver.Current.GetService(typeof(IContextRepository));
                _logRepository     = (ILogRepository)DependencyResolver.Current.GetService(typeof(ILogRepository));

                var fields = GetFormFields(data, formSubmitContext);

                Assert.IsNotNull(fields, nameof(fields));

                var values = fields.GetFieldValues();

                // Check if logo uploaded
                if (string.IsNullOrEmpty(values.File))
                {
                    SubmitActionData.ErrorMessage = Translate.Text("FileUploadRequired");
                    return(false);
                }

                //TODO: Get Id from settings Item or web config.
                var parentItem = _contentRepository.GetItem <IPackagesFolder>(
                    new GetItemByPathOptions()
                {
                    Path = "/sitecore/content/KATSU/Global/Packages Data"
                });

                // Get logo image
                var packageFile = GetFile(values.File);

                var mediaItem = AddFile(packageFile, @"/sitecore/media library/Project/KATSU/Packages/" + values.PackageName,
                                        values.PackageName);

                // New Entity
                var newItem = new Models.Package
                {
                    Name              = values.PackageName,
                    PackageName       = values.PackageName,
                    PackageIdentifier = values.PackageIdentifier,
                    PackageFile       = new Glass.Mapper.Sc.Fields.File()
                    {
                        Id = new Guid(mediaItem.ID.ToString()), Src = mediaItem.MediaPath
                    },
                };


                var createOptions = new CreateByModelOptions
                {
                    Parent = parentItem,
                    Model  = newItem
                };

                using (new SecurityDisabler())
                {
                    try
                    {
                        _contentRepository.CreateItem <Models.Package>(createOptions);

                        // Set item to draft state
                        //var item = _contentRepository.GetItem<Item>(new GetItemByIdOptions
                        //{ Id = newItem.Id, Language = LanguageManager.GetLanguage("en") });
                        //_workflowEngine.ChangeWorkflowState(item, Settings.Workflows.GovernmentEntityApproval,
                        //    WorkflowStates.Draft);
                    }
                    catch (Exception ex)
                    {
                        SubmitActionData.ErrorMessage = ex.Message;
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                SubmitActionData.ErrorMessage = Translate.Text("ServerError");
                _logRepository.Error(ex.Message);
                return(false);
            }
        }
Beispiel #4
0
 /// <summary>
 /// Creates a new Item in Sitecore using the Master DB Context
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="options"></param>
 public T CreateItem <T>(CreateByModelOptions options) where T : class
 {
     return(_masterMvcContext.SitecoreService.CreateItem <T>(options));
 }
 public AbstractCreateItemByModelBuilder(CreateByModelOptions options)
     : base(options)
 {
     _options = options;
 }