Exemplo n.º 1
0
        public static async Task <RepositoryResponse <AdditionalViewModel> > GetAdditionalData(
            MixDatabaseParentType parentType, string parentId,
            HttpRequest request, string culture = null,
            MixCmsContext _context = null, IDbContextTransaction _transaction = null)
        {
            UnitOfWorkHelper <MixCmsContext> .InitTransaction(_context, _transaction, out MixCmsContext context, out IDbContextTransaction transaction, out bool isRoot);

            try
            {
                // Additional Data is sub data of page / post / module only
                culture = culture ?? MixService.GetConfig <string>(MixAppSettingKeywords.DefaultCulture);
                var databaseName = request.Query["databaseName"].ToString();

                return(await LoadAdditionalDataAsync(parentType, parentId, databaseName, culture, context, transaction));
            }
            catch (Exception ex)
            {
                return(UnitOfWorkHelper <MixCmsContext> .HandleException <AdditionalViewModel>(ex, isRoot, transaction));
            }
            finally
            {
                if (isRoot)
                {
                    //if current Context is Root
                    UnitOfWorkHelper <MixCmsContext> .CloseDbContext(ref context, ref transaction);
                }
            }
        }
Exemplo n.º 2
0
        private void GetAdditionalData(string id, MixDatabaseParentType type, MixCmsContext context, IDbContextTransaction transaction)
        {
            var getRelatedData = MixRelatedAttributeDatas.ImportViewModel.Repository.GetFirstModel(
                m => m.Specificulture == Specificulture && m.ParentType == type &&
                m.ParentId == id, context, transaction);

            if (getRelatedData.IsSucceed)
            {
                RelatedData = (getRelatedData.Data);
            }
        }
Exemplo n.º 3
0
        public static async Task <RepositoryResponse <List <MixDatabaseDataAssociation> > > RemoveRelatedDataAsync(
            string parentId, MixDatabaseParentType parentType, string specificulture
            , MixCmsContext context, IDbContextTransaction transaction)
        {
            var result = await MixDatabaseDataAssociations.DeleteViewModel.Repository.RemoveListModelAsync(
                true
                , a => a.ParentId == parentId && a.ParentType == parentType &&
                a.Specificulture == specificulture
                , context, transaction);

            return(result);
        }
Exemplo n.º 4
0
        public void LoadData(string parentId, MixDatabaseParentType parentType, string specificulture, int?pageSize = null, int?pageIndex = 0
                             , MixCmsContext _context = null, IDbContextTransaction _transaction = null)
        {
            var getData = MixDatabaseDataAssociations.ReadMvcViewModel.Repository
                          .GetModelListBy(
                m => m.ParentId == parentId && m.ParentType == parentType && m.Specificulture == specificulture
                , MixService.GetConfig <string>(MixAppSettingKeywords.OrderBy), 0
                , pageSize, pageIndex
                , _context: _context, _transaction: _transaction);

            Data = getData.Data;
        }
Exemplo n.º 5
0
 public static async Task <RepositoryResponse <PaginationModel <TView> > > GetAttributeDataByParent <TView>(
     string culture, string attributeSetName,
     string parentId, MixDatabaseParentType parentType,
     string orderBy         = "CreatedDateTime", Heart.Enums.MixHeartEnums.DisplayDirection direction = MixHeartEnums.DisplayDirection.Desc,
     int?pageSize           = null, int?pageIndex = 0,
     MixCmsContext _context = null, IDbContextTransaction _transaction = null)
     where TView : ViewModelBase <MixCmsContext, MixAttributeSetData, TView>
 {
     return(await ViewModels.MixAttributeSetDatas.Helper.GetAttributeDataByParent <TView>(
                culture, attributeSetName,
                parentId, parentType, orderBy, direction, pageSize, pageIndex, _context, _transaction));
 }
Exemplo n.º 6
0
 private void ExportAdditionalData(string id, MixDatabaseParentType type, MixCmsContext context, IDbContextTransaction transaction)
 {
     if (!RelatedData.Any(m => m.ParentId == id && m.ParentType == type))
     {
         var getRelatedData = MixDatabaseDataAssociations.ImportViewModel.Repository.GetSingleModel(
             m => m.Specificulture == Specificulture && m.ParentType == type &&
             m.ParentId == id, context, transaction);
         if (getRelatedData.IsSucceed)
         {
             RelatedData.Add(getRelatedData.Data);
         }
     }
 }
Exemplo n.º 7
0
 public static async Task <RepositoryResponse <PaginationModel <ReadMvcViewModel> > > GetMixDataByParent(
     string mixDatabaseName,
     string parentId,
     MixDatabaseParentType parentType,
     string culture             = null,
     string orderBy             = "CreatedDateTime",
     DisplayDirection direction = DisplayDirection.Desc,
     int?pageSize                       = null,
     int?pageIndex                      = 0,
     MixCmsContext _context             = null,
     IDbContextTransaction _transaction = null)
 {
     culture ??= MixService.GetAppSetting <string>(MixAppSettingKeywords.DefaultCulture);
     return(await Helper.GetMixDataByParent <ReadMvcViewModel>(
                culture, mixDatabaseName,
                parentId, parentType, orderBy, direction, pageSize, pageIndex, _context, _transaction));
 }
