public static ProjectBlockViewModel FromEnitity(ProjectBlock entity)
        {
            var detail = entity.ProjectBlockDetails.FirstOrDefault(o => o.ForCurrentRequestLanguage());

            var viewModelResult = new ProjectBlockViewModel
            {
                Id           = entity.Id,
                EntityTypeId = entity.EntityTypeId,
                PackageId    = entity.PackageId,
                ParentId     = entity.PackageId,
                Children     = entity.Children?.Select(o => FromEnitity(o))
            };

            if (entity.Project != null)
            {
                viewModelResult.Project = new ProjectViewModel()
                {
                    Id   = entity.Project.Id,
                    Name = entity.Project.Name
                }
            }
            ;

            if (entity.Package != null)
            {
                viewModelResult.Package = PackageViewModel.FromEntity(entity.Package);
            }

            if (detail != null)
            {
                viewModelResult = viewModelResult.MergeWith(AutoMapper.Mapper.Map <ProjectBlockViewModel>(detail));
            }

            var layoutImageFileEntity = entity.ProjectBlockFiles.FirstOrDefault(o => o.UsingType == 0);

            if (layoutImageFileEntity != null)
            {
                viewModelResult.LayoutImage = FileEntityInfo.FromEntity(layoutImageFileEntity.FileEntity);
            }

            viewModelResult.LayoutPoints = entity.ProjectBlockFiles.Where(o => o.UsingType == 1).Select(o => {
                var obj   = Newtonsoft.Json.JsonConvert.DeserializeObject <LayoutPoint>(o.JsonData);
                obj.Image = FileEntityInfo.FromEntity(o.FileEntity);
                return(obj);
            });

            return(viewModelResult);
        }
    }
Ejemplo n.º 2
0
        public static PackageViewModel FromEntity(Package package)
        {
            if (package == null)
            {
                return(null);
            }

            var packageViewModel = new PackageViewModel();

            packageViewModel.Id             = package.Id;
            packageViewModel.Name           = package.Name;
            packageViewModel.ProjectBlockId = package.ProjectBlockId;
            packageViewModel.IsPerspective  = package.IsPerspective;

            var detail = package.Details.FirstOrDefault();

            if (detail != null)
            {
                packageViewModel.Price    = detail.Price;
                packageViewModel.Area     = detail.Area;
                packageViewModel.Title    = detail.Title;
                packageViewModel.SortText = detail.SortText;
            }

            var avatarFile = package.EntityFiles.FirstOrDefault(o => o.UsingType == (int)FileUsingType.Avatar);

            if (avatarFile != null)
            {
                packageViewModel.Avatar = FileEntityInfo.FromEntity(avatarFile.FileEntity);
            }

            var pictureFiles = package.EntityFiles.Where(o => o.UsingType == (int)FileUsingType.Picture);

            packageViewModel.Pictures = pictureFiles.Select(o => FileEntityInfo.FromEntity(o.FileEntity));

            var houseType = package.EntityTaxonomies.FirstOrDefault(o => o.Taxonomy.TaxonomyTypeId == HouseStyleSeed.HouseStyle.Id);

            if (houseType != null)
            {
                packageViewModel.HouseTypeId    = houseType.TaxonomyId;
                packageViewModel.HouseTypeLabel = houseType.Taxonomy.Details.FirstOrDefault(o => o.ForCurrentRequestLanguage()).Label;
            }

            var designTheme = package.EntityTaxonomies.FirstOrDefault(o => o.Taxonomy.TaxonomyTypeId == DesignThemeSeed.DesignTheme.Id);

            if (designTheme != null)
            {
                packageViewModel.DesignThemeId    = designTheme.TaxonomyId;
                packageViewModel.DesignThemeLabel = designTheme.Taxonomy.Details.FirstOrDefault(o => o.ForCurrentRequestLanguage()).Label;
            }

            var includedItems = package.EntityTaxonomies.Where(o => o.Taxonomy.TaxonomyTypeId == PackageIncludedSeed.PackageIncludedItem.Id);

            if (includedItems != null)
            {
                packageViewModel.PackageIncludedItemIds = includedItems.Select(o => o.TaxonomyId);
                packageViewModel.PackageIncludedItems   = includedItems.Select(o => TaxomonyViewModel.FromEntity(o.Taxonomy));
            }

            var furnitureIncludedItems = package.EntityTaxonomies.Where(o => o.Taxonomy.TaxonomyTypeId == PackageFunitureIncludedSeed.PackageFunitureIncludedItem.Id);

            if (furnitureIncludedItems != null)
            {
                packageViewModel.PackageFurnitureIncludedItemIds = furnitureIncludedItems.Select(o => o.TaxonomyId);
                packageViewModel.PackageFurnitureIncludedItems   = furnitureIncludedItems.Select(o => TaxomonyViewModel.FromEntity(o.Taxonomy));
            }

            packageViewModel.Products = new List <PackageProductViewModel>(package.EntityProducts.Select(o => PackageProductViewModel.FromEntity(o)));

            return(packageViewModel);
        }