Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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
                }));
            }
        }