public AddGroupReturn AddGroup(AddGroupParameters model) { AddGroupReturn ret = new AddGroupReturn(); ret.IsActionSucceed = false; bool urlKeyExist = _context.Set <Group>().Any(p => p.UrlKey == model.UrlKey); if (urlKeyExist) { ret.Errors.Add("1", "Url key exist!"); return(ret); } Group group = new Group() { DateUtcAdd = DateTime.UtcNow, DateUtcModified = DateTime.UtcNow, Description = model.Description, Name = model.Name, UrlKey = model.UrlKey, About = model.About, ColorAlpha = model.ColorAlpha, }; _context.Set <Group>().Add(group); if (_context.SaveChanges() > 0) { ret.IsActionSucceed = true; ret.Group = group; return(ret); } ret.IsActionSucceed = false; return(ret); }
public IActionResult AddGroup([FromBody] AddGroupParameters model) { AddGroupReturn ret = new AddGroupReturn(); if (!ModelState.IsValid) { ret.IsActionSucceed = false; ret.Errors = new Dictionary <string, string>(); foreach (var modelState in ModelState.Values) { foreach (var error in modelState.Errors) { ret.Errors.Add(error.Exception.HResult.ToString(), error.ErrorMessage); } } return(Ok(Json(ret))); } Claim idClaim = User.FindFirst("sub"); ret = _groupActionService.AddGroup(model); return(Ok(ret)); }
public async Task <IHttpActionResult> Add(AddGroupParameters newGroup) { if (newGroup == null) { // use this to return status code // https://www.tutorialsteacher.com/webapi/action-method-return-type-in-web-api return(BadRequest()); } //Check Captcha var captchaCode = HttpContext.Current.Session["Captcha"].ToString(); if (captchaCode != newGroup.Captcha) { return(BadRequest("Captcha does not match")); } using (var db = new ZapContext()) { // Ensure not a duplicate group! var cleanName = newGroup.GroupName.CleanUnicode().SanitizeXSS(); bool exists = await GroupExists(cleanName, -1, db).ConfigureAwait(true); if (exists) { return(BadRequest()); } var user = await GetCurrentUser(db).ConfigureAwait(true); var icon = await GetGroupIcon(newGroup.ImageId, db).ConfigureAwait(true); Group g = new Group() { GroupName = cleanName, TotalEarned = 0.0, TotalEarnedToDistribute = 0.0, Moderators = new List <User>(), Members = new List <User>(), Administrators = new List <User>(), Tags = newGroup.Tags.CleanUnicode().SanitizeXSS(), Icon = null, //m.Icon, // This field is now depricated - will be removed GroupImage = icon, CreationDate = DateTime.UtcNow, DefaultLanguage = newGroup.Language == null ? "en" : newGroup.Language, // Ensure value }; g.Members.Add(user); g.Moderators.Add(user); g.Administrators.Add(user); db.Groups.Add(g); await db.SaveChangesAsync().ConfigureAwait(true); return(Ok(new AddGroupResponse() { success = true, GroupId = g.GroupId })); } }