/// <summary> /// Удалить элемент. /// </summary> /// <param name="input">Ввод.</param> /// <returns>Задача.</returns> public async Task DeleteItem(ModProductBaseJobItemGetInput input) { using var source = CreateDbContext(); var obj = await source.Product.FirstAsync( x => x.Id == input.DataId ).CoreBaseExtTaskWithCurrentCulture(false); source.Product.Remove(obj); await source.SaveChangesAsync().CoreBaseExtTaskWithCurrentCulture(false); }
/// <summary> /// Мод "Product". Основа. Расширение. Применить. Фильтрацию. /// </summary> /// <param name="query">Запрос.</param> /// <param name="input">Ввод.</param> /// <returns>Запрос с учётом фильтрации.</returns> public static IQueryable <DataEntityObjectProduct> ModProductBaseExtApplyFiltering( this IQueryable <DataEntityObjectProduct> query, ModProductBaseJobItemGetInput input ) { if (input.DataId > 0) { query = query.Where(x => x.Id == input.DataId); } if (input.DataName != null) { query = query.Where(x => x.Name == input.DataName); } return(query); }
) BuildActionItemDelete(ModProductBaseJobItemGetInput input) { var job = AppJobItemDelete; Task execute() => job.Execute(input); void onSuccess(CoreBaseExecutionResult result) { job.OnSuccess(ExtLogger, result, input); } void onError(Exception ex, CoreBaseExecutionResult result) { job.OnError(ex, ExtLogger, result); } return(execute, onSuccess, onError); }
) BuildActionItemGet(ModProductBaseJobItemGetInput input) { var job = AppJobItemGet; Task <ModProductBaseJobItemGetOutput> execute() => job.Execute(input); void onSuccess(ModProductBaseJobItemGetResult result) { job.OnSuccess(ExtLogger, result, input); } void onError(Exception ex, ModProductBaseJobItemGetResult result) { job.OnError(ex, ExtLogger, result); } return(execute, onSuccess, onError); }
/// <summary> /// Получить элемент. /// </summary> /// <param name="input">Ввод.</param> /// <returns>Задача с полученными данными.</returns> public async Task <ModProductBaseJobItemGetOutput> GetItem( ModProductBaseJobItemGetInput input ) { ModProductBaseJobItemGetOutput result = null; using (var source = CreateDbContext()) { var entityProduct = await source.Product .Include(x => x.ObjectProductCategory) .Include(x => x.ObjectsProductProductFeature) .ModProductBaseExtApplyFiltering(input) .FirstOrDefaultAsync() .CoreBaseExtTaskWithCurrentCulture(false); if (entityProduct != null) { result = CreateItem(entityProduct); if (result.ObjectsProductProductFeature != null) { var idsOfProductFeature = result.ObjectsProductProductFeature .Select(x => x.ObjectProductFeatureId) .ToArray(); if (idsOfProductFeature.Any()) { var enities = await source.ProductFeature .Where(x => idsOfProductFeature.Contains(x.Id)) .ToArrayAsync() .CoreBaseExtTaskWithCurrentCulture(false); if (enities.Any()) { InitItemProductFeature(result, enities); } } } } } return(result); }
public async Task <IActionResult> Get([FromQuery] ModProductBaseJobItemGetInput input) { var result = new ModProductBaseJobItemGetResult(); var(execute, onSuccess, onError) = MyModel.BuildActionItemGet(input); try { result.Data = await execute().CoreBaseExtTaskWithCurrentCulture(false); onSuccess(result); } catch (Exception ex) { onError(ex, result); } return(Ok(result)); }
/// <inheritdoc/> protected sealed override void DoRun() { var input = new ModProductBaseJobItemGetInput { DataId = 1 }; var result = new CoreBaseExecutionResultWithData <ModProductBaseJobItemGetOutput>(); try { result.Data = Job.Execute(input).CoreBaseExtTaskWithCurrentCulture(false).GetResult(); Job.OnSuccess(Logger, result, input); } catch (Exception ex) { Job.OnError(ex, Logger, result); } var msg = result.CoreBaseExtJsonSerialize(CoreBaseExtJson.OptionsForLogger); Show(msg, false); }