public static IEnumerable <SelectListItem> AsSelectList(this ProfileField Field, string SelectedValue, string UndefinedText = "(not selected)")
 {
     string[] selected = new string[0];
     if (!string.IsNullOrEmpty(SelectedValue))
     {
         selected = SelectedValue.Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
     }
     return(AsSelectList(Field, selected, UndefinedText));
 }
        public static MvcHtmlString AsOptionList(this ProfileField Field, string SelectedValue, string UndefinedText = "(not selected)")
        {
            IEnumerable <SelectListItem> list = AsSelectList(Field, SelectedValue, UndefinedText);
            StringBuilder html = new StringBuilder();

            foreach (SelectListItem item in list)
            {
                html.AppendFormat("<option value=\"{0}\" title=\"{1}\" {2}>{1}</option>\r\n", item.Value, item.Text, item.Selected ? "selected" : "");
            }
            return(new MvcHtmlString(html.ToString()));
        }
Example #3
0
        public JsonResult GetEditFieldDialog(int GroupID, int FieldID, int TabIndex)
        {
            ProfileField Field = ProfileFields.GetBy(FieldID);
            ProfileFieldGroupFieldModel _model = new ProfileFieldGroupFieldModel(Field);

            _model.tabIndex = TabIndex;

            return(Json(new
            {
                Html = this.RenderPartialView(@"_EditField", _model),
            }, JsonRequestBehavior.AllowGet));
        }
Example #4
0
        public JsonResult RemoveProfileFields(int[] Fields)
        {
            foreach (int Field in Fields)
            {
                ProfileField field = ProfileFields.GetBy(Field);
                field.Delete();
                AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format("The \"{0}\" field has been deleted.", field.FieldName));
            }

            RequestResultModel _model = new RequestResultModel();

            _model.InfoType = RequestResultInfoType.Success;
            _model.Message  = "All selected fields (and their data) have been deleted.";

            return(Json(new
            {
                NotifyType = NotifyType.PageInline,
                Html = this.RenderPartialView(@"_RequestResultPageInLine", _model),
            }, JsonRequestBehavior.AllowGet));
        }
        public static IEnumerable <SelectListItem> AsSelectList(this ProfileField Field, string[] SelectedValues, string UndefinedText = "(not selected)")
        {
            List <SelectListItem> items = new List <SelectListItem>();

            if (!string.IsNullOrEmpty(UndefinedText))
            {
                items.Add(new SelectListItem()
                {
                    Value = "", Text = UndefinedText, Selected = (SelectedValues == null || SelectedValues.Length == 0)
                });
            }
            foreach (string value in Field.Options.Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries))
            {
                items.Add(new SelectListItem()
                {
                    Text     = value,
                    Value    = value,
                    Selected = SelectedValues.Contains(value)
                });
            }
            return(items);
        }
Example #6
0
 public ProfileFieldGroupFieldModel(ProfileField Field)
 {
     this.Field = Field;
 }
Example #7
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));
        }
Example #8
0
 public static ProfileFieldDto ToDto(this ProfileField profileField)
 {
     return(profileField.MapTo <ProfileField, ProfileFieldDto>());
 }
 public static MvcHtmlString BooleanAsRadio(this HtmlHelper <UserProfile> html, ProfileField Field, bool?value)
 {
     throw new NotImplementedException();
 }
