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()); }
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() }); }
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.")); }