Ejemplo n.º 1
0
        public async Task <DependentObjectCheckResult> CheckInUseAsync(string id, EntityHeader org, EntityHeader user)
        {
            var model = await _repo.GetModelAsync(id);

            await AuthorizeAsync(model, AuthorizeResult.AuthorizeActions.Read, user, org);

            return(await CheckForDepenenciesAsync(model));
        }
Ejemplo n.º 2
0
        public async Task <InvokeResult <InputTranslatorConfiguration> > LoadFullInputTranslatorConfigurationAsync(String id)
        {
            try
            {
                var inputTranslator = await _inputTranslatorConfigurationRepo.GetInputTranslatorConfigurationAsync(id);

                switch (inputTranslator.InputTranslatorType.Value)
                {
                case InputTranslatorConfiguration.InputTranslatorTypes.NuvAIModel:
                    if (EntityHeader.IsNullOrEmpty(inputTranslator.Model))
                    {
                        throw new InvalidDataException("Input Translator set to be NuvAI, but does not have a model object assigned.");
                    }

                    inputTranslator.Model.Value = await _modelRepo.GetModelAsync(inputTranslator.Model.Id);

                    if (inputTranslator.Model.Value == null)
                    {
                        throw new RecordNotFoundException("Model", inputTranslator.Model.Id);
                    }

                    if (EntityHeader.IsNullOrEmpty(inputTranslator.ModelRevision) &&
                        EntityHeader.IsNullOrEmpty(inputTranslator.Model.Value.PreferredRevision))
                    {
                        throw new InvalidDataException("Input Translator does not have a model revision, model does not have a preferred revision.");
                    }

                    if (EntityHeader.IsNullOrEmpty(inputTranslator.ModelRevision))
                    {
                        inputTranslator.ModelRevision.Value = inputTranslator.Model.Value.Revisions.Where(rev => rev.Id == inputTranslator.Model.Value.PreferredRevision.Id).FirstOrDefault();
                        if (inputTranslator.ModelRevision.Value == null)
                        {
                            throw new InvalidDataException("Could not find preferred model revision.");
                        }
                    }
                    else
                    {
                        inputTranslator.ModelRevision.Value = inputTranslator.Model.Value.Revisions.Where(rev => rev.Id == inputTranslator.ModelRevision.Id).FirstOrDefault();
                        if (inputTranslator.ModelRevision.Value == null)
                        {
                            throw new InvalidDataException("Could not find specified model revision.");
                        }
                    }

                    break;
                }


                return(InvokeResult <InputTranslatorConfiguration> .Create(inputTranslator));
            }
            catch (RecordNotFoundException)
            {
                return(InvokeResult <InputTranslatorConfiguration> .FromErrors(ErrorCodes.CouldNotLoadInputTranslator.ToErrorMessage($"ModuleId={id}")));
            }
        }