Ejemplo n.º 1
0
        public ActionResult Index(Guid type, Guid?articleID = null)
        {
            var structure = structureService.Get(type);

            //文章下拉選單
            ItemService itemService = new ItemService {
                ClientID = SessionManager.Client.ID
            };
            var param = new PageParameter
            {
                IsPaged = false
            };

            if (structure.RequiredTypes.HasValue((int)ContentType.Date))
            {
                param.SortColumn = SortColumn.Date;
            }
            else
            {
                param.SortColumn = SortColumn.Sort;
            }

            var filter = new ItemFilter();

            //篩選部門
            if (structure.ContentTypes.HasValue((int)ContentType.Department) && !SessionManager.IsSuperManager)
            {
                filter.DepartmentIDs = SessionManager.DepartmentIDs;
            }

            //篩選文章
            filter.StructureIDs = structure.ID.ToListObject();
            filter.LangType     = SystemLanguage;
            var data = itemService.GetListView(param, filter);

            ViewBag.SelectItem = data.Data.ToList();

            //篩選文章群組
            var parentStructures = structure.ParentStructure.FirstOrDefault(x => x.ItemTypes.HasValue((int)ItemType.ArticleGroup));

            if (parentStructures != null)
            {
                filter.StructureIDs = parentStructures.ID.ToListObject();
                filter.LangType     = SystemLanguage;
                var dataGroup = itemService.GetListView(param, filter);

                ViewBag.SelectGroupItem = dataGroup.Data.Select(
                    x => new SelectListItem
                {
                    Value    = x.Item.ID.ToString(),
                    Text     = x.ItemLanguage.Subject,
                    Selected = x.Item.ID == articleID
                }).ToList();
            }

            return(View(structure));
        }
Ejemplo n.º 2
0
        public ActionResult GetNode(Guid?id = null)
        {
            var node = new TreeViewModel();

            if (id != null)
            {
                var item = service.Get(id.Value);
                node = service.ItemToTreeNode(item);
            }

            return(PartialView("_TreeNode", node));
        }
Ejemplo n.º 3
0
        ///// <summary>
        ///// 退出比賽
        ///// </summary>
        ///// <param name="id">The identifier.</param>
        ///// <param name="captcha">The captcha.</param>
        ///// <returns></returns>
        //public async Task<ActionResult> ChildOutOrder(Guid id, string captcha = "")
        //{
        //    //check在編輯期間

        //}
        #endregion

        #endregion

        #region 訂單紀錄

        public ActionResult Order(Guid type)
        {
            var model = new OrderListModel
            {
                Structure      = structureService.Get(type),
                OrderPageModel = new OrderPageModel
                {
                    StructureID = type,
                }
            };

            return(View(ViewName("Member", "Order"), model));
        }
Ejemplo n.º 4
0
        public ActionResult Create(Guid?structureID = null)
        {
            var model = new EditItemViewModel
            {
                Item         = new cms_Item(),
                ItemLanguage = new cms_ItemLanguage(),//不指定語系
                SelectList   = structureService.GetSelectList(ItemType.Category, selectFirstLevel: true)
            };

            //指定Structure(第二層之後)
            if (structureID != null)
            {
                var structure = structureService.Get(structureID.Value);
                model.Item.cms_Structure        = structure;
                model.Item.StructureID          = structure.ID;
                model.ItemLanguage.LanguageType = structure.DefaultLanguage;
            }

            return(PartialView("_Edit", model));
        }
Ejemplo n.º 5
0
        public ActionResult Index(Guid type)
        {
            var structure = structureService.Get(type);

            return(View(structure));
        }
