示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        public virtual async Task <ActionResult <SuccessResponseApiModel> > ChangeActivityStatus(TKey id, [FromBody] EntityActivityStatusEnum activityStatus)
        {
            await _service.ChangeActivityStatusAsync(id, activityStatus);

            return(SuccessResult(new SuccessResponseApiModel()
            {
                Response = "success"
            }));
        }