Пример #1
0
        /// <summary>
        /// Bind images collection to the model.
        /// </summary>
        protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor)
        {
            if (propertyDescriptor.Name == nameof(CalendarEventViewModel.Images))
            {
                var model = bindingContext.Model as CalendarEventViewModel;

                if (model != null)
                {
                    var images = new List <CalendarEventImageViewModel>();

                    var imageIds          = controllerContext.HttpContext.Request.Form.Get("imageBlobId");
                    var imageNames        = controllerContext.HttpContext.Request.Form.Get("imageBlobName");
                    var imageLabels       = controllerContext.HttpContext.Request.Form.Get("imageLabel");
                    var imageDescriptions = controllerContext.HttpContext.Request.Form.Get("imageDescription");

                    if (!string.IsNullOrWhiteSpace(imageIds))
                    {
                        var ids          = imageIds.Split(',');
                        var names        = imageNames.Split(',');
                        var labels       = imageLabels.Split(',');
                        var descriptions = imageDescriptions.Split(',');

                        for (int idx = 0; idx < ids.Length; idx++)
                        {
                            var id          = ids[idx];
                            var name        = names[idx];
                            var label       = labels[idx];
                            var description = descriptions[idx];

                            var image = new CalendarEventImageViewModel();

                            image.OrderIndex       = idx;
                            image.ImageBlobId      = new Guid(id);
                            image.ImageBlobName    = name;
                            image.ImageLabel       = label;
                            image.ImageDescription = description;

                            images.Add(image);
                        }
                    }

                    model.Images = images;
                }
            }

            base.BindProperty(controllerContext, bindingContext, propertyDescriptor);
        }
Пример #2
0
        public void Configure()
        {
            Mapper.AddMap <Blob, CalendarEventImageViewModel>((source) =>
            {
                var result = new CalendarEventImageViewModel();
                result.InjectFrom(source);
                result.ImageBlobId      = source.Id;
                result.ImageBlobName    = source.Name;
                result.ImageLabel       = string.Empty;
                result.ImageDescription = string.Empty;

                return(result);
            });

            Mapper.AddMap <EventImage, CalendarEventImageViewModel>((source) =>
            {
                var result = new CalendarEventImageViewModel();

                result.InjectFrom(source);
                result.ImageBlobId      = source.Id;
                result.ImageBlobName    = source.Name;
                result.ImageLabel       = source.Label;
                result.ImageDescription = source.Description;

                return(result);
            });

            Mapper.AddMap <CalendarEventImageViewModel, EventImage>((source) =>
            {
                var result = new EventImage();
                result.InjectFrom(source);
                result.Id          = source.ImageBlobId.Value;
                result.Label       = source.ImageLabel;
                result.Description = source.ImageDescription;

                return(result);
            });
        }