Пример #1
0
        public async Task <UserViewModel> AddOrUpdateUserFields(UserAddFieldRequest request)
        {
            User user = await userRepository.GetByIdAsync(ObjectId.Parse(request.UserId));

            if (user != null)
            {
                FilterDefinition <ObjectLevel> buidler = Builders <ObjectLevel> .Filter.Eq("object_id", request.UserId);

                List <ObjectLevel> existObjectLevels = (await objectLevelRepository.FindListAsync(buidler)).ToList();

                foreach (string item in request.FieldId)
                {
                    var existObjectLevel = existObjectLevels.FirstOrDefault(x => x.FieldId == item);
                    if (existObjectLevel != null)
                    {
                        if (existObjectLevel.IsActive == false)
                        {
                            existObjectLevel.IsActive = true;
                        }

                        existObjectLevel.ModifiedDate = DateTime.Now;
                        await objectLevelRepository.UpdateAsync(existObjectLevel, existObjectLevel.Id);
                    }
                    else
                    {
                        ObjectLevel objectLevel = new ObjectLevel()
                        {
                            LevelId  = Constants.LevelConstants.LEVEL_0_ID,
                            FieldId  = item,
                            ObjectId = user.OId,
                            Point    = 0
                        };
                        await objectLevelRepository.AddAsync(objectLevel);
                    }
                }

                foreach (var ex in existObjectLevels)
                {
                    if (request.FieldId.FirstOrDefault(x => x == ex.FieldId) == null)
                    {
                        ex.IsActive     = false;
                        ex.ModifiedDate = DateTime.Now;
                        await objectLevelRepository.UpdateAsync(ex, ex.Id);
                    }
                }
                return(mapper.Map <UserViewModel>(user));
            }
            else
            {
                throw new Exception("Không tìm thấy user");
            }
        }
Пример #2
0
        public async Task <IActionResult> AddFieldsForUser(UserAddFieldRequest request)
        {
            var data = await levelService.AddOrUpdateUserFields(request);

            return(Ok(new ApiOkResponse(data)));
        }