예제 #1
0
        public ActionResult Create(string Tab)
        {
            ValueList valueList = GStoreDb.ValueLists.Create();

            valueList.SetDefaultsForNew(CurrentClientOrThrow);
            ValueListEditAdminViewModel viewModel = new ValueListEditAdminViewModel(CurrentStoreFrontOrThrow, CurrentUserProfileOrThrow, valueList, Tab, isStoreAdminEdit: true, isCreatePage: true);

            return(View("Create", viewModel));
        }
예제 #2
0
        public ActionResult Delete(int?id, string Tab, string SortBy, bool?SortAscending)
        {
            if (!id.HasValue)
            {
                return(HttpBadRequest("ValueListId = null"));
            }

            Client    client    = CurrentClientOrThrow;
            ValueList valueList = client.ValueLists.Where(p => p.ValueListId == id.Value).SingleOrDefault();

            if (valueList == null)
            {
                AddUserMessage("Value List not found", "Sorry, the Value List you are trying to Delete cannot be found. Value List id: [" + id.Value + "] for Client '" + client.Name.ToHtml() + "' [" + client.ClientId + "]", UserMessageType.Danger);
                return(RedirectToAction("Manager"));
            }

            ValueListEditAdminViewModel viewModel = new ValueListEditAdminViewModel(CurrentStoreFrontOrThrow, CurrentUserProfileOrThrow, valueList, Tab, true, false, false, sortBy: SortBy, sortAscending: SortAscending);

            return(View("Delete", viewModel));
        }
예제 #3
0
        public virtual ActionResult Create(ValueListEditAdminViewModel viewModel)
        {
            Client client      = CurrentClientOrThrow;
            bool   nameIsValid = GStoreDb.ValidateValueListName(this, viewModel.Name, CurrentClientOrThrow.ClientId, null);

            if (nameIsValid && ModelState.IsValid)
            {
                try
                {
                    ValueList valueList = null;
                    valueList = GStoreDb.CreateValueList(viewModel, CurrentClientOrThrow, CurrentUserProfileOrThrow);
                    AddUserMessage("Value List Created!", "Value List '" + valueList.Name.ToHtml() + "' [" + valueList.ValueListId + "] was created successfully for Client '" + client.Name.ToHtml() + "' [" + client.ClientId + "]", UserMessageType.Success);
                    if (CurrentStoreFrontOrThrow.Authorization_IsAuthorized(CurrentUserProfileOrThrow, GStoreAction.ValueLists_View))
                    {
                        return(RedirectToAction("Details", new { id = valueList.ValueListId }));
                    }
                    return(RedirectToAction("Index", "StoreAdmin"));
                }
                catch (Exception ex)
                {
                    string errorMessage = "An error occurred while Creating Value List '" + viewModel.Name.ToHtml() + "' for Client '" + client.Name.ToHtml() + "' [" + client.ClientId + "] \nError: " + ex.GetType().FullName;

                    if (CurrentUserProfileOrThrow.AspNetIdentityUserIsInRoleSystemAdmin())
                    {
                        errorMessage += " \nException.ToString(): " + ex.ToString();
                    }
                    AddUserMessage("Error Creating Value List!", errorMessage.ToHtmlLines(), UserMessageType.Danger);
                    ModelState.AddModelError("Ajax", errorMessage);
                }
            }
            else
            {
                AddUserMessage("Value List Create Error", "There was an error with your entry for new Value List '" + viewModel.Name.ToHtml() + "' for Client '" + client.Name.ToHtml() + "' [" + client.ClientId + "]. Please correct it below and save.", UserMessageType.Danger);
            }
            viewModel.IsStoreAdminEdit = true;
            viewModel.IsCreatePage     = true;
            viewModel.IsActiveDirect   = !(viewModel.IsPending || (viewModel.StartDateTimeUtc > DateTime.UtcNow) || (viewModel.EndDateTimeUtc < DateTime.UtcNow));

            return(View("Create", viewModel));
        }