Ejemplo n.º 6
0
        public ActionResult GetPageList(PageParameter param, OrderFilter filter,
                                        OrderTeamSelect Type, ReportStyle ReportStyle, string subject = "", bool IsExport = false)
        {
            filter.LangType     = SystemLanguage;
            ViewBag.ReportStyle = ReportStyle;
            string fileName = $"{Type.GetDisplayName()}-{subject}-" + string.Format("{0:MMddHHmmss}", DateTime.Now) + ".xlsx";

            if (Type == OrderTeamSelect.CompetitionUnits)
            {
                var model = itemService.GetCompetitionUnits(filter.ArticleID.Value);

                if (IsExport)
                {
                    #region dataTable
                    List <CompetitionUnitsModelAll> dt = model
                                                         .SelectMany(x => x.Members.Select(y => new CompetitionUnitsModelAll
                    {
                        Creater     = x.Creater,
                        Phone       = x.Phone,
                        Email       = x.Email,
                        County      = x.County,
                        UnitTempNo  = x.TempNo,
                        Unit        = x.Unit,
                        UnitShort   = x.UnitShort,
                        Coach       = x.Coach,
                        Leader      = x.Leader,
                        Manager     = x.Manager,
                        OrderNumber = x.OrderNumber,
                        //TotalPrice = x.TotalPrice,
                        MemberCount  = x.MemberCount,
                        MemberTempNo = y.TempNo,
                        MemberName   = y.MemberName
                    })).ToList();

                    #endregion
                    var exportResult = ExcelTool.Create(dt);
                    return(File(exportResult, "application/vnd.ms-excel", fileName));
                }

                return(PartialView("_PageList_Units", model));
            }
            else if (Type == OrderTeamSelect.CompetitionItems)
            {
                var model = itemService.GetCompetitionItems(filter.ArticleID.Value);

                if (IsExport)
                {
                    #region dataTable
                    List <CompetitionItemsModelAll> dt = model
                                                         .SelectMany(x => x.Teams.SelectMany(y => y.Members.Select(z => new CompetitionItemsModelAll
                    {
                        Subject   = x.Subject,
                        Option    = x.Option,
                        TeamCount = x.TeamCount,

                        DetailTeamName = y.DetailTeamName,
                        FilePath       = y.FilePath,
                        DetailPrice    = y.DetailPrice,
                        DiscountPrice  = y.DiscountPrice,

                        TempNo     = z.TempNo,
                        MemberName = z.MemberName,
                        Unit       = z.Unit
                    }))).ToList();
                    #endregion
                    var exportResult = ExcelTool.Create(dt);
                    return(File(exportResult, "application/vnd.ms-excel", fileName));
                }

                return(PartialView("_PageList_Items", model));
            }
            else if (Type == OrderTeamSelect.CompetitionMembers)
            {
                var model = itemService.GetCompetitionMembers(filter.ArticleID.Value);

                if (IsExport)
                {
                    #region dataTable
                    List <CompetitionMemberItemAll> dt = model
                                                         .SelectMany(x => x.Items.Select(y => new CompetitionMemberItemAll
                    {
                        TempNo        = x.TempNo,
                        MemberName    = x.MemberName,
                        IdentityCard  = x.IdentityCard,
                        Birthday      = x.Birthday,
                        Gender        = x.Gender,
                        County        = x.County,
                        UnitTempNo    = x.UnitTempNo,
                        Unit          = x.Unit,
                        Coach         = x.Coach,
                        ItemCount     = x.ItemCount,
                        Subject       = y.Subject,
                        Option        = y.Option,
                        DetailPrice   = y.DetailPrice,
                        DiscountPrice = y.DiscountPrice
                    })).ToList();

                    #endregion
                    var exportResult = ExcelTool.Create(dt);
                    return(File(exportResult, "application/vnd.ms-excel", fileName));
                }

                return(PartialView("_PageList_Members", model));
            }
            else
            {
                var structure = structureService.Get(filter.StructureID);
                ViewBag.Structure = structure;

                var model = service.GetTeamList(param, filter);
                return(PartialView("_PageList", model));
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Item private (from Get、Preview)
        /// </summary>
        /// <param name="oriData"></param>
        /// <param name="viewName">回傳view</param>
        /// <param name="itemType">指定類型</param>
        /// <returns></returns>
        public CiResult <object> ShowItem(ItemViewModel oriData, ref string viewName, ItemType?itemType = null)
        {
            var result = new CiResult <object>();
            var data   = TransModel(oriData);

            if (data == null) // || string.IsNullOrEmpty(structure.ViewName)
            {
                result.Message = "data not found";
                return(result); //404
            }

            #region 取得資料

            //結構
            var structure = structureService.Get(data.Item.StructureID);
            if (structure == null) // || string.IsNullOrEmpty(structure.ViewName)
            {
                result.Message = "structure not found";
                return(result); //404
            }

            //子結構(子分類) 文章後推一層
            var subStructures = structureService.GetByParent(structure.ID.ToListObject(), ItemType.CategorySub);
            var subItemList   = new PageModel <ItemViewModel>();
            if (subStructures.Any())
            {
                subItemList = service.GetListView(
                    new PageParameter
                {
                    SortColumn = SortColumn.Sort,
                    IsPaged    = false
                }, new ItemFilter
                {
                    LangType     = ApplicationHelper.DefaultLanguage,
                    StructureIDs = subStructures.Select(x => x.ID).ToList(),
                    CategoryIDs  = data.Item.ID.ToListObject()
                });
            }

            /****若有子分類,文章往後推一層****/

            //子結構(多種文章)
            List <Guid> articleStructureID = (subStructures.Any()) ? subStructures.Select(x => x.ID).ToList() : structure.ID.ToListObject();
            var         articleStructures  = structureService.GetByParent(articleStructureID, ItemType.Article);
            //分頁參數
            var pageModel = new ItemPageModel();
            if (articleStructures != null)
            {
                //所有層級Category都可 (父層分類可找到子層分類的文章)
                var CategoryIDs = data.Item.ID.ToListObject();
                if (subStructures.Any())
                {
                    CategoryIDs.AddRange(subItemList.Data.Select(x => x.Item.ID).ToList());
                }
                pageModel.CategoryJson  = _Json.ModelToJson(CategoryIDs);
                pageModel.StructureJson = _Json.ModelToJson(articleStructures.Select(x => x.ID));
                //sort
                if (articleStructures.All(x => x.RequiredTypes.HasValue((int)ContentType.Date)))
                {
                    pageModel.SortColumn = SortColumn.Date;
                }
                else if (articleStructures.All(x => x.RequiredTypes.HasValue((int)ContentType.Sort)))
                {
                    pageModel.SortColumn = SortColumn.Sort;
                }
                else
                {
                    pageModel.SortColumn = SortColumn.CreateTime;
                }

                //人才庫
                if (articleStructures.Any(x => x.ItemTypes.HasValue((int)ItemType.Q8People)))
                {
                    pageModel.DataLevel = DataLevel.Normal;
                }
            }

            #endregion

            #region 回傳頁面
            //// ckeditor
            //data.ItemLanguage.Content = HttpUtility.HtmlDecode(data.ItemLanguage.Content);
            //data.ItemLanguage.TemplateText = HttpUtility.HtmlDecode(data.ItemLanguage.TemplateText);

            //Banner
            //if (structure.ItemTypes.HasValue((int)ItemType.Banner) || itemType == ItemType.Banner)
            //{
            //    if (articleStructure == null)
            //        return null; //404

            //    pageModel.ViewName = structure.ViewName;
            //    pageModel.IsPaged = false;

            //    return pageModel;

            //}

            // else

            //內容 Detail
            if (structure.ItemTypes.HasValue((int)ItemType.Article) || itemType == ItemType.Article)
            {
                viewName         = structure.ViewName;
                result.Data      = data;
                result.IsSuccess = true;
                return(result);
            }
            //列表 List
            else if (structure.ItemTypes.HasValue((int)ItemType.Category) || itemType == ItemType.Category)
            {
                //子結構可以是文章或次分類
                if (!articleStructures.Any() && !subStructures.Any())
                {
                    return(result); //404
                }
                pageModel.ViewName = structure.ViewName + "_Page";
                var model = new ItemListModel
                {
                    ItemViewModel = data,
                    ItemPageModel = pageModel,
                };
                if (subItemList.Data != null)
                {
                    model.SubItemList = new List <ItemWebViewModel>(
                        subItemList.Data?.Select(x => TransModel(x)).ToList()
                        );
                }

                viewName         = structure.ViewName;
                result.Data      = model;
                result.IsSuccess = true;
                return(result);
            }

            result.Message = "type not found";
            return(result); //404

            #endregion
        }