/// <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); }
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); }); }