public async Task UpdateStatus(long id, FollowStatus status)
        {
            var query = @"update users.follows
                        set status = @status::users.followstatus
                        where id = @id";

            using (var con = _dbConnectionFactory.GetDbConnection())
            {
                await con.ExecuteAsync(query, new { id = id, status = status.ToString() });
            }
        }
Exemple #2
0
        public async Task <ApiResponse> GetDetailsForUser(long id, string userName)
        {
            try
            {
                CategoryDetailsForUser categoryDetailsForUser = new();

                var entity = await _entityRepository.TableNoTracking
                             .Include(x => x.Parent)
                             .Include(x => x.CategoryFollowers).SingleOrDefaultAsync(x => x.Id == id);

                var user             = _userCServices.GetCurrent(userName);
                var userId           = user != null ? user.Id : 0;
                var categoryFollower = await _categoryFollowersRepository.TableNoTracking
                                       .Where(x => x.CategoryId == id && x.UserCId == userId).SingleOrDefaultAsync();

                FollowStatus followStatus = categoryFollower != null ? categoryFollower.Status : FollowStatus.UnFollow;
                categoryDetailsForUser.Category = new CategoryForUser()
                {
                    Category = entity, Status = followStatus
                };

                var childCategories = await GetChildCategories(entity);

                foreach (var item in childCategories)
                {
                    var childCategoryFollower = await _categoryFollowersRepository.TableNoTracking
                                                .Where(x => x.CategoryId == item.Id && x.UserCId == userId).SingleOrDefaultAsync();

                    FollowStatus childFollowStatus = childCategoryFollower != null ? childCategoryFollower.Status : FollowStatus.UnFollow;
                    categoryDetailsForUser.ChildCategories.Add(new CategoryForUser()
                    {
                        Category = item, Status = childFollowStatus
                    });
                }
                return(ApiResponse.Create(HttpStatusCode.OK, categoryDetailsForUser));
            }
            catch (Exception)
            {
                return(ApiResponse.Create(HttpStatusCode.InternalServerError, null, "InternalServerError_Error"));
            }
        }
Exemple #3
0
 public static FollowStatusView ConvertToFollowStatusView(this FollowStatus followStatus)
 {
     return(Mapper.Map <FollowStatus, FollowStatusView>(followStatus));
 }