public ActionResult GetCompetitionRow(OrderEditBlock block) { if (!Request.IsAjaxRequest()) { return(ErrorPage()); //404 } if (SessionManager.UserID == Guid.Empty) { return(new ContentResult { Content = $"LogOutError" }); } if (block == OrderEditBlock.UnitList) { return(View(ViewName("Order", "_Competition_UnitList_row"), new erp_OrderUnit())); } if (block == OrderEditBlock.TeamMember) { return(View(ViewName("Order", "_Competition_TeamMember_row"), new mgt_UserProfile())); } if (block == OrderEditBlock.OrderItem) { return(View(ViewName("Order", "_Competition_OrderItem_row"), new EditOrderDetail())); } return(ErrorPage()); //404 }
public ActionResult GetCompetition(Guid id, OrderEditBlock block = OrderEditBlock.BasicInfo, bool isEditing = false, Guid?OrderDetailID = null) { if (block != OrderEditBlock.All && !Request.IsAjaxRequest()) { return(ErrorPage()); //404 } if (SessionManager.UserID == Guid.Empty) { return(new ContentResult { Content = $"LogOutError" }); } //訂單 var order = service.GetView(id, ApplicationHelper.DefaultLanguage); //check必須是本人 (Admin可進入) if (SessionManager.AccountType == AccountType.Member && order.Order.CreateUser != SessionManager.UserID) { return(ErrorPage()); //404 } //文章 var itemModel = itemService.GetView(order.Order.ItemID.Value, ApplicationHelper.DefaultLanguage); if (itemModel == null) { return(ErrorPage()); } //parent文章 var parentItem = new ItemViewModel(); if (itemModel.ParentID != Guid.Empty) { parentItem = itemService.GetView(itemModel.ParentID, ApplicationHelper.DefaultLanguage, DataLevel.VerySimple); } //篩選部門 for Admin if (itemModel.Item.cms_Structure.ContentTypes.HasValue((int)ContentType.Department) && !SessionManager.IsSuperManager) { if (SessionManager.AccountType == AccountType.Admin && !SessionManager.DepartmentIDs.Contains(itemModel.Item.DepartmentID.Value)) { return(ErrorPage()); //404 } } //文章項目 var orderItemStructure = itemModel.Item.cms_Structure.ChildStructures.FirstOrDefault(x => x.ItemTypes.HasValue((int)ItemType.OrderItem)); var orderItems = new List <ItemProductModel>(); if (orderItemStructure != null) { //orderItems = itemService.GetSubOrderList(orderItemStructure.ID, item.Item.ID, ApplicationHelper.DefaultLanguage); orderItems = service.GetSubOrderList(order.Order.ItemID.Value); } // User個資(必填用任一CreateRole) var userModel = userService.GetView(order.Order.CreateUser, itemModel.Item.cms_ItemOrderRoleRelation.FirstOrDefault(x => x.ItemOrderRoleType == (int)ContentType.OrderCreateRole)?.mgt_Role); order.User = userModel.User; order.UserProfile = userModel.UserProfile; order.ItemViewModel = itemModel; order.SubItemViewModel = orderItems; order.ParentItemViewModel = parentItem; // 訂購商品前檢查-完成後可瀏覽 (Admin不檢查) var preCheck = new CiResult(); if (SessionManager.AccountType == AccountType.Member) { preCheck = service.ItemPreCheck(SessionManager.UserID, itemModel.Item, checkStock: false, checkUser: false); if (!preCheck.IsSuccess)// && order.Order.OrderStatus == (int)OrderStatus.Editing { SetAlertMessage(preCheck.Message, AlertType.error); isEditing = false; } } else if (SessionManager.AccountType == AccountType.Admin) { preCheck.IsSuccess = true; } var editModel = new EditOrderViewModel { OrderViewModel = order, Block = block, IsEditing = isEditing, IsCheckSuccess = preCheck.IsSuccess, IsAdmin = (SessionManager.AccountType == AccountType.Admin), OrderDetailID = OrderDetailID == null ? Guid.Empty : OrderDetailID.Value }; //取得可報名選手 if (block == OrderEditBlock.DetailMember) { var orderDetail = order.OrderDetails.FirstOrDefault(x => x.ID == OrderDetailID); var orderDetailItem = itemService.Get(orderDetail.ItemID); editModel.TeamMemberAssigns = userService.GetUserAssignToList(order.Order.CreateUser,//SessionManager.UserID noneItemID: order.Order.ItemID, butOrderDetailID: OrderDetailID, noneParentItemID: order.ParentItemViewModel.Item.ID, startBirthday: orderDetailItem.DateLimit); } string viewName = block == OrderEditBlock.All ? "Competition" : $"_Competition_{block.ToString()}"; return(View(ViewName("Order", viewName), editModel)); }