public override async Task ChangeActivityStatusAsync(int id, EntityActivityStatusEnum status, int?langId = null) { // set same status for nested categories var entities = (await _repository.WhereAsync(x => x.ParentCategoryId == id && x.ParentCategoryLanguageId == langId))?.ToList(); if (entities != null && entities.Count > 0) { foreach (var item in entities) { // second level of nested categories var entitiesNext = (await _repository.WhereAsync(x => x.ParentCategoryId == item.Id && x.ParentCategoryLanguageId == langId))?.ToList(); if (entitiesNext != null && entitiesNext.Count > 0) { foreach (var itemNext in entitiesNext) { await base.ChangeActivityStatusAsync(itemNext.Id, status, langId); } } await base.ChangeActivityStatusAsync(item.Id, status, langId); } } await base.ChangeActivityStatusAsync(id, status, langId); }
public virtual async Task ChangeActivityStatusAsync(TKey id, EntityActivityStatusEnum activityStatus, int?langId = null) { var type = typeof(TEntity); Expression <Func <TEntity, bool> > filter = null; if (type.GetInterface(typeof(IBaseLanguageEntity <TKey>).Name) != null && langId != null) { filter = x => ((IBaseLanguageEntity <TKey>)x).LanguageId.Equals(langId) && x.Id.Equals(id); } var entity = await _repository.GetAsync(id, filter); entity.ActivityStatus = activityStatus; await _repository.UpdateAsync(entity); }
public virtual async Task <ActionResult <SuccessResponseApiModel> > ChangeActivityStatus(TKey id, [FromBody] EntityActivityStatusEnum activityStatus) { await _service.ChangeActivityStatusAsync(id, activityStatus); return(SuccessResult(new SuccessResponseApiModel() { Response = "success" })); }