public IResult AddOptionToBOM([FromBody] BomOptionViewModel bomOptionViewModel) { IResult result = null; result = _billOfMaterialsManager.SaveOptionForBOM(bomOptionViewModel); return(result); }
/// <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); }