Beispiel #1
0
        private TemplateMapping CreateTemplateMappingObject(UmbProject mapping, UmbTemplateMapping template)
        {
            var fieldMappings =
                ContextDatabase.Database.Fetch <UmbFieldMapping>(
                    new Sql().Select("*")
                    .From <UmbFieldMapping>()
                    .Where <UmbFieldMapping>(x => x.TemplateMappingId == template.Id));



            return(new TemplateMapping()
            {
                MappingId = template.Id.ToString(),                           //MappingId == umbraco's templateId
                GcProjectId = mapping.GcProjectId.ToString(),
                GcProjectName = mapping.GcProjectName,
                LastUpdatedDate = template.LastUpdatedDate,
                DefaultLocationId = template.DefaultLocation,
                DefaultLocationTitle = !string.IsNullOrWhiteSpace(template.DefaultLocation) ?
                                       ContextService.ContentService.GetById(Convert.ToInt32(template.DefaultLocation))?.Name : string.Empty,
                CmsTemplate =
                    new CmsTemplate()
                {
                    TemplateId = template.CmsTemplateId.ToString(),
                    TemplateName = template.CmsTemplateName
                },
                GcTemplate =
                    new GcTemplate()
                {
                    GcTemplateId = template.GcTemplateId.ToString(),
                    GcTemplateName = template.GcTemplateName
                },
                LastMappedDateTime = template.LastMappedDateTime,
                MappingTitle = template.MappingTitle,
                FieldMappings = fieldMappings.Count > 0 ? new List <FieldMapping>(fieldMappings.Select(x => new FieldMapping()
                {
                    GcField =
                        new GcField()
                    {
                        Id = x.GcFieldId, Name = x.GcFieldName, Type = x.GcFieldType
                    },
                    CmsField =
                        new CmsField()
                    {
                        TemplateField =
                            new CmsTemplateField()
                        {
                            FieldName = x.CmsTemplateFieldName,
                            FieldId = x.CmsTemplateFieldId,
                            FieldType = x.CmsTemplateFieldType
                        }
                    }
                })) : new List <FieldMapping>()
            });
        }
Beispiel #2
0
        public void CreateMapping(TemplateMapping cmsMapping)
        {
            var mapping = new UmbProject()
            {
                GcProjectId   = Convert.ToInt32(cmsMapping.GcProjectId),
                GcProjectName = cmsMapping.GcProjectName,
                CreatedDate   = DateTime.UtcNow.ToIsoString()
            };

            if (cmsMapping.MappingId != null)
            {
                mapping =
                    ContextDatabase.Database.Fetch <UmbProject>(
                        new Sql().Select("*")
                        .From <UmbProject>()
                        .Where <UmbProject>(x => x.Id.ToString() == cmsMapping.MappingId)).FirstOrDefault() ?? mapping;
            }

            mapping.Id = Convert.ToInt32(ContextDatabase.Database.Insert("gcProject", "Id", mapping));
            var gcProjectTemp = new UmbTemplateMapping()
            {
                GcTemplateName     = cmsMapping.GcTemplate.GcTemplateName,
                GcTemplateId       = Convert.ToInt32(cmsMapping.GcTemplate.GcTemplateId),
                LastUpdatedDate    = cmsMapping.LastUpdatedDate,
                LastMappedDateTime = DateTime.UtcNow.ToIsoString(),
                CreatedDate        = DateTime.UtcNow.ToIsoString(),
                ProjectId          = mapping.Id,
                CmsTemplateId      = cmsMapping.CmsTemplate != null?Convert.ToInt32(cmsMapping.CmsTemplate.TemplateId) : 0,
                                         CmsTemplateName = (cmsMapping.CmsTemplate?.TemplateId != null)
                    ? ContextService.ContentTypeService.GetContentType(Convert.ToInt32(cmsMapping.CmsTemplate.TemplateId)).Name : null,
                                         MappingTitle    = cmsMapping.MappingTitle,
                                         DefaultLocation = cmsMapping.DefaultLocationId
            };

            gcProjectTemp.Id = Convert.ToInt32(ContextDatabase.Database.Insert("gcTemplateMapping", "Id", gcProjectTemp));
            foreach (var fieldMapping in cmsMapping.FieldMappings)
            {
                var umbFieldMapping = new UmbFieldMapping()
                {
                    CmsTemplateFieldId   = fieldMapping.CmsField.TemplateField.FieldId,
                    CmsTemplateFieldName = fieldMapping.CmsField.TemplateField.FieldName,
                    CmsTemplateFieldType = fieldMapping.CmsField.TemplateField.FieldType,
                    GcFieldId            = fieldMapping.GcField.Id,
                    GcFieldName          = fieldMapping.GcField.Name,
                    GcFieldType          = fieldMapping.GcField.Type,
                    TemplateMappingId    = gcProjectTemp.Id
                };
                ContextDatabase.Database.Insert("gcFieldMapping", "Id", umbFieldMapping);
            }
        }