Exemplo n.º 1
0
        void AccountSubGroupsManage_Save(object sender, ModuleModeEventArgs e)
        {
            AuthoriseRequestSid();

            switch (e.Mode)
            {
                case "create":
                    try
                    {
                        subUserGroup = SubUserGroup.Create(core, (UserGroup)Owner, core.Http.Form["title"], core.Http.Form["slug"], core.Http.Form["description"], core.Http.Form["group-type"]);

                        SetRedirectUri(BuildUri());
                        core.Display.ShowMessage("Group Created", "The group has been created");
                    }
                    catch (FieldTooLongException ex)
                    {
                        switch (ex.FieldName)
                        {
                            case "sub_group_name":
                            case "sub_group_name_display":
                                SetError("The group name is too long, please choose another");
                                break;
                            case "sub_group_abstract":
                                SetError("The group description is too long, please use a shorter description");
                                break;
                            default:
                                // Generic error occured
                                core.Functions.ThrowError();
                                break;
                        }
                    }
                    catch (GroupNameNotUniqueException)
                    {
                        SetError("A group with the same name already exists");
                    }
                    catch (Exception ex)
                    {
                        DisplayError(ex.ToString());
                    }
                    break;
                case "edit":

                    string groupType = core.Http.Form["group-type"];
                    switch (groupType.ToLower())
                    {
                        case "open":
                            groupType = "OPEN";
                            break;
                        case "request":
                            groupType = "REQUEST";
                            break;
                        case "closed":
                            groupType = "CLOSED";
                            break;
                        case "private":
                            groupType = "PRIVATE";
                            break;
                        default:
                            return;
                    }

                    subUserGroup.Title = core.Http.Form["title"];
                    subUserGroup.Description = core.Http.Form["description"];
                    subUserGroup.SubGroupType = groupType;

                    subUserGroup.Update();

                    break;
            }
        }