Exemple #1
0
        public DynamicForm <FormValues <TFormDetailViewModel> > GetForm(long?entityId, string requestLanguage = null)
        {
            var formInputLanguage = requestLanguage ?? _localizationOptions.Value.DefaultRequestCulture.Culture.Name;

            var form = new DynamicForm <FormValues <TFormDetailViewModel> >
            {
                Title   = _localizer["Create a new"],
                Details = FormUtitities.ViewModelTypeToFormField(typeof(TFormDetailViewModel), _localizer),
            };

            if (entityId != null)
            {
                form.Title           = _localizer["Update"];
                form.Languages       = _localizationOptions.Value.SupportedUICultures.ToDictionary(c => c.Name, c => c.NativeName);
                form.RequestLanguage = formInputLanguage;

                form.InitialValues = this.GetEntityValues(entityId ?? 0, formInputLanguage);
            }

            if (form.InitialValues != null)
            {
                form.InitialValues.Language = formInputLanguage;
            }
            else
            {
                form.InitialValues = new FormValues <TFormDetailViewModel>()
                {
                    Language = formInputLanguage
                }
            };

            return(form);
        }
Exemple #2
0
        public DynamicForm GetEntityForm(long entityTypeId)
        {
            var taxonomyTypesViewModels = _taxonomyHelper.GetTaxonomiesTypeViewModels(entityTypeId, true);

            return(new DynamicForm
            {
                Details = FormUtitities.ViewModelTypeToFormField(typeof(ImageViewModel), _stringLocalizer),
                TaxonomyTypes = taxonomyTypesViewModels.Select(o => new FormTaxonomyType(o))
            });
        }
        public override JsonResult Update(FormValues <TFormDetailViewModel> formValues)
        {
            var entityDetails = FormUtitities.ViewModelToEntityDetails <TEntityDetail>(formValues.Details, formValues.Language);
            var result        = _entityController.Update(long.Parse(formValues.Meta["id"]), entityDetails.ToArray(), formValues.GetTaxonomuTypeIdTaxonomyId(), _userManager.FindByNameAsync(User.Identity.Name).Result);

            return(Json(
                       result > 0 ?
                       new BaseAjaxResult(JsonResultState.Success, "Update successuly") :
                       new BaseAjaxResult(JsonResultState.Failed, "Update failed")));
        }
Exemple #4
0
        public async Task <JsonResult> Update(FormValues <ImageViewModel> formValues)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            var fileId = long.Parse(formValues.GetMetaValue("id"));
            Dictionary <long, long[]> taxonomyTypeTaxonomies = formValues.TaxonomyTypes?.ToDictionary(o => o.Key, o => o.Value.Keys.ToArray());
            var entityDetails = FormUtitities.ViewModelToEntityDetails <FileEntityDetail>(formValues.Details, formValues.Language);
            var result        = _mediaHelper.Update(fileId, entityDetails, taxonomyTypeTaxonomies, user);

            return(Json(result));
        }
Exemple #5
0
        public virtual JsonResult Create(FormValues <TFormDetailViewModel> formValues)
        {
            var entityDetails = FormUtitities.ViewModelToEntityDetails <TEntityDetail>(formValues.Details, formValues.Language);

            var entity = new TEntity
            {
                Name = formValues.Details.Title,
            };

            entity = _entityController.Create(entity, entityDetails.ToArray(), _userManager.FindByNameAsync(User.Identity.Name).Result);

            return(Json(new BaseAjaxResult(JsonResultState.Success, _entityController.GetLocalizationString("Create successfuly."), Url.Action("update", new { id = entity.Id }))));
        }
Exemple #6
0
        private ImageViewModel FileEntityToViewModel(FileEntity fileEntity)
        {
            fileEntity.Details = _entityHelper.GetDetails(fileEntity).ToList() as IList <FileEntityDetail>;

            foreach (var detail in fileEntity.Details)
            {
                detail.Suffix = detail.Field;
            }

            var viewModel = FormUtitities.CreateObjectFormEntityDetails(typeof(ImageViewModel), fileEntity.Details) as ImageViewModel;

            viewModel.SetId(fileEntity.Id);
            viewModel.FileName = fileEntity.Name;

            return(viewModel);
        }
Exemple #7
0
        public FormValues <TFormDetailViewModel> GetEntityValues(long entityId, string language)
        {
            var result = new FormValues <TFormDetailViewModel>();
            var entity = EntityHelper.Entity(entityId);

            var details = EntityHelper.GetDetails(entity, language, _localizationOptions.Value.DefaultRequestCulture.Culture.Name).ToList();
            var localizationFieldNames      = details.Where(o => o.Language != null).Select(o => o.Field);
            var localizationFilteredDetails = details.AsEnumerable().Where(o => !(localizationFieldNames.Contains(o.Field) && o.Language == null)).ToList();

            //kiểm tra Detail trong list có móc vào file(chứa "Suffix" == "url")
            //thêm các Detail vào list để bổ sung chi tiết(dimension, size,..etc)
            var tempDetails = new List <TEntityDetail>();

            foreach (var detail in localizationFilteredDetails.Where(o => o.Suffix == AppKey.FileUrlPropertyName))
            {
                var fileEntity = _mediaHelper.Entity(detail.Value, true);
                if (fileEntity != null)
                {
                    foreach (var fileDetail in fileEntity.Details)
                    {
                        if (fileDetail.Field == AppKey.FileUrlPropertyName)
                        {
                            continue;
                        }

                        var tempDetail = detail.Clone() as TEntityDetail;
                        tempDetail.Suffix = fileDetail.Field;
                        tempDetail.Value  = fileDetail.Value;

                        tempDetails.Add(tempDetail);
                    }
                }
            }
            localizationFilteredDetails.AddRange(tempDetails);

            result.Meta = new Dictionary <string, string>()
            {
                { "id", entityId.ToString() },
                { "name", entity.Name.ToString() },
                { "entityTypeId", entity.EntityTypeId?.ToString() }
            };
            result.Details = FormUtitities.EntityDetailsToFieldValues <TEntityDetail, TFormDetailViewModel>(localizationFilteredDetails);

            return(result);
        }