Exemple #1
0
 public ActionResult Edit(PropertyEditViewModel model)
 {
     if (ModelState.IsValid)
     {
         PropertyModel serviceModel = new PropertyModel
         {
             Id               = model.Id,
             Address          = model.Address,
             Bathrooms        = model.Bathrooms,
             Bedrooms         = model.Bedrooms,
             Description      = model.Description,
             PropertyStatusId = model.PropertyStatusId,
             Size             = model.Size
         };
         var features = new List <int>();
         if (model.SelectedFeatures != null && model.SelectedFeatures.Any())
         {
             features = model.SelectedFeatures.Select(f => Convert.ToInt32(f)).ToList();
         }
         this.Service.EditProperty((((OwnerModel)Session["SelectedAccount"]).Id), serviceModel, features, User.Identity.Name);
         return(RedirectToAction("Details", new { pId = model.Id }));
     }
     else
     {
         OnCreate();
         return(View(model));
     }
 }
Exemple #2
0
        public static IMvvmBinder GetNewPropertyEditView(object arg)
        {
            ////IDataContext dc = new UnitTextConnectionDataContext();
            IDataContext dc = new HVCC.Shell.Models.HVCCDataContext() as IDataContext;
            IViewModel   vm = new PropertyEditViewModel(dc, arg)
            {
                Caption = "Edit Property"
            };
            IView v = new HVCC.Shell.Views.PropertyEditView(vm);

            return(new MvvmBinder(dc, v, vm));
        }
Exemple #3
0
        public ActionResult Edit(int id, string category, string type, int propertyId = -1)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage queries")))
            {
                return(new HttpUnauthorizedResult());
            }

            var property = _projectionManager.DescribeProperties().SelectMany(x => x.Descriptors).Where(x => x.Category == category && x.Type == type).FirstOrDefault();

            if (property == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new PropertyEditViewModel {
                Id          = id,
                Description = String.Empty,
                Property    = property
            };

            dynamic form = null;

            // build the form, and let external components alter it
            if (property.Form != null)
            {
                form           = _formManager.Build(property.Form);
                viewModel.Form = form;
            }

            // bind form with existing values.
            if (propertyId != -1)
            {
                var propertyRecord = _repository.Get(propertyId);
                if (propertyRecord != null)
                {
                    viewModel.Description = propertyRecord.Description;
                    if (property.Form != null)
                    {
                        var parameters = FormParametersHelper.FromString(propertyRecord.State);
                        _formManager.Bind(form, new DictionaryValueProvider <string>(parameters, CultureInfo.InvariantCulture));
                    }

                    viewModel.CreateLabel        = propertyRecord.CreateLabel;
                    viewModel.ExcludeFromDisplay = propertyRecord.ExcludeFromDisplay;
                    viewModel.Label         = propertyRecord.Label;
                    viewModel.LinkToContent = propertyRecord.LinkToContent;

                    viewModel.CustomizeLabelHtml    = propertyRecord.CustomizeLabelHtml;
                    viewModel.CustomizePropertyHtml = propertyRecord.CustomizePropertyHtml;
                    viewModel.CustomizeWrapperHtml  = propertyRecord.CustomizeWrapperHtml;
                    viewModel.CustomLabelCss        = propertyRecord.CustomLabelCss;
                    viewModel.CustomLabelTag        = propertyRecord.CustomLabelTag;
                    viewModel.CustomPropertyCss     = propertyRecord.CustomPropertyCss;
                    viewModel.CustomPropertyTag     = propertyRecord.CustomPropertyTag;
                    viewModel.CustomWrapperCss      = propertyRecord.CustomWrapperCss;
                    viewModel.CustomWrapperTag      = propertyRecord.CustomWrapperTag;

                    viewModel.NoResultText = propertyRecord.NoResultText;
                    viewModel.ZeroIsEmpty  = propertyRecord.ZeroIsEmpty;
                    viewModel.HideEmpty    = propertyRecord.HideEmpty;

                    viewModel.RewriteOutput      = propertyRecord.RewriteOutput;
                    viewModel.RewriteText        = propertyRecord.RewriteText;
                    viewModel.StripHtmlTags      = propertyRecord.StripHtmlTags;
                    viewModel.TrimLength         = propertyRecord.TrimLength;
                    viewModel.AddEllipsis        = propertyRecord.AddEllipsis;
                    viewModel.MaxLength          = propertyRecord.MaxLength;
                    viewModel.TrimOnWordBoundary = propertyRecord.TrimOnWordBoundary;
                    viewModel.PreserveLines      = propertyRecord.PreserveLines;
                    viewModel.TrimWhiteSpace     = propertyRecord.TrimWhiteSpace;
                }
            }

            return(View(viewModel));
        }
