public void UpdateChangedProperties(BodyClassification bodyClassification, out bool result, out string message)
        {
            // Header
            _bodyClassificationRepository.UpdateChangedProperties(bodyClassification.Id, bodyClassification, out result, out message);

            // Detail
            var existedDetails = _templateMenuForBodyClassification.FindAll(x => x.BodyClassificationId == bodyClassification.Id &&
                                                                            x.InsertedSource.Contains(CommonConstants.InsertedResource.BodyClassification));     // existed details

            _templateMenuForBodyClassification.RemoveMultiple(existedDetails.ToList(), out result, out message);

            if (bodyClassification.TemplateMenuForBodyClassifications != null)
            {
                var addedDetails = bodyClassification.TemplateMenuForBodyClassifications.Where(x => x.Id == 0).ToList(); // new details added
                bodyClassification.TemplateMenuForBodyClassifications.Clear();

                foreach (var detail in addedDetails)
                {
                    detail.BodyClassificationId = bodyClassification.Id;
                    _templateMenuForBodyClassification.Add(detail, out result, out message);
                }
            }

            if (result)
            {
                SaveChanges();
            }
            else
            {
                Dispose();
            }
        }
예제 #2
0
        public IActionResult SaveEntity(BodyClassification entity)
        {
            bool   result    = true;
            string message   = string.Empty;
            var    userEmail = User.GetSpecificClaim("Email");

            if (ModelState.IsValid)
            {
                entity.UserModified = userEmail;
                if (entity.Id == 0)
                {
                    entity.UserCreated = userEmail;
                    _bodyClassificationService.Add(entity, out result, out message);
                }
                else
                {
                    _bodyClassificationService.UpdateChangedProperties(entity, out result, out message);
                }

                return(new OkObjectResult(new GenericResult(result, message)));
            }
            else
            {
                List <string> listErrors  = ModelState.Values.SelectMany(v => v.Errors).Select(x => x.ErrorMessage).ToList();
                string        errorString = String.Join("\n", listErrors.ToArray());
                return(new OkObjectResult(new GenericResult(false, errorString)));
            }
        }
        public void Add(BodyClassification bodyClassification, out bool result, out string message)
        {
            var existed = _bodyClassificationRepository.CheckExist(bodyClassification, out int foundId, out result, out message,
                                                                   x => x.GroupCode == bodyClassification.GroupCode && x.Code == bodyClassification.Code && x.Active == true);

            if (!existed)
            {
                _bodyClassificationRepository.Add(bodyClassification, out result, out message);
                if (result)
                {
                    SaveChanges();
                }
                else
                {
                    Dispose();
                }
            }
            else
            {
                result  = false;
                message = CommonConstants.Message.Existed;
            }
        }