Esempio n. 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AttachmentQuery"/> class.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="status">The status.</param>
        /// <param name="sort">The sort.</param>
        /// <param name="order">The order.</param>
        /// <param name="page">The page.</param>
        public AttachmentQuery(string type, string status, SortAttachment sort, SortOrder order, int? page)
        {
            IAttachmentSpecification specification = null;

            if (!string.IsNullOrEmpty(type))
            {
                specification = new AttachmentFileTypeSpecification(type);
            }

            if (!string.IsNullOrEmpty(status))
            {
                if (specification == null)
                {
                    specification = new AttachmentStatusSpecification(status.AsEnum<AttachmentStatus>());
                }
                else
                {
                    var spec = new AndSpecification<Attachment>(
                        specification,
                        new AttachmentStatusSpecification(status.AsEnum<AttachmentStatus>())
                    );

                    specification = spec as IAttachmentSpecification;
                }
            }

            if (specification == null)
            {
                specification = new AttachmentSpecification();
            }

            specification.Page = page;
            specification.Limit = Setting.AttachmentPageLimit.Value;
            specification.Sort = sort;
            specification.Order = order;

            this.Specification = specification;
        }
Esempio n. 2
0
        public ActionResult Index(string type, string status, SortAttachment sort, SortOrder order, int? page)
        {
            var query = new AttachmentQuery(type, status, sort, order, page);
            var attachments = this.AttachmentService.GetPaged(query.Specification);
            var attachment = attachments.FirstOrDefault();
            var privilege = new AttachmentPrivilege();

            return privilege.CanView(attachment) ? base.View(Views.Index, attachments) : NotAuthorized();
        }