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)); }
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}"))); } }