예제 #4
0
        public virtual PartialViewResult UpdateValueListAjax(int?id, ValueListEditAdminViewModel valueListViewModel, ValueListItemEditAdminViewModel[] listItems, string fastAddValueListItem)
        {
            if (!id.HasValue)
            {
                return(HttpBadRequestPartial("id is null"));
            }

            if (valueListViewModel.ValueListId == 0)
            {
                return(HttpBadRequestPartial("Value List Id in view model is 0"));
            }

            if (valueListViewModel.ValueListId != id.Value)
            {
                return(HttpBadRequestPartial("Value List Id mismatch. Parameter value: '" + id.Value + "' != view model value: " + valueListViewModel.ValueListId));
            }

            Client    client            = CurrentClientOrThrow;
            ValueList valueListToUpdate = client.ValueLists.SingleOrDefault(vl => vl.ValueListId == valueListViewModel.ValueListId);

            if (valueListToUpdate == null)
            {
                throw new ApplicationException("Value List not found in client Value Lists. Value List Id: " + valueListToUpdate.ValueListId + " Client '" + client.Name + "' [" + client.ClientId + "]");
            }

            bool nameIsValid    = GStoreDb.ValidateValueListName(this, valueListToUpdate.Name, client.ClientId, valueListToUpdate.ValueListId);
            bool fastAddIsValid = false;

            if (!string.IsNullOrWhiteSpace(fastAddValueListItem))
            {
                fastAddIsValid = GStoreDb.ValidateValueListFastAddItemName(this, fastAddValueListItem, valueListToUpdate, null);
            }

            if (nameIsValid && ModelState.IsValid)
            {
                ValueList valueList = null;
                try
                {
                    valueList = GStoreDb.UpdateValueList(valueListViewModel, client, CurrentUserProfileOrThrow);

                    if (listItems != null && listItems.Count() > 0)
                    {
                        foreach (ValueListItemEditAdminViewModel listItem in listItems)
                        {
                            if (listItem.ValueListId != id.Value)
                            {
                                throw new ApplicationException("ValueListId mismatch for list item. ValueList id: " + id.Value + " listItem.ValueListId: " + listItem.ValueListId);
                            }
                            ValueListItem listItemUpdated = GStoreDb.UpdateValueListItem(listItem, client, CurrentUserProfileOrThrow);
                        }
                    }
                    valueListViewModel = new ValueListEditAdminViewModel(CurrentStoreFrontOrThrow, CurrentUserProfileOrThrow, valueList, isStoreAdminEdit: true, activeTab: valueListViewModel.ActiveTab, sortBy: valueListViewModel.SortBy, sortAscending: valueListViewModel.SortAscending);

                    if (fastAddIsValid)
                    {
                        ValueListItem newItem = GStoreDb.CreateValueListItemFastAdd(valueListViewModel, fastAddValueListItem, client, CurrentUserProfileOrThrow);
                        AddUserMessage("Value List Item Created!", "Value List Item '" + newItem.Name.ToHtml() + "' [" + newItem.ValueListItemId + "] created successfully.", UserMessageType.Success);
                        ModelState.Remove("fastAddValueListItem");
                    }

                    AddUserMessage("Value List Changes Saved!", "Value List '" + valueList.Name.ToHtml() + "' [" + valueList.ValueListId + "] saved successfully for Client '" + client.Name.ToHtml() + "' [" + client.ClientId + "]", UserMessageType.Success);

                    this.ModelState.Clear();
                    return(PartialView("_ValueListEditPartial", valueListViewModel));
                }
                catch (Exception ex)
                {
                    string errorMessage = "An error occurred while saving your changes to Value List '" + valueListViewModel.Name + "' [" + valueListViewModel.ValueListId + "] for Client: '" + client.Name + "' [" + client.ClientId + "] \nError: '" + ex.GetType().FullName + "'";

                    if (CurrentUserProfileOrThrow.AspNetIdentityUserIsInRoleSystemAdmin())
                    {
                        errorMessage += " \nException.ToString(): '" + ex.ToString() + "'";
                    }
                    AddUserMessage("Error Saving Value List!", errorMessage.ToHtmlLines(), UserMessageType.Danger);
                    ModelState.AddModelError("Ajax", errorMessage);
                }
            }
            else
            {
                AddUserMessage("Value List Edit Error", "There was an error with your entry for Value List " + valueListViewModel.Name.ToHtml() + " [" + valueListViewModel.ValueListId + "] for Client '" + client.Name.ToHtml() + "' [" + client.ClientId + "]. Please correct it.", UserMessageType.Danger);
            }

            foreach (string key in this.ModelState.Keys.Where(k => k.StartsWith("ValueListItems[")).ToList())
            {
                this.ModelState.Remove(key);
            }


            valueListViewModel.IsStoreAdminEdit = true;
            return(PartialView("_ValueListEditPartial", valueListViewModel));
        }