Beispiel #1
0
        private static List <Rule> GetRules(FlagDto flag)
        {
            var rules = flag.rules.Select(x => new Rule(x.isDefault, x.priority,
                                                        x.conditions.Select(GetCondition), GetVariations(x.splits, flag.variations.ToList())));

            return(rules.OrderBy(x => x.GetPriority()).ToList());
        }
        public IActionResult Flag(FlagDto dto)
        {
            var userId = GetLoggedInUser().Id;

            if (_context.Flags.Any(a => a.UserId == userId && a.PostId == dto.PostId))
            {
                return(BadRequest("The report already exists."));
            }

            var post = _context.Posts.Single(p => p.ID == dto.PostId);

            post.FlagCount++;
            //checkCountAndSendEmail(post);

            var flag = new Flag
            {
                UserId = userId,
                PostId = dto.PostId
            };

            _context.Flags.Add(flag);
            _context.Posts.Update(post);
            _context.SaveChanges();

            return(Ok());
        }
        public IActionResult UnFlag(FlagDto dto)
        {
            var userId = GetLoggedInUser().Id;

            var flag = _context.Flags.Single(f => f.PostId == dto.PostId && f.UserId == userId);

            var post = _context.Posts.Single(p => p.ID == flag.PostId);

            post.FlagCount--;

            _context.Flags.Remove(flag);
            _context.Posts.Update(post);
            _context.SaveChanges();

            return(Ok());
        }
Beispiel #4
0
        private static FeatureFlag GetFeatureFlag(FlagDto flag)
        {
            var variations   = flag.variations?.Select(GetVariation).ToList();
            var rules        = GetRules(flag);
            var offVariation = GetVariation(flag.variations?.First(x => x.id == flag.offVariation));

            return(new FeatureFlag
            {
                Name = flag.name,
                Key = flag.key,
                Variations = variations,
                PrerequisiteFlags = GetPrerequisiteFlags(flag.prerequisiteFlags),
                Enabled = flag.state == FlagStatus.Active,
                Rules = rules,
                OffVariation = offVariation,
                DefaultRule = rules?.First(x => x.IsDefault()),
                ExpectedVariationKey = null,
                Type = flag.type.ToString()
            });
        }
Beispiel #5
0
 public IActionResult AddOrRemoveFlag(int id, [FromBody] FlagBasic flagBasic)
 {
     if (_user != null)
     {
         if (_ctx.GetAllComment().Result.Any(c => c.Id == id))
         {
             var flag  = new FlagDto();
             var flags = _ctx.GetCommentById(id).Flags.ToList();
             if (!flags.Any(v => v.AvatarId == _user.Id))
             {
                 if (!ModelState.IsValid)
                 {
                     return(BadRequest("Invalid message entry"));
                 }
                 flag.ReasonText      = flagBasic.ReasonText;
                 flag.CommentEntityId = id;
                 flag.AvatarId        = _user.Id;
                 var mappedFlag = _mapper.Map <FlagEntity>(flag);
                 if (_ctx.AddOrRemoveFlag(mappedFlag))
                 {
                     return(Ok($"An Upvoted has been ADDED on Post:{id} by {_user.Name}"));
                 }
             }
             if (flags.Any(v => v.AvatarId == _user.Id))
             {
                 var result = flags.FirstOrDefault(c => c.AvatarId == _user.Id);
                 if (_ctx.AddOrRemoveFlag(result, _user.Id))
                 {
                     return(Ok($"An Upvoted has been REMOVED on Post:{id} by {_user.Name}"));
                 }
                 return(NotFound("No UpVote was found for REMOVAL."));
             }
         }
     }
     return(Unauthorized("No user is logged in."));
 }