public static string GetFormFieldValue2String(this HttpRequestBase request, WebFormField webFormField) { string formFieldName = "Page.WebForm.item." + webFormField.Name + "_Value2"; string stringValue2 = null; if (request.Unvalidated.Form.AllKeys.Contains(formFieldName)) { stringValue2 = request.Unvalidated.Form.Get(formFieldName) ?? string.Empty; } if (stringValue2 == null) { formFieldName = "WebForm.item." + webFormField.Name + "_Value2";; if (request.Unvalidated.Form.AllKeys.Contains(formFieldName)) { stringValue2 = request.Unvalidated.Form.Get(formFieldName) ?? string.Empty; } } if (stringValue2 == null) { formFieldName = "item." + webFormField.Name + "_Value2";; if (request.Unvalidated.Form.AllKeys.Contains(formFieldName)) { stringValue2 = request.Unvalidated.Form.Get(formFieldName) ?? string.Empty; } } return(stringValue2); }
public static void SetDefaultsForNew(this WebFormField webFormField, WebForm webForm) { if (webForm != null) { webFormField.WebForm = webForm; webFormField.WebFormId = webForm.WebFormId; webFormField.ClientId = webForm.ClientId; webFormField.Order = webForm.WebFormFields.Count == 0 ? 100 : webForm.WebFormFields.Max(wf => wf.Order) + 10; webFormField.Name = "New Field"; bool nameIsDirty = webForm.WebFormFields.Any(wf => wf.Name.ToLower() == webFormField.Name.ToLower()); int counter = 1; do { counter++; webFormField.Name = "New Field " + counter; nameIsDirty = webForm.WebFormFields.Any(wf => wf.Name.ToLower() == webFormField.Name.ToLower()); } while (nameIsDirty); webFormField.LabelText = webFormField.Name; webFormField.Description = webFormField.Name; } webFormField.Watermark = webFormField.Name; webFormField.Description = webFormField.Name; webFormField.DataType = GStoreValueDataType.SingleLineText; webFormField.DataTypeString = webFormField.DataType.ToDisplayName(); webFormField.IsPending = false; webFormField.EndDateTimeUtc = DateTime.UtcNow.AddYears(100); webFormField.StartDateTimeUtc = DateTime.UtcNow.AddMinutes(-1); }
private static string GetValueListItemName(this WebFormField field, string stringValue) { //convert id value to text int value; if (!int.TryParse(stringValue, out value)) { return("invalid value (not int): '" + stringValue + "'"); } if (value == 0) { return("invalid value: " + stringValue); } if (field.ValueList == null) { return("unknown value (no value list): '" + stringValue + "'"); } ValueListItem listItem = field.ValueList.ValueListItems.AsQueryable().WhereIsActive().SingleOrDefault(vli => vli.ValueListItemId == value); if (listItem == null) { return("unknown value (not found): '" + stringValue + "'"); } return("'" + listItem.Name + "'"); }
public ActionResult FieldEdit(WebFormField webFormField) { WebFormField webFormFieldOriginal = GStoreDb.WebFormFields.FindById(webFormField.WebFormFieldId); if (webFormFieldOriginal == null) { return(HttpBadRequest("webFormField not found by id: " + webFormField.WebFormFieldId)); } string originalName = webFormFieldOriginal.Name; if (originalName != webFormField.Name) { //validate new name is not taken if (webFormFieldOriginal.WebForm.WebFormFields.Any(f => (f.WebFormFieldId != webFormField.WebFormFieldId) && (f.Name.ToLower() == (webFormField.Name ?? "").ToLower()))) { ModelState.AddModelError("Name", "A field with the name '" + webFormField.Name + "' already exists. Choose a new name or edit the original."); } } if (ModelState.IsValid) { webFormField.DataTypeString = webFormField.DataType.ToDisplayName(); webFormField.UpdateAuditFields(CurrentUserProfileOrThrow); webFormField = GStoreDb.WebFormFields.Update(webFormField); GStoreDb.SaveChanges(); AddUserMessage("Web Form Field Updated", "Changes saved successfully to Web Form Field '" + webFormField.Name.ToHtml() + "' [" + webFormField.WebFormFieldId + "]", UserMessageType.Success); return(RedirectToAction("FieldIndex", new { id = webFormField.WebFormId })); } webFormField.WebForm = GStoreDb.WebForms.Single(wf => wf.WebFormId == webFormField.WebFormId); this.BreadCrumbsFunc = htmlHelper => this.WebFormFieldBreadcrumb(htmlHelper, webFormField); return(View(webFormField)); }
public static bool ActivateWebFormField(this SystemAdminBaseController controller, int webFormFieldId) { WebFormField webFormField = controller.GStoreDb.WebFormFields.FindById(webFormFieldId); if (webFormField == null) { controller.AddUserMessage("Activate Web Form Field Failed!", "Web Form Field not found by id: " + webFormFieldId, AppHtmlHelpers.UserMessageType.Danger); return(false); } if (webFormField.IsActiveDirect()) { controller.AddUserMessage("Web Form Field is already active.", "Web Form Field is already active. id: " + webFormFieldId, AppHtmlHelpers.UserMessageType.Info); return(false); } webFormField.IsPending = false; webFormField.StartDateTimeUtc = DateTime.UtcNow.AddMinutes(-1); webFormField.EndDateTimeUtc = DateTime.UtcNow.AddYears(100); controller.GStoreDb.WebFormFields.Update(webFormField); controller.GStoreDb.SaveChanges(); controller.AddUserMessage("Activated Web Form Field", "Activated Web Form Field '" + webFormField.Name.ToHtml() + "' [" + webFormField.WebFormFieldId + "]" + " - Web Form '" + webFormField.WebForm.Name.ToHtml() + "' [" + webFormField.WebForm.WebFormId + "]", AppHtmlHelpers.UserMessageType.Info); return(true); }
public ActionResult FieldDeleteConfirmed(int id) { try { WebFormField target = GStoreDb.WebFormFields.FindById(id); if (target == null) { //webForm not found, already deleted? overpost? throw new ApplicationException("Error deleting Web Form Field. Web Form Field not found. It may have been deleted by another user. Web Form Field Id: " + id); } bool deleted = GStoreDb.WebFormFields.DeleteById(id); GStoreDb.SaveChanges(); if (deleted) { AddUserMessage("Web Form Field Deleted", "Web Form Field [" + id + "] was deleted successfully.", UserMessageType.Success); } else { AddUserMessage("Deleting Web Form Field Failed!", "Deleting Web Form Field Failed. Web Form Id: " + id, UserMessageType.Danger); } return(RedirectToAction("FieldIndex", new { id = target.WebFormId })); } catch (Exception ex) { throw new ApplicationException("Error deleting Web Form Field. See inner exception for errors. Related child tables may still have data to be deleted. Web Form Field Id: " + id, ex); } }
public ActionResult FieldCreate(WebFormField webFormField) { if (webFormField.WebFormId == default(int)) { return(HttpBadRequest("Web Form id is 0")); } IGstoreDb db = GStoreDb; WebForm webForm = db.WebForms.FindById(webFormField.WebFormId); if (webForm == null) { return(HttpNotFound("Web Form not found. Web Form id: " + webFormField.WebFormId)); } if (webForm.WebFormFields.Any(f => f.Name.ToLower() == (webFormField.Name ?? "").ToLower())) { ModelState.AddModelError("Name", "A field with the name '" + webFormField.Name + "' already exists. Choose a new name or edit the original."); } if (ModelState.IsValid) { webFormField.ClientId = webForm.ClientId; webFormField.WebFormId = webForm.WebFormId; webFormField.DataTypeString = webFormField.DataType.ToDisplayName(); webFormField = GStoreDb.WebFormFields.Add(webFormField); GStoreDb.SaveChanges(); AddUserMessage("Web Form Field Created", "Web Form Field '" + webFormField.Name.ToHtml() + "' [" + webFormField.WebFormFieldId + "] created successfully", UserMessageType.Success); return(RedirectToAction("FieldIndex", new { id = webFormField.WebFormId })); } webFormField.WebForm = webForm; this.BreadCrumbsFunc = htmlHelper => this.WebFormFieldBreadcrumb(htmlHelper, webFormField); return(View(webFormField)); }
protected MvcHtmlString WebFormFieldBreadcrumb(HtmlHelper htmlHelper, WebFormField webFormField, bool ShowAsLink = false) { RouteValueDictionary routeData = null; string name = "(unknown)"; bool showLink = false; if (webFormField != null) { if (webFormField.WebFormFieldId == 0) { name = "New"; } else { showLink = ShowAsLink; routeData = new RouteValueDictionary(new { id = webFormField.WebFormFieldId }); name = "'" + webFormField.Name + "' [" + webFormField.WebFormFieldId + "]"; } } return(new MvcHtmlString( WebFormFieldsBreadcrumb(htmlHelper, webFormField.WebForm, true).ToHtmlString() + " -> " + (showLink ? htmlHelper.ActionLink(name, "FieldDetails", "WebFormSysAdmin", routeData, null).ToHtmlString() : name) )); }
/// <summary> /// Returns true if store front and client (parent record) are both active /// </summary> /// <param name="storeFront"></param> /// <returns></returns> public static bool IsActiveBubble(this WebFormField webFormField) { if (webFormField == null) { throw new ArgumentNullException("webFormField"); } return(webFormField.IsActiveDirect() && webFormField.WebForm.IsActiveBubble()); }
private static string GetValueListItemNameList(this WebFormField field, string valueIdList) { //convert id values to text string[] stringValues = valueIdList.Split(','); string returnString = string.Empty; foreach (string value in stringValues) { if (!string.IsNullOrEmpty(returnString)) { returnString += ","; } returnString += field.GetValueListItemName(value); } return(returnString); }
public ActionResult FieldDelete(int?id) { if (!id.HasValue) { return(HttpBadRequest("Web Form Field id is null")); } IGstoreDb db = GStoreDb; WebFormField webFormField = db.WebFormFields.FindById(id.Value); if (webFormField == null) { return(HttpNotFound("Web Form Field not found. Web Form Field id: " + id)); } this.BreadCrumbsFunc = htmlHelper => this.WebFormFieldBreadcrumb(htmlHelper, webFormField); return(View(webFormField)); }
public ActionResult FieldCreate(int?id) { if (!id.HasValue) { return(HttpBadRequest("Web Form id is null")); } IGstoreDb db = GStoreDb; WebForm webForm = db.WebForms.FindById(id.Value); if (webForm == null) { return(HttpNotFound("Web Form not found. Web Form id: " + id)); } WebFormField model = GStoreDb.WebFormFields.Create(); model.SetDefaultsForNew(webForm); this.BreadCrumbsFunc = htmlHelper => this.WebFormFieldBreadcrumb(htmlHelper, model); return(View(model)); }
public ActionResult FieldFastAdd(int webFormId, string stringValue) { if (string.IsNullOrEmpty(stringValue)) { AddUserMessage("Field not added", "You must enter text to add a Web Form Field", UserMessageType.Danger); return(RedirectToAction("FieldIndex", new { id = webFormId })); } WebForm webForm = GStoreDb.WebForms.FindById(webFormId); if (webForm == null) { return(HttpBadRequest("Web Form not found by id: " + webFormId)); } if (webForm.WebFormFields.Any(vl => vl.Name.ToLower() == stringValue.ToLower())) { AddUserMessage("Field not added", "Field with name '" + stringValue.ToHtml() + "' already exists in this Web Form. Use a different Field Name or remove the old Field first.", UserMessageType.Danger); return(RedirectToAction("FieldIndex", new { id = webFormId })); } WebFormField webFormField = GStoreDb.WebFormFields.Create(); webFormField.SetDefaultsForNew(webForm); webFormField.Name = stringValue; webFormField.Description = stringValue; webFormField.LabelText = stringValue; webFormField.Watermark = "Enter a " + stringValue; webFormField.HelpLabelTopText = string.Empty; webFormField.HelpLabelBottomText = string.Empty; GStoreDb.WebFormFields.Add(webFormField); GStoreDb.SaveChanges(); AddUserMessage("Field added to Web Form", "Field '" + stringValue.ToHtml() + "' [" + webFormField.WebFormFieldId + "] was successfully added to the Web Form", UserMessageType.Success); return(RedirectToAction("FieldIndex", new { id = webFormId })); }
public WebFormFieldEditAdminViewModel(WebFormEditAdminViewModel WebFormEditAdminViewModel, WebFormField webFormField, int index) { if (WebFormEditAdminViewModel == null) { throw new ArgumentNullException("WebFormEditAdminViewModel"); } if (WebFormEditAdminViewModel.WebForm == null) { throw new ArgumentNullException("WebFormEditAdminViewModel.WebForm", "WebFormEditAdminViewModel.WebForm cannot be null. make sure page edit sets this after post"); } this.Index = index; this.WebFormEditAdminViewModel = WebFormEditAdminViewModel; this.WebForm = WebFormEditAdminViewModel.WebForm; this.WebFormId = WebFormEditAdminViewModel.WebForm.WebFormId; this.IsStoreAdminEdit = WebFormEditAdminViewModel.IsStoreAdminEdit; this.IsReadOnly = WebFormEditAdminViewModel.IsReadOnly; this.IsDeletePage = WebFormEditAdminViewModel.IsDeletePage; this.IsCreatePage = WebFormEditAdminViewModel.IsCreatePage; this.ActiveTab = WebFormEditAdminViewModel.ActiveTab; SetDefaults(WebFormEditAdminViewModel); if (webFormField != null) { this.Name = webFormField.Name; this.DataType = webFormField.DataType; this.DataTypeString = webFormField.DataTypeString; this.Description = webFormField.Description; this.EndDateTimeUtc = webFormField.EndDateTimeUtc; this.HelpLabelBottomText = webFormField.HelpLabelBottomText; this.HelpLabelTopText = webFormField.HelpLabelTopText; this.IsPending = webFormField.IsPending; this.IsRequired = webFormField.IsRequired; this.LabelText = webFormField.LabelText; this.Watermark = webFormField.Watermark; this.Order = webFormField.Order; this.StartDateTimeUtc = webFormField.StartDateTimeUtc; this.TextAreaColumns = webFormField.TextAreaColumns; this.TextAreaRows = webFormField.TextAreaRows; this.ValueList = webFormField.ValueList; this.ValueListId = webFormField.ValueListId; this.WebFormFieldId = webFormField.WebFormFieldId; this.WebFormFieldResponses = webFormField.WebFormFieldResponses; this.IsActiveDirect = webFormField.IsActiveDirect(); this.IsActiveBubble = webFormField.IsActiveBubble(); FillListsIfEmpty(webFormField.Client); } }
public virtual PartialViewResult UpdateWebFormAjax(int?id, WebFormEditAdminViewModel WebFormEditAdminViewModel, WebFormFieldEditAdminViewModel[] WebFormFields, string FastAddField) { if (!id.HasValue) { return(HttpBadRequestPartial("id is null")); } if (WebFormEditAdminViewModel.WebFormId == 0) { return(HttpBadRequestPartial("Web Form Id in view model is 0")); } if (WebFormEditAdminViewModel.WebFormId != id.Value) { return(HttpBadRequestPartial("Web Form Id mismatch. Parameter value: '" + id.Value + "' != view model value: " + WebFormEditAdminViewModel.WebFormId)); } StoreFront storeFront = CurrentStoreFrontOrThrow; WebForm webFormToUpdate = storeFront.Client.WebForms.SingleOrDefault(wf => wf.WebFormId == WebFormEditAdminViewModel.WebFormId); if (webFormToUpdate == null) { throw new ApplicationException("Web Form not found in client web forms. WebFormId: " + WebFormEditAdminViewModel.WebFormId + " Client '" + storeFront.Client.Name + "' [" + storeFront.ClientId + "]"); } bool nameIsValid = GStoreDb.ValidateWebFormName(this, WebFormEditAdminViewModel.Name, storeFront.ClientId, WebFormEditAdminViewModel.WebFormId); bool fastAddIsValid = false; if (!string.IsNullOrWhiteSpace(FastAddField)) { fastAddIsValid = GStoreDb.ValidateWebFormFieldName(this, FastAddField, storeFront.ClientId, WebFormEditAdminViewModel.WebFormId, null); } if (nameIsValid && ModelState.IsValid) { WebForm webForm = null; try { webForm = GStoreDb.UpdateWebForm(WebFormEditAdminViewModel, storeFront, CurrentUserProfileOrThrow); WebFormEditAdminViewModel.UpdateWebForm(webForm); if (WebFormFields != null && WebFormFields.Count() > 0) { foreach (WebFormFieldEditAdminViewModel field in WebFormFields) { GStoreDb.UpdateWebFormField(field, storeFront, CurrentUserProfileOrThrow); } } if (fastAddIsValid) { WebFormField newField = GStoreDb.CreateWebFormFieldFastAdd(WebFormEditAdminViewModel, FastAddField, storeFront, CurrentUserProfileOrThrow); AddUserMessage("Field Created!", "Field '" + newField.Name.ToHtml() + "' [" + newField.WebFormFieldId + "] created successfully.", UserMessageType.Success); ModelState.Remove("FastAddField"); } AddUserMessage("Web Form Changes Saved!", "Web Form '" + webForm.Name.ToHtml() + "' [" + webForm.WebFormId + "] saved successfully for Client '" + storeFront.Client.Name.ToHtml() + "' [" + storeFront.ClientId + "]", UserMessageType.Success); this.ModelState.Clear(); WebFormEditAdminViewModel = new WebFormEditAdminViewModel(CurrentStoreFrontOrThrow, CurrentUserProfileOrThrow, webForm, isStoreAdminEdit: true, activeTab: WebFormEditAdminViewModel.ActiveTab, sortBy: WebFormEditAdminViewModel.SortBy, sortAscending: WebFormEditAdminViewModel.SortAscending); return(PartialView("_WebFormEditPartial", WebFormEditAdminViewModel)); } catch (Exception ex) { string errorMessage = "An error occurred while saving your changes to Web Form '" + WebFormEditAdminViewModel.Name + "' [" + WebFormEditAdminViewModel.WebFormId + "] for Client: '" + storeFront.Client.Name + "' [" + storeFront.ClientId + "] \nError: '" + ex.GetType().FullName + "'"; if (CurrentUserProfileOrThrow.AspNetIdentityUserIsInRoleSystemAdmin()) { errorMessage += " \nException.ToString(): '" + ex.ToString() + "'"; } AddUserMessage("Error Saving Web Form!", errorMessage.ToHtmlLines(), UserMessageType.Danger); ModelState.AddModelError("Ajax", errorMessage); } } else { AddUserMessage("Web Form Edit Error", "There was an error with your entry for Web Form " + WebFormEditAdminViewModel.Name.ToHtml() + " [" + WebFormEditAdminViewModel.WebFormId + "] for Client '" + storeFront.Client.Name.ToHtml() + "' [" + storeFront.ClientId + "]. Please correct it.", UserMessageType.Danger); } foreach (string key in this.ModelState.Keys.Where(k => k.StartsWith("WebFormFields[")).ToList()) { string temp = key.Remove(0, ("WebFormFields[").Length); temp = temp.Remove(temp.IndexOf(']')); int index = int.Parse(temp); System.Web.Mvc.ModelState value = null; this.ModelState.TryGetValue(key, out value); if (value.Errors.Count == 0) { this.ModelState.Remove(key); } else { this.ModelState.AddModelError("", "There was an error with field #" + (index + 1) + ". Please correct it and save again."); } } WebFormEditAdminViewModel.FillFieldsFromViewModel(webFormToUpdate, WebFormFields); WebFormEditAdminViewModel.IsStoreAdminEdit = true; return(PartialView("_WebFormEditPartial", WebFormEditAdminViewModel)); }