Ejemplo n.º 1
0
        public async Task <ActionResult> EditUserGroup(string groupName = null)
        {
            var model = new PuckUserGroupViewModel();

            ViewBag.Level0Type = typeof(PuckUserGroupViewModel);
            if (!string.IsNullOrEmpty(groupName))
            {
                var meta = repo.GetPuckMeta().Where(x => x.Name == DBNames.UserGroup && x.Key == groupName).FirstOrDefault();
                if (meta != null)
                {
                    model.Name  = meta.Key;
                    model.Id    = meta.Id;
                    model.Roles = meta.Value?.Split(',', StringSplitOptions.RemoveEmptyEntries)?.ToList();
                }
            }
            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <JsonResult> EditUserGroup(PuckUserGroupViewModel userGroup, bool edit)
        {
            bool   success = false;
            string message = "";

            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception("model invalid.");
                }
                if (!edit)
                {
                    var existingMeta = repo.GetPuckMeta().Where(x => x.Name == DBNames.UserGroup && x.Name.ToLower() == (string.IsNullOrEmpty(userGroup.Name)?"":userGroup.Name).ToLower()).FirstOrDefault();
                    if (existingMeta != null)
                    {
                        throw new Exception("A group with that name already exists.");
                    }
                    //add puck meta
                    var meta = new PuckMeta()
                    {
                        Name  = DBNames.UserGroup,
                        Key   = userGroup.Name,
                        Value = string.Join(",", userGroup.Roles)
                    };
                    repo.AddPuckMeta(meta);
                    repo.SaveChanges();
                    success = true;
                }
                else
                {
                    //edit puck meta
                    var meta = repo.GetPuckMeta().Where(x => x.Name == DBNames.UserGroup && x.Id == userGroup.Id).FirstOrDefault();

                    if (meta != null)
                    {
                        meta.Key   = userGroup.Name;
                        meta.Value = string.Join(",", userGroup.Roles);
                    }
                    else
                    {
                        meta = new PuckMeta()
                        {
                            Name  = DBNames.UserGroup,
                            Key   = userGroup.Name,
                            Value = string.Join(",", userGroup.Roles)
                        };
                        repo.AddPuckMeta(meta);
                    }
                    repo.SaveChanges();
                    success = true;
                }
            }
            catch (Exception ex)
            {
                log.Log(ex);
                success = false;
                message = ex.Message;
            }
            return(Json(new { success = success, message = message }));
        }