Ejemplo n.º 1
0
        public DynamicIndexMobileItemViewModel BuildMobileItemViewModel(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper, dynamic item)
        {
            var dynamicIndexMobileItemViewModel = new DynamicIndexMobileItemViewModel();

            dynamicIndexMobileItemViewModel.ShowDelete  = dynamicEntityMetadata.ShowDelete();
            dynamicIndexMobileItemViewModel.ShowEdit    = dynamicEntityMetadata.ShowEdit();
            dynamicIndexMobileItemViewModel.ShowDetails = dynamicEntityMetadata.ShowDetails();
            dynamicIndexMobileItemViewModel.Item        = item;

            IEnumerable <DynamicPropertyIndexViewModel> properties = GetDynamicPropertyViewModels(dynamicEntityMetadata, item);
            var defaultpropertyName    = dynamicEntityMetadata.DefaultProperty().PropertyName();
            var defaultDynamicProperty = properties.SingleOrDefault(x => x.PropertyName == defaultpropertyName);
            var entityName             = dynamicEntityMetadata.TypeName();

            foreach (var dynamicPropertyIndexViewModel in properties.Where(x => x.PropertyName != defaultpropertyName).ToList())
            {
                dynamicIndexMobileItemViewModel.DynamicPropertyIndexViewModels.Add(dynamicPropertyIndexViewModel);
            }

            if (defaultDynamicProperty != null)
            {
                dynamicIndexMobileItemViewModel.DefaultDynamicPropertyViewModel = defaultDynamicProperty;
            }

            dynamicIndexMobileItemViewModel.EntityName = entityName;

            dynamicIndexMobileItemViewModel.TypeName = dynamicEntityMetadata.TypeName();
            var rv = routeValueDictionaryWrapper.Clone();

            rv.SetValue("Id", dynamicEntityMetadata.KeyProperty().GetValueFunction()(item).ToString());
            dynamicIndexMobileItemViewModel.RouteValueDictionaryWrapper = rv;
            return(dynamicIndexMobileItemViewModel);
        }
Ejemplo n.º 2
0
 public dynamic ParseKeyType(dynamic id)
 {
     if (id.GetType() == typeof(String[])) //mvc model binder does not bind correctly with the dynamic data type in some cases
     {
         id = ((string[])id)[0];
     }
     return(DynamicEntityMetadata.KeyProperty().ParseValue()(id.ToString()));
 }
Ejemplo n.º 3
0
        public virtual ActionResult Delete(dynamic id, string returnUrl)
        {
            id = ParseKeyType(id);
            var model     = _dynamicRepository.GetItem(EntityType, DynamicEntityMetadata.KeyProperty().PropertyName(), id);
            var viewModel = _dynamicDeleteViewModelBuilder.Build(DynamicEntityMetadata, model, returnUrl);

            return(View("DynamicDelete", viewModel));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// ScopeIdentity can be used to allow the create a ReturnUrl that includes the primary key for an entity that has not been created yet.
 /// You should use ScopeIdentity instead of the id value.
 /// For example, you could have a create actionlink that returns to the edit page once the entity has been created.
 /// </summary>
 /// <param name="returnUrl">The ReturnUrl that may contain ScopeIdentity</param>
 /// <param name="dynamicEntityMetadata"></param>
 /// <param name="createModel"></param>
 /// <returns></returns>
 public string ReplaceScopeIdentity(string returnUrl, DynamicEntityMetadata dynamicEntityMetadata, dynamic createModel)
 {
     if (returnUrl.Contains("ScopeIdentity"))
     {
         var keyValue = dynamicEntityMetadata.KeyProperty().GetValueFunction()(createModel);
         returnUrl = returnUrl.Replace("ScopeIdentity", keyValue.ToString());
     }
     return(returnUrl);
 }
Ejemplo n.º 5
0
        public DynamicIndexItemViewModel BuildItemViewModel(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper, dynamic item)
        {
            var dynamicIndexItemViewModel = new DynamicIndexItemViewModel();

            dynamicIndexItemViewModel.ShowDelete  = dynamicEntityMetadata.ShowDelete();
            dynamicIndexItemViewModel.ShowEdit    = dynamicEntityMetadata.ShowEdit();
            dynamicIndexItemViewModel.ShowDetails = dynamicEntityMetadata.ShowDetails();
            dynamicIndexItemViewModel.Item        = item;
            dynamicIndexItemViewModel.TypeName    = dynamicEntityMetadata.TypeName();
            var rv = routeValueDictionaryWrapper.Clone();

            rv.SetValue("Id", dynamicEntityMetadata.KeyProperty().GetValueFunction()(item).ToString());
            dynamicIndexItemViewModel.RouteValueDictionaryWrapper = rv;

            IEnumerable <DynamicPropertyIndexViewModel> properties = GetDynamicPropertyViewModels(dynamicEntityMetadata, item);

            foreach (var property in properties)
            {
                dynamicIndexItemViewModel.DynamicPropertyIndexViewModels.Add(property);
            }
            return(dynamicIndexItemViewModel);
        }