/// <summary>
        /// Insert Update the material overview
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns></returns>
        public IResult ManageMaterialPartProperties(PartPropertyViewModel viewModel)
        {
            var result = new Result
            {
                Status = Status.Success
            };

            try
            {
                if (string.IsNullOrEmpty(viewModel.PartPropertyId) || viewModel.PartPropertyId == null)
                {
                    viewModel.PartPropertyId = null;
                    var partProperty = new PartProperty();
                    partProperty.MapFromViewModel(viewModel, (ClaimsIdentity)_principal.Identity);
                    partProperty.PartPropertyId = ObjectId.GenerateNewId();
                    var updateDefinition = Builders <Material> .Update.Set(x => x.ModifiedDate, GenericHelper.CurrentDate).AddToSet(t => t.PartProperties, partProperty);

                    _materialRepository.UpdateOne(t => t.MaterialId.Equals(ObjectId.Parse(viewModel.RegardingId)), updateDefinition);
                    result.Body      = partProperty;
                    result.Message   = MaterialNotification.OverviewCreated;
                    result.Operation = Operation.Create;
                }
                else
                {
                    var updateDefinition = Builders <Material> .Update.Set(x => x.ModifiedDate, GenericHelper.CurrentDate).Set(t => t.PartProperties[-1].PropertyName, viewModel.PropertyName).
                                           Set(t => t.PartProperties[-1].PropertyValue, viewModel.PropertyValue);

                    _materialRepository.UpdateOne(
                        t => t.MaterialId.Equals(ObjectId.Parse(viewModel.RegardingId)) &&
                        t.PartProperties.Any(o => o.PartPropertyId.Equals(ObjectId.Parse(viewModel.PartPropertyId))),
                        updateDefinition);
                    result.Body      = viewModel;
                    result.Message   = MaterialNotification.OverviewUpdated;
                    result.Operation = Operation.Update;
                }
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
Пример #2
0
        public IResult ManageMaterialPartProperties([FromBody] PartPropertyViewModel partPropertyViewModel)
        {
            var result = _materialManager.ManageMaterialPartProperties(partPropertyViewModel);

            return(result);
        }
Пример #3
0
        public IResult ManageEquipmentPartProperties([FromBody] PartPropertyViewModel partPropertyViewModel)
        {
            var result = _equipmentManager.ManageEquipmentPartProperties(partPropertyViewModel);

            return(result);
        }