private bool ValidateContactPerson(ConsumerGroup entity, out IList <ValidationResultProperty> validationResults)
        {
            validationResults = new List <ValidationResultProperty>();

            if (entity.Properties.TryGetValue(Graph.Metadata.Constants.ConsumerGroup.HasContactPerson, out var persons))
            {
                foreach (var person in persons)
                {
                    try
                    {
                        bool exists = _remoteAppDataService.CheckPerson(person).Result;
                        if (!exists)
                        {
                            validationResults.Add(new ValidationResultProperty(entity.Id, Graph.Metadata.Constants.ConsumerGroup.HasContactPerson, person, string.Format(Common.Constants.Messages.Person.PersonNotFound, person), ValidationResultSeverity.Violation));
                            continue;
                        }
                    }
                    catch (ArgumentException)
                    {
                        continue;
                    }
                }
            }

            return(validationResults.Any());
        }
Example #2
0
        protected override void InternalHasValidationResult(EntityValidationFacade validationFacade, KeyValuePair <string, List <dynamic> > properties)
        {
            if (IsIgnoredProperty(validationFacade.ResourceCrudAction, properties))
            {
                return;
            }

            foreach (var person in properties.Value)
            {
                try
                {
                    bool exists = _remoteAppDataService.CheckPerson(person).GetAwaiter().GetResult();

                    if (!exists)
                    {
                        var metadataProperty = validationFacade.MetadataProperties.FirstOrDefault(m => m.Key == properties.Key);
                        var criticalError    = metadataProperty.IsTechnicalMetadataProperty() ? ValidationResultSeverity.Violation : ValidationResultSeverity.Warning;
                        validationFacade.ValidationResults.Add(new ValidationResultProperty(validationFacade.RequestResource.Id, properties.Key, person, string.Format(Common.Constants.Messages.Person.PersonNotFound, person), criticalError));
                        continue;
                    }
                }
                catch (ArgumentException)
                {
                    continue;
                }
            }
        }
Example #3
0
        private async Task CheckRequesterIsValid(string requester)
        {
            Guard.IsValidEmail(requester);

            if (!_userInfoService.HasApiToApiPrivileges() && requester != _userInfoService.GetEmail())
            {
                throw new BusinessException(Common.Constants.Messages.Resource.Delete.MarkedDeletedFailedInvalidRequester);
            }

            var validRequester = await _remoteAppDataService.CheckPerson(requester);

            if (!validRequester)
            {
                throw new BusinessException(Common.Constants.Messages.Resource.Delete.MarkedDeletedFailedInvalidRequester);
            }
        }