Exemple #1
0
        /// <summary>
        /// Converting to foundation type
        /// </summary>
        /// <param name="category">The category.</param>
        /// <returns></returns>
        public static dataModel.Category ToDataModel(this coreModel.Category category, PrimaryKeyResolvingMap pkMap)
        {
            var retVal = new dataModel.Category();

            pkMap.AddPair(category, retVal);
            retVal.InjectFrom(category);

            retVal.ParentCategoryId = category.ParentId;
            retVal.EndDate          = DateTime.UtcNow.AddYears(100);
            retVal.StartDate        = DateTime.UtcNow;
            retVal.IsActive         = category.IsActive ?? true;

            if (category.PropertyValues != null)
            {
                retVal.CategoryPropertyValues = new ObservableCollection <dataModel.PropertyValue>();
                retVal.CategoryPropertyValues.AddRange(category.PropertyValues.Select(x => x.ToDataModel(pkMap)));
            }

            if (category.Links != null)
            {
                retVal.OutgoingLinks = new ObservableCollection <dataModel.CategoryRelation>();
                retVal.OutgoingLinks.AddRange(category.Links.Select(x => x.ToDataModel(category)));
            }

            #region Images
            if (category.Images != null)
            {
                retVal.Images = new ObservableCollection <dataModel.Image>(category.Images.Select(x => x.ToDataModel(pkMap)));
            }
            #endregion

            return(retVal);
        }
Exemple #2
0
        /// <summary>
        /// Converting to foundation type
        /// </summary>
        /// <param name="category">The category.</param>
        /// <returns></returns>
        public static dataModel.CategoryBase ToDataModel(this coreModel.Category category)
        {
            var retVal = new dataModel.Category();

            var id = retVal.Id;

            retVal.InjectFrom(category);
            if (category.Id == null)
            {
                retVal.Id = id;
            }
            retVal.ParentCategoryId = category.ParentId;
            retVal.EndDate          = DateTime.UtcNow.AddYears(100);
            retVal.StartDate        = DateTime.UtcNow;

            if (category.PropertyValues != null)
            {
                retVal.CategoryPropertyValues = new ObservableCollection <dataModel.CategoryPropertyValue>();
                retVal.CategoryPropertyValues.AddRange(category.PropertyValues.Select(x => x.ToDataModel <dataModel.CategoryPropertyValue>()).OfType <dataModel.CategoryPropertyValue>());
            }

            if (category.Links != null)
            {
                retVal.OutgoingLinks = new ObservableCollection <dataModel.CategoryRelation>();
                retVal.OutgoingLinks.AddRange(category.Links.Select(x => x.ToDataModel(category)));
            }

            return(retVal);
        }
        /// <summary>
        /// Patch changes
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        public static void Patch(this coreModel.Category source, dataModel.Category target)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            //TODO: temporary solution because partial update replaced not nullable properties in db entity
            if (source.IsActive != null)
            {
                target.IsActive = source.IsActive.Value;
            }

            var dbSource = source.ToDataModel() as dataModel.Category;
            var dbTarget = target as dataModel.Category;

            if (dbSource != null && dbTarget != null)
            {
                var patchInjectionPolicy = new PatchInjection <dataModel.Category>(x => x.Code, x => x.Name, x => x.TaxType);
                target.InjectFrom(patchInjectionPolicy, source);

                if (!dbSource.CategoryPropertyValues.IsNullCollection())
                {
                    dbSource.CategoryPropertyValues.Patch(dbTarget.CategoryPropertyValues, (sourcePropValue, targetPropValue) => sourcePropValue.Patch(targetPropValue));
                }

                if (!dbSource.OutgoingLinks.IsNullCollection())
                {
                    dbSource.OutgoingLinks.Patch(dbTarget.OutgoingLinks, new LinkedCategoryComparer(), (sourceLink, targetLink) => sourceLink.Patch(targetLink));
                }

                if (!dbSource.Images.IsNullCollection())
                {
                    dbSource.Images.Patch(dbTarget.Images, (sourceImage, targetImage) => sourceImage.Patch(targetImage));
                }
            }
        }
        /// <summary>
        /// Converting to foundation type
        /// </summary>
        /// <param name="category">The category.</param>
        /// <returns></returns>
        public static dataModel.Category ToDataModel(this coreModel.Category category)
        {
			var retVal = new dataModel.Category();

			var id = retVal.Id;
			retVal.InjectFrom(category);
			if(category.Id == null)
			{
				retVal.Id = id;
			}
			retVal.ParentCategoryId = category.ParentId;
			retVal.EndDate = DateTime.UtcNow.AddYears(100);
			retVal.StartDate = DateTime.UtcNow;
			retVal.IsActive = category.IsActive ?? true;
          
            if (category.PropertyValues != null)
            {
                retVal.CategoryPropertyValues = new ObservableCollection<dataModel.CategoryPropertyValue>();
                retVal.CategoryPropertyValues.AddRange(category.PropertyValues.Select(x => x.ToDataModel<dataModel.CategoryPropertyValue>()).OfType<dataModel.CategoryPropertyValue>());
            }

            if (category.Links != null)
            {
				retVal.OutgoingLinks = new ObservableCollection<dataModel.CategoryRelation>();
				retVal.OutgoingLinks.AddRange(category.Links.Select(x => x.ToDataModel(category)));
            }

			#region Images
			if (category.Images != null)
			{
				retVal.Images = new ObservableCollection<dataModel.Image>(category.Images.Select(x=>x.ToDataModel()));
			}
			#endregion

            return retVal;
        }
        /// <summary>
        /// Converting to foundation type
        /// </summary>
        /// <param name="category">The category.</param>
        /// <returns></returns>
        public static dataModel.Category ToDataModel(this coreModel.Category category, PrimaryKeyResolvingMap pkMap)
        {
			var retVal = new dataModel.Category();
            pkMap.AddPair(category, retVal);
            retVal.InjectFrom(category);
	
			retVal.ParentCategoryId = category.ParentId;
			retVal.EndDate = DateTime.UtcNow.AddYears(100);
			retVal.StartDate = DateTime.UtcNow;
			retVal.IsActive = category.IsActive ?? true;
          
            if (category.PropertyValues != null)
            {
                retVal.CategoryPropertyValues = new ObservableCollection<dataModel.PropertyValue>();
                retVal.CategoryPropertyValues.AddRange(category.PropertyValues.Select(x => x.ToDataModel(pkMap)));
            }

            if (category.Links != null)
            {
				retVal.OutgoingLinks = new ObservableCollection<dataModel.CategoryRelation>();
				retVal.OutgoingLinks.AddRange(category.Links.Select(x => x.ToDataModel(category)));
            }

			#region Images
			if (category.Images != null)
			{
				retVal.Images = new ObservableCollection<dataModel.Image>(category.Images.Select(x=>x.ToDataModel(pkMap)));
			}
			#endregion

            return retVal;
        }