public void should_create_ContentElement_based_on_Dto()
        {
            var dto = new ContentElementDto()
            {
                ContentElementId = 1,
                ContentType      = ContentType.Text,
                DefaultLanguage  = "en",
                TextContents     = new List <TextContentDto>
                {
                    new TextContentDto()
                    {
                        ContentElementId = 1,
                        ContentStatus    = ContentStatus.Complete,
                        Language         = "en",
                        TextContentId    = 2,
                        Value            = "test"
                    }
                }
            };

            ContentElement ce = factory.Create(dto);

            ce.ContentElementId.Should().Be(1);
            ce.ContentType.Should().Be(ContentType.Text);
            ce.DefaultLanguage.LanguageId.Should().Be("en");
        }
Exemple #2
0
        public void UpdateContentElement(int contentElementId, ContentElementDto contentElement)
        {
            var repo = new ContentElementRepository();

            try
            {
                var factory = new ContentDomain.Factories.ContentElementFactory();
                var ce      = factory.Create(contentElement);
                var originalContentElement = repo.Get(contentElementId);
                foreach (var value in contentElement.TextContents)
                {
                    originalContentElement.UpdateValue(factory.CreateTextContent(value));
                }

                repo.Update(ce);
            }
            catch (Exception ex)
            {
                if (ex is ArgumentException || ex is ArgumentNullException)
                {
                    throw new DomainException("Error occured when trying to insert ContentElement: " + ex.Message);
                }

                throw;
            }
        }
Exemple #3
0
        //TODO a from ?
        public static TDto ToDto <TDto>(this ContentElementDto contentDto)
            where TDto : ContentElementDto
        {
            var serialized   = JObject.FromObject(contentDto);
            var deserialized = serialized.ToObject(typeof(TDto)) as TDto;

            //deserialized.AdditionalPropertiesToCamelCase();
            return(deserialized);
        }
Exemple #4
0
 internal static void AdditionalPropertiesToCamelCase(this ContentElementDto contentElementDto)
 {
     if (contentElementDto.AdditionalProperties != null && contentElementDto.AdditionalProperties.Any())
     {
         var additionalProperties = new Dictionary <string, object>();
         foreach (var key in contentElementDto.AdditionalProperties.Keys)
         {
             var value = contentElementDto.AdditionalProperties[key];
             contentElementDto.AdditionalProperties.Remove(key);
             var camelCaseKey = char.ToLowerInvariant(key[0]) + key.Substring(1);
             additionalProperties.Add(camelCaseKey, value);
         }
         contentElementDto.AdditionalProperties = additionalProperties;
     }
 }
Exemple #5
0
        public void InsertNewContentElement(ContentElementDto contentElement)
        {
            var repo = new ContentElementRepository();

            try
            {
                var ce = new ContentDomain.Factories.ContentElementFactory().Create(contentElement);
                repo.Insert(ce);
            }
            catch (Exception ex)
            {
                if (ex is ArgumentException || ex is ArgumentNullException)
                {
                    throw new DomainException("Error occured when trying to insert ContentElement: " + ex.Message);
                }

                throw;
            }
        }
        // Elements
        private ContentElement CreateElement(ContentElementDto elementDto, IContentZone parentZone, IContentItem parentItem)
        {
            ContentElement element;

            if (elementDto is ContentPartDto)
            {
                element = CreatePart(elementDto as ContentPartDto);
            }
            else if (elementDto is ContentFieldDto)
            {
                element = CreateField(elementDto as ContentFieldDto);
            }
            else
            {
                element = new ContentElement();
            }

            if (element.Type == null)
            {
                element.Type = elementDto.Type;
            }

            element.Zone = parentZone;


            element.Alternates.Add($"{element.Type}_{element.Zone.ContentItem.Id}");
            element.Alternates.Add($"{element.Type}_{parentItem.ContentType}_{parentItem.DisplayType}_{parentZone.Name}");
            element.Alternates.Add($"{element.Type}_{parentItem.ContentType}_{parentItem.DisplayType}");
            element.Alternates.Add($"{element.Type}_{parentItem.DisplayType}_{parentZone.Name}");
            element.Alternates.Add($"{element.Type}_{parentItem.DisplayType}");
            element.Alternates.Add($"{element.Type}_{parentItem.ContentType}");
            element.Alternates.Add($"{element.Type}_{parentZone.Name}");
            element.Alternates.Add($"{element.Type}");

            return(element);
        }