public IResult AddOptionToBOM([FromBody] BomOptionViewModel bomOptionViewModel)
        {
            IResult result = null;

            result = _billOfMaterialsManager.SaveOptionForBOM(bomOptionViewModel);
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Add Option to BOM.
        /// </summary>
        /// <param name="bomOptionViewModel"></param>
        /// <returns></returns>
        public IResult SaveOptionForBOM(BomOptionViewModel bomOptionViewModel)
        {
            var result = new Result
            {
                Operation = Operation.Create,
                Status    = Status.Success
            };

            try
            {
                BomOption bomOption = null;
                if (bomOptionViewModel != null)
                {
                    var bom = _bomRepository.GetOne(t => t.BomId == ObjectId.Parse(bomOptionViewModel.RegardingId));
                    if (bom != null)
                    {
                        bomOption = new BomOption();
                        if (!string.IsNullOrEmpty(bomOptionViewModel.License))
                        {
                            bomOption.License = ObjectId.Parse(bomOptionViewModel.License);
                        }
                        if (!string.IsNullOrEmpty(bomOptionViewModel.Owner))
                        {
                            bomOption.Owner = ObjectId.Parse(bomOptionViewModel.Owner);
                        }
                        if (!string.IsNullOrEmpty(bomOptionViewModel.Location))
                        {
                            bomOption.Location = ObjectId.Parse(bomOptionViewModel.Location);
                        }
                        var updateDefinition = Builders <BillOfMaterial> .Update.Set(t => t.Option, bomOption);

                        _bomRepository.UpdateOne(t => t.BomId.Equals(ObjectId.Parse(bomOptionViewModel.RegardingId)), updateDefinition);
                        result.Message = BomNotification.OptionSaved;
                    }
                    else
                    {
                        result.Message = BomNotification.BOMNotFound;
                    }
                }
                else
                {
                    result.Message = BomNotification.NoOptionProvided;
                }
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }