Exemple #1
0
        public IActionResult Delete(Guid id)
        {
            var obj = new ProductComponents {
                Id = id
            };

            context.Entry(obj).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
            context.SaveChanges();

            return(Ok());
        }
Exemple #2
0
        public IActionResult Post([FromForm] ProductComponents productComponents)
        {
            var obj = context.ProductComponents.FirstOrDefault(a => a.Id == productComponents.Id);

            if (obj == null)
            {
                obj    = new ProductComponents();
                obj.Id = Guid.NewGuid();
                context.ProductComponents.Add(obj);
            }
            obj.ProductId    = productComponents.ProductId;
            obj.ComponentsId = productComponents.ComponentsId;
            obj.Amount       = productComponents.Amount;

            context.SaveChanges();

            return(Ok());
        }
Exemple #3
0
        /// <summary>
        /// Clones this instance.
        /// </summary>
        /// <returns></returns>
        public virtual ProductModel Clone(bool createVersion = true, string modelName = "", string idMask = "", string description = "")
        {
            // clone item (without child collections), increase version
            var clonedModel = (ProductModel)this.MemberwiseClone();

            clonedModel.Id         = Guid.NewGuid();
            clonedModel.IsReleased = false;
            clonedModel.IsArchived = false;

            if (createVersion)
            {
                // create a new version
                clonedModel.Version = Version + 1;
            }
            else
            {
                if (string.IsNullOrEmpty(modelName) || string.IsNullOrEmpty(idMask) || string.IsNullOrEmpty(description))
                {
                    throw new ArgumentNullException("Pass a valid name, id mask and description if a model needs to be cloned.");
                }

                // or create a new model with new name, 0 version and new base model id
                clonedModel.Name        = modelName;
                clonedModel.Version     = 0;
                clonedModel.BaseModelId = Guid.NewGuid();
                clonedModel.IdMask      = IdMask;
                clonedModel.Comment     = description;
            }

            clonedModel.NHVersion = 0;

            // clone each child element and assign cloned item as parent
            var productComponentList = new List <ProductComponent>();
            ProductComponent placeHolder;

            ProductComponents.ToList().ForEach(x =>
            {
                placeHolder = x.Clone();
                placeHolder.ProductModel = clonedModel;
                productComponentList.Add(placeHolder);
            });

            // clone product model configurations
            var productModelConfigurations = new List <ProductModelConfiguration>();
            ProductModelConfiguration configPlaceholder;

            ProductModelConfigurations.ToList().ForEach(x =>
            {
                configPlaceholder             = new ProductModelConfiguration();
                configPlaceholder.Id          = Guid.NewGuid();
                configPlaceholder.Name        = x.Name;
                configPlaceholder.ConfigIndex = x.ConfigIndex;
                configPlaceholder.Color       = x.Color;

                productModelConfigurations.Add(configPlaceholder);
            });

            // assign collection to ProductModelConfigurations property
            clonedModel.ProductModelConfigurations = productModelConfigurations;

            // clone product part numbers
            var        productModelPartNrs = new List <PartNumber>();
            PartNumber placeholder;

            PartNumbers.ToList().ForEach(x =>
            {
                placeholder              = new PartNumber();
                placeholder.Id           = Guid.NewGuid();
                placeholder.Number       = x.Number;
                placeholder.ProductModel = clonedModel;

                productModelPartNrs.Add(placeholder);
            });

            //assign part numbers to part nrs property
            clonedModel.PartNumbers = productModelPartNrs;

            // create a new list object or a "Shared collection" exception will be thrown
            clonedModel.Tooling = new List <AssemblyTool>();
            ((List <AssemblyTool>)clonedModel.Tooling).AddRange(Tooling);

            // assign clone child collection to cloned model
            clonedModel.ProductComponents = productComponentList;

            return(clonedModel);
        }