public async Task <IActionResult> Update([FromRoute] Guid?domainId, [FromRoute] string code, [FromBody] Dictionary <string, string> lookupData) { IActionResult result = null; try { if (result == null && (!domainId.HasValue || Guid.Empty.Equals(domainId.Value))) { result = BadRequest("Missing domain id parameter value"); } if (result == null && string.IsNullOrEmpty(code)) { result = BadRequest("Missing lookup code parameter value"); } if (result == null) { using ILifetimeScope scope = _container.BeginLifetimeScope(); SettingsFactory settingsFactory = scope.Resolve <SettingsFactory>(); CoreSettings settings = settingsFactory.CreateCore(_settings.Value); ILookupFactory factory = scope.Resolve <ILookupFactory>(); ILookup innerLookup = null; Func <CoreSettings, ILookupSaver, ILookup, Task> save = (sttngs, svr, lkup) => svr.Update(sttngs, lkup); if (!(await VerifyDomainAccount(domainId.Value, settingsFactory, _settings.Value, scope.Resolve <IDomainService>()))) { result = StatusCode(StatusCodes.Status401Unauthorized); } if (result == null) { innerLookup = await factory.GetByCode(settings, domainId.Value, code); } if (result == null && innerLookup == null) { innerLookup = factory.Create(domainId.Value, code); save = (sttngs, svr, lkup) => svr.Create(sttngs, lkup); } if (result == null && innerLookup != null) { innerLookup.Data = lookupData; await save(settings, scope.Resolve <ILookupSaver>(), innerLookup); IMapper mapper = MapperConfigurationFactory.CreateMapper(); result = Ok( mapper.Map <Lookup>(innerLookup) ); } } } catch (Exception ex) { using (ILifetimeScope scope = _container.BeginLifetimeScope()) { await LogException(ex, scope.Resolve <IExceptionService>(), scope.Resolve <SettingsFactory>(), _settings.Value); } result = StatusCode(StatusCodes.Status500InternalServerError); } return(result); }
public ISingleFieldToMultiselectHtmlRenderer <TModel, TValue> DataSource(Action <ILookupDataSource> provider) { var dsProvider = new MultiSelectLookupDataSourceProvider(); provider(dsProvider); ILookupFactory factory = dsProvider.LazyFactory.Compile()(); ILookupFunction lookup = factory.Create <ILookupFunction>(dsProvider.TargetLookup); var lookups = lookup.GetRecordsForLookup(); _container.LookupValueFields = lookups.Select(o => MultiSelectLookup.Create(o.Text, o.Value)); return(new SingleFieldToMultiselectHtmlRenderer <TModel, TValue>(_container)); }
public async Task <IActionResult> GetHistoryByCode([FromRoute] Guid?domainId, [FromRoute] string code) { IActionResult result = null; try { if (result == null && (!domainId.HasValue || Guid.Empty.Equals(domainId.Value))) { result = BadRequest("Missing domain id parameter value"); } if (result == null && string.IsNullOrEmpty(code)) { result = BadRequest("Missing lookup code parameter value"); } if (result == null) { using ILifetimeScope scope = _container.BeginLifetimeScope(); SettingsFactory settingsFactory = scope.Resolve <SettingsFactory>(); ILookupFactory factory = scope.Resolve <ILookupFactory>(); if (!(await VerifyDomainAccount(domainId.Value, settingsFactory, _settings.Value, scope.Resolve <IDomainService>()))) { result = StatusCode(StatusCodes.Status401Unauthorized); } else { ILookup lookup = await factory.GetByCode(settingsFactory.CreateCore(_settings.Value), domainId.Value, code); if (lookup == null) { result = NotFound(); } else { IMapper mapper = MapperConfigurationFactory.CreateMapper(); result = Ok( (await lookup.GetHistory(settingsFactory.CreateCore(_settings.Value))) .Select <ILookupHistory, LookupHistory>(hist => mapper.Map <LookupHistory>(hist)) ); } } } } catch (Exception ex) { using (ILifetimeScope scope = _container.BeginLifetimeScope()) { await LogException(ex, scope.Resolve <IExceptionService>(), scope.Resolve <SettingsFactory>(), _settings.Value); } result = StatusCode(StatusCodes.Status500InternalServerError); } return(result); }
public async Task <IActionResult> GetCodes([FromRoute] Guid?domainId) { IActionResult result = null; try { if (result == null && (!domainId.HasValue || Guid.Empty.Equals(domainId.Value))) { result = BadRequest("Missing domain id parameter value"); } if (result == null) { using ILifetimeScope scope = _container.BeginLifetimeScope(); SettingsFactory settingsFactory = scope.Resolve <SettingsFactory>(); ILookupFactory factory = scope.Resolve <ILookupFactory>(); if (!(await VerifyDomainAccount(domainId.Value, settingsFactory, _settings.Value, scope.Resolve <IDomainService>()))) { result = StatusCode(StatusCodes.Status401Unauthorized); } else { result = Ok( await factory.GetCodes(settingsFactory.CreateCore(_settings.Value), domainId.Value) ); } } } catch (Exception ex) { using (ILifetimeScope scope = _container.BeginLifetimeScope()) { await LogException(ex, scope.Resolve <IExceptionService>(), scope.Resolve <SettingsFactory>(), _settings.Value); } result = StatusCode(StatusCodes.Status500InternalServerError); } return(result); }
private LookupProvider() { _factory = new LookupFactory(ReflectionHelper.Instance, new UnitOfWorkWrapper(), "Pfizer.Service"); }