Example #1
0
        public JsonResult AddField(String Name, String FieldType, String Comment, String PossibleValues, String SelectText, String IsMandatory, String ShowInSignup, String SortValues, String IsActive, String AdminUseOnly, String VerticalLayout, int FieldGroupID, bool Encrypted, int[] SelectedDomains, int[] SelectedRoles)
        {
            ProfileField profileField = ProfileFields.GetByName(Name);
            String       Message      = "";

            if (profileField.FieldID > 0 && profileField.FieldName.Trim().ToLower() == Name.Trim().ToLower())
            {
                Message = "The field \"" + Name + "\" already exists.";
            }

            if (Name.Trim().ToLower().Length == 0)
            {
                Message = "The field name should not be empty.";
            }

            if (Message != "")
            {
                RequestResultModel _model = new RequestResultModel();
                _model.InfoType = RequestResultInfoType.ErrorOrDanger;
                _model.Message  = Message;

                AuditEvent.AppEventWarning(Profile.Member.Email, Message);

                return(Json(new
                {
                    NotifyType = NotifyType.DialogInline,
                    Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model),
                }, JsonRequestBehavior.AllowGet));
            }


            profileField.FieldName       = Name;
            profileField.Comment         = Comment;
            profileField.FieldTypeID     = (ProfileFieldTypeEnum)int.Parse(FieldType);
            profileField.PossibleValues  = PossibleValues;
            profileField.TextSelectValue = SelectText;
            profileField.IsMandatory     = (IsMandatory == "True" ? 1 : 0);
            profileField.ShowInSignUp    = (ShowInSignup == "True" ? 1 : 0);
            profileField.SortValues      = SortValues == "True" ? 1 : 0;
            profileField.IsActive        = IsActive == "True" ? 1 : 0;
            profileField.AdminUseOnly    = AdminUseOnly == "True" ? 1 : 0;
            profileField.VerticalLayout  = VerticalLayout == "True" ? 1 : 0;
            profileField.FieldGroupID    = FieldGroupID;
            profileField.Encrypted       = Encrypted == true ? 1 : 0;
            profileField.Save();

            if (SelectedDomains != null)
            {
                List <Domain> _domains = Domains.Get();
                foreach (Domain _domain in _domains)
                {
                    DomainProfileField _domainField = new DomainProfileField();
                    _domainField.DomainID       = _domain.DomainID;
                    _domainField.ProfileFieldID = profileField.FieldID;

                    if (SelectedDomains.Where(t => t == _domain.DomainID).FirstOrDefault() != default(int))
                    {
                        _domainField.Save();
                    }
                }
            }

            if (SelectedRoles != null)
            {
                List <Role> _roles = Web.Admin.Logic.Collections.Roles.Get();
                foreach (Role _role in _roles)
                {
                    RoleProfileField _roleField = new RoleProfileField();
                    _roleField.RoleID         = _role.RoleID;
                    _roleField.ProfileFieldID = profileField.FieldID;

                    if (SelectedRoles.Where(t => t == _role.RoleID).FirstOrDefault() != default(int))
                    {
                        _roleField.Save();
                    }
                }
            }

            AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format("The \"{0}\" field has been added.", Name));

            return(Json(new
            {
                NotifyType = -1,
                Html = "",
            }, JsonRequestBehavior.AllowGet));
        }