Пример #1
0
        /// <summary>
        /// Puts the settings.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns><c>PutBlogPostsSettingsResponse</c> with success status.</returns>
        public PutBlogPostsSettingsResponse Put(PutBlogPostsSettingsRequest request)
        {
            var option = repository.AsQueryable <Option>().OrderByDescending(o => o.CreatedOn).FirstOrDefault(o => !o.IsDeleted) ?? new Option();

            if (request.Data.DefaultMasterPageId.GetValueOrDefault() != default(Guid) && request.Data.DefaultLayoutId.GetValueOrDefault() != default(Guid))
            {
                throw new CmsApiValidationException("Only one of DefaultLayoutId and DefaultMasterPageId can have a value.");
            }

            if (request.Data.Version > 0)
            {
                option.Version = request.Data.Version;
            }

            if (request.Data.DefaultMasterPageId.GetValueOrDefault() != default(Guid))
            {
                option.DefaultMasterPage = repository.AsProxy <Page>(request.Data.DefaultMasterPageId.GetValueOrDefault());
                option.DefaultLayout     = null;
            }
            else if (request.Data.DefaultLayoutId.GetValueOrDefault() != default(Guid))
            {
                option.DefaultLayout     = repository.AsProxy <Layout>(request.Data.DefaultLayoutId.GetValueOrDefault());
                option.DefaultMasterPage = null;
            }
            else
            {
                option.DefaultMasterPage = null;
                option.DefaultLayout     = null;
            }

            unitOfWork.BeginTransaction();
            repository.Save(option);
            unitOfWork.Commit();

            return(new PutBlogPostsSettingsResponse {
                Data = true
            });
        }
        /// <summary>
        /// Puts the settings.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns><c>PutBlogPostsSettingsResponse</c> with success status.</returns>
        public PutBlogPostsSettingsResponse Put(PutBlogPostsSettingsRequest request)
        {
            var option = repository.AsQueryable<Option>().OrderByDescending(o => o.CreatedOn).FirstOrDefault(o => !o.IsDeleted) ?? new Option();

            if (request.Data.DefaultMasterPageId.GetValueOrDefault() != default(Guid) && request.Data.DefaultLayoutId.GetValueOrDefault() != default(Guid))
            {
                throw new CmsApiValidationException("Only one of DefaultLayoutId and DefaultMasterPageId can have a value.");
            }

            if (request.Data.Version > 0)
            {
                option.Version = request.Data.Version;
            }

            if (request.Data.DefaultMasterPageId.GetValueOrDefault() != default(Guid))
            {
                option.DefaultMasterPage = repository.AsProxy<Page>(request.Data.DefaultMasterPageId.GetValueOrDefault());
                option.DefaultLayout = null;
            }
            else if (request.Data.DefaultLayoutId.GetValueOrDefault() != default(Guid))
            {
                option.DefaultLayout = repository.AsProxy<Layout>(request.Data.DefaultLayoutId.GetValueOrDefault());
                option.DefaultMasterPage = null;
            }
            else
            {
                option.DefaultMasterPage = null;
                option.DefaultLayout = null;
            }

            unitOfWork.BeginTransaction();
            repository.Save(option);
            unitOfWork.Commit();

            return new PutBlogPostsSettingsResponse { Data = true };
        }