Example #10
0
        public ActionResult SaveProfile(List <ProfileFieldInfo> FieldInfo, string TimeZoneID)
        {
            System.Threading.Thread.Sleep(1000);
            RequestResultModel _model = new RequestResultModel();

            _model.InfoType = RequestResultInfoType.ErrorOrDanger;
            _model.Message  = "";

            // Check mandatory fields
            foreach (ProfileFieldInfo Field in FieldInfo)
            {
                ProfileField profileField = ProfileFields.GetBy(int.Parse(Field.ID));
                if (profileField.IsMandatory == 1 && (Field.Value == null || Field.Value.Trim().Length == 0))
                {
                    _model.Message += String.Format("<li>{0}</li>", String.Format(GetLabel("Account.CreateAccount.Mandatory"), profileField.FieldName));
                }

                if (profileField.IsMandatory == 1 && profileField.FieldTypeID == ProfileFieldTypeEnum.CheckBox && Field.Value != null && Field.Value.ToLower() == "false")
                {
                    _model.Message += String.Format("<li>{0}</li>", String.Format(GetLabel("Account.CreateAccount.Mandatory"), profileField.FieldName));
                }
            }

            if (_model.Message.Length > 0)
            {
                _model.Message = String.Format("<ul class=\"error-message-list\">{0}</ul>", _model.Message);
                return(Json(new
                {
                    Status = RequestResultInfoType.ErrorOrDanger,
                    NotifyType = NotifyType.DialogInline,
                    Message = HttpUtility.HtmlDecode(this.RenderPartialView(@"_RequestResultPageInLine", _model))
                }, JsonRequestBehavior.AllowGet));
            }

            if (Profile.Member.TimeZoneID != TimeZoneID)
            {
                AuditEvent.AppEventInfo(AppSession.Profile.Member.Email, String.Format("Member updated time zone to: \"{0}\" ", Profile.Member.TimeZoneID));
            }

            Profile.Member.TimeZoneID = TimeZoneID;
            Profile.Member.UpdateTimeZone();

            String FieldValues = "";
            List <MemberProfileField> memberProfileFields = MemberProfileFields.GetByMember(Profile.Member.MemberID);

            foreach (ProfileFieldInfo Field in FieldInfo)
            {
                String Value = Field.Value != null?Field.Value.Trim() : Field.Value;

                ProfileField       profileField       = ProfileFields.GetBy(int.Parse(Field.ID));
                MemberProfileField memberProfileField = MemberProfileFields.GetField(memberProfileFields, int.Parse(Field.ID));

                if (profileField.Encrypted == 1 && memberProfileField.FieldValue != null && memberProfileField.FieldValue.Length > 0)
                {
                    memberProfileField.FieldValue = Encryptor.DecryptStringAES(memberProfileField.FieldValue, AppSession.EncryptionKey);
                }

                if (Value != memberProfileField.FieldValue)
                {
                    FieldValues += String.Format("<b>Name</b>:  {0} <b>Before:</b>  \"{1}\" <b>Now:</b>  \"{2}\"<br/>", profileField.FieldName, memberProfileField.FieldValue, Value);
                }

                memberProfileField.MemberID   = Profile.Member.MemberID;
                memberProfileField.FieldID    = int.Parse(Field.ID);
                memberProfileField.FieldValue = Value;

                if (profileField.Encrypted == 1 && memberProfileField.FieldValue != null && memberProfileField.FieldValue.Length > 0)
                {
                    memberProfileField.FieldValue = Encryptor.EncryptStringAES(memberProfileField.FieldValue, AppSession.EncryptionKey);
                }

                memberProfileField.Save();
            }

            memberProfileFields = MemberProfileFields.GetByMember(Profile.Member.MemberID);

            List <MemberFieldNameValue> MemberFieldNameValues = new List <MemberFieldNameValue>();

            foreach (MemberProfileField memberField in memberProfileFields)
            {
                MemberFieldNameValues.Add(new MemberFieldNameValue {
                    Name = memberField.ProfileFieldID.ToString(), Value = memberField.FieldValue, Type = (int)ProfileFields.GetBy(memberField.FieldID).FieldTypeID
                });
            }

            _model.Message  = "Your profile has been updated successfully.";
            _model.InfoType = RequestResultInfoType.Success;

            AuditEvent.AppEventInfo(AppSession.Profile.Member.Email, String.Format("Profile of \"{0}\" {1} member has been updated successfully.", AppSession.Profile.Member.Name, AppSession.Profile.Member.Email), AuditEvent.GetSessionDetails(FieldValues));

            return(Json(new
            {
                Status = RequestResultInfoType.Success,
                NotifyType = NotifyType.DialogInline,
                Message = HttpUtility.HtmlDecode(this.RenderPartialView(@"_RequestResultPageInLine", _model)),
                MemberFields = MemberFieldNameValues,
                TimeZoneID = Profile.Member.TimeZoneID != null && Profile.Member.TimeZoneID.Length > 0 ? Profile.Member.TimeZoneID : ""
            }, JsonRequestBehavior.AllowGet));
        }
 public ProfileFieldModel(ProfileField Field, ProfileFieldMode Mode, String Value = "")
 {
     this.Field = Field;
     this.Mode  = Mode;
     this.Value = Value;
 }
 public ProfileFieldModel(ProfileField Field, ProfileFieldMode Mode, String Value = "")
 {
     this.Field = Field;
     this.Mode = Mode;
     this.Value = Value;
 }
 public ProfileFieldGroupFieldModel(ProfileField Field)
 {
     this.Field = Field;
 }