Exemplo n.º 8
0
        public static async Task <RepositoryResponse <AdditionalViewModel> > GetAdditionalData(
            MixDatabaseParentType parentType, int parentId,
            HttpRequest request, string culture = null,
            MixCmsContext _context = null, IDbContextTransaction _transaction = null)
        {
            UnitOfWorkHelper <MixCmsContext> .InitTransaction(_context, _transaction, out MixCmsContext context, out IDbContextTransaction transaction, out bool isRoot);

            try
            {
                // Additional Data is sub data of page / post / module only
                culture = culture ?? MixService.GetConfig <string>("DefaultCulture");
                var databaseName = request.Query["databaseName"].ToString();
                var dataId       = (await context.MixRelatedAttributeData.FirstOrDefaultAsync(
                                        m => m.AttributeSetName == databaseName && m.ParentType == parentType && m.ParentId == parentId.ToString() && m.Specificulture == culture))?.DataId;
                if (!string.IsNullOrEmpty(dataId))
                {
                    return(await AdditionalViewModel.Repository.GetSingleModelAsync(
                               m => m.Id == dataId && m.Specificulture == culture
                               , context, transaction));
                }
                else
                {
                    // Init default data
                    var getAttrSet = await Lib.ViewModels.MixAttributeSets.UpdateViewModel.Repository.GetSingleModelAsync(
                        m => m.Name == request.Query["databaseName"].ToString()
                        , context, transaction);

                    if (getAttrSet.IsSucceed)
                    {
                        AdditionalViewModel result = new AdditionalViewModel()
                        {
                            Specificulture   = culture,
                            AttributeSetId   = getAttrSet.Data.Id,
                            AttributeSetName = getAttrSet.Data.Name,
                            Status           = MixContentStatus.Published,
                            Fields           = getAttrSet.Data.Fields,
                            ParentType       = parentType
                        };
                        result.ExpandView(context, transaction);
                        return(new RepositoryResponse <AdditionalViewModel>()
                        {
                            IsSucceed = true,
                            Data = result
                        });
                    }
                }
                return(new RepositoryResponse <AdditionalViewModel>());
            }
            catch (Exception ex)
            {
                return(UnitOfWorkHelper <MixCmsContext> .HandleException <AdditionalViewModel>(ex, isRoot, transaction));
            }
            finally
            {
                if (isRoot)
                {
                    //if current Context is Root
                    UnitOfWorkHelper <MixCmsContext> .CloseDbContext(ref context, ref transaction);
                }
            }
        }
Exemplo n.º 9
0
        public static RepositoryResponse <AdditionalViewModel> LoadAdditionalData(
            MixDatabaseParentType parentType,
            string parentId,
            string databaseName,
            string culture         = null,
            MixCmsContext _context = null, IDbContextTransaction _transaction = null)
        {
            culture = culture ?? MixService.GetConfig <string>("DefaultCulture");
            UnitOfWorkHelper <MixCmsContext> .InitTransaction(_context, _transaction, out MixCmsContext context, out IDbContextTransaction transaction, out bool isRoot);

            try
            {
                var dataId = context.MixRelatedAttributeData.FirstOrDefault(
                    m => m.AttributeSetName == databaseName && m.ParentType == parentType && m.ParentId == parentId && m.Specificulture == culture)?.DataId;
                if (!string.IsNullOrEmpty(dataId))
                {
                    return(AdditionalViewModel.Repository.GetSingleModel(
                               m => m.Id == dataId && m.Specificulture == culture
                               , context, transaction));
                }
                else
                {
                    // Init default data
                    var getAttrSet = MixAttributeSets.UpdateViewModel.Repository.GetSingleModel(
                        m => m.Name == databaseName
                        , context, transaction);
                    if (getAttrSet.IsSucceed)
                    {
                        AdditionalViewModel result = new AdditionalViewModel()
                        {
                            Specificulture   = culture,
                            AttributeSetId   = getAttrSet.Data.Id,
                            AttributeSetName = getAttrSet.Data.Name,
                            Status           = MixContentStatus.Published,
                            Fields           = getAttrSet.Data.Fields,
                            ParentType       = parentType,
                            ParentId         = parentId
                        };
                        result.ExpandView(context, transaction);
                        return(new RepositoryResponse <AdditionalViewModel>()
                        {
                            IsSucceed = true,
                            Data = result
                        });
                    }
                    return(new RepositoryResponse <AdditionalViewModel>());
                }
            }
            catch (Exception ex)
            {
                return(UnitOfWorkHelper <MixCmsContext> .HandleException <AdditionalViewModel>(ex, isRoot, transaction));
            }
            finally
            {
                if (isRoot)
                {
                    //if current Context is Root
                    UnitOfWorkHelper <MixCmsContext> .CloseDbContext(ref context, ref transaction);
                }
            }
        }