Exemple #4
0
        public ActionResult EditPost(int id, string category, string type, [DefaultValue(-1)] int propertyId, FormCollection formCollection)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage queries")))
            {
                return(new HttpUnauthorizedResult());
            }
            var layout = _layoutRepository.Get(id);

            var property = _projectionManager.DescribeProperties().SelectMany(x => x.Descriptors).Where(x => x.Category == category && x.Type == type).FirstOrDefault();

            var model = new PropertyEditViewModel();

            TryUpdateModel(model);

            // validating form values
            _formManager.Validate(new ValidatingContext {
                FormName = property.Form, ModelState = ModelState, ValueProvider = ValueProvider
            });

            if (ModelState.IsValid)
            {
                var propertyRecord = layout.Properties.Where(f => f.Id == propertyId).FirstOrDefault();

                // add new property record if it's a newly created property
                if (propertyRecord == null)
                {
                    propertyRecord = new PropertyRecord {
                        Category = category,
                        Type     = type,
                        Position = layout.Properties.Count
                    };
                    layout.Properties.Add(propertyRecord);
                }

                var dictionary = formCollection.AllKeys.ToDictionary(key => key, formCollection.Get);

                // save form parameters
                propertyRecord.State       = FormParametersHelper.ToString(dictionary);
                propertyRecord.Description = model.Description;

                propertyRecord.CreateLabel        = model.CreateLabel;
                propertyRecord.ExcludeFromDisplay = model.ExcludeFromDisplay;
                propertyRecord.Label         = model.Label;
                propertyRecord.LinkToContent = model.LinkToContent;

                propertyRecord.CustomizeLabelHtml    = model.CustomizeLabelHtml;
                propertyRecord.CustomizePropertyHtml = model.CustomizePropertyHtml;
                propertyRecord.CustomizeWrapperHtml  = model.CustomizeWrapperHtml;
                propertyRecord.CustomLabelCss        = model.CustomLabelCss;
                propertyRecord.CustomLabelTag        = model.CustomLabelTag;
                propertyRecord.CustomPropertyCss     = model.CustomPropertyCss;
                propertyRecord.CustomPropertyTag     = model.CustomPropertyTag;
                propertyRecord.CustomWrapperCss      = model.CustomWrapperCss;
                propertyRecord.CustomWrapperTag      = model.CustomWrapperTag;

                propertyRecord.NoResultText = model.NoResultText;
                propertyRecord.ZeroIsEmpty  = model.ZeroIsEmpty;
                propertyRecord.HideEmpty    = model.HideEmpty;

                propertyRecord.RewriteOutput      = model.RewriteOutput;
                propertyRecord.RewriteText        = model.RewriteText;
                propertyRecord.StripHtmlTags      = model.StripHtmlTags;
                propertyRecord.TrimLength         = model.TrimLength;
                propertyRecord.AddEllipsis        = model.AddEllipsis;
                propertyRecord.MaxLength          = model.MaxLength;
                propertyRecord.TrimOnWordBoundary = model.TrimOnWordBoundary;
                propertyRecord.PreserveLines      = model.PreserveLines;
                propertyRecord.TrimWhiteSpace     = model.TrimWhiteSpace;

                return(RedirectToAction("Edit", "Layout", new { id }));
            }

            // model is invalid, display it again
            var form = _formManager.Build(property.Form);

            _formManager.Bind(form, formCollection);
            var viewModel = new PropertyEditViewModel {
                Id = id, Description = model.Description, Property = property, Form = form
            };

            return(View(viewModel));
        }