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"); }
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; } }
//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); }
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; } }
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); }