コード例 #1
0
        public static string AddToCartMobile(this HtmlHelper helper,
                                             Expression <Action <CartController> > action)
        {
            var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
            var url       = urlHelper.Action(action);
            var split     = url.Split('?');

            if (split.Length < 2)
            {
                return(null);
            }
            var queryString = split[1];
            var parseResult = HttpUtility.ParseQueryString(queryString);
            var form        = new TagBuilder("form");

            form.Attributes.Add("id", "rec");
            form.Attributes.Add("action", url);
            form.Attributes.Add("method", "post");
            var innerHtml = H.Submit("Записаться на курс").Class("submit").ToString();

            foreach (var key in parseResult.Keys)
            {
                innerHtml += HtmlControls.Hidden(key.ToString(),
                                                 parseResult[key.ToString()]);
            }
            innerHtml += HtmlControls.Hidden(CartController.IsStay,
                                             "false");
            form.InnerHtml = innerHtml;
            return(form.ToString());
        }
コード例 #2
0
        /* public static string AddToCartButton(this HtmlHelper helper,
         *   Expression<Action<CartController>> action) {
         *   return AddToCart(helper, action, true);
         * }*/

        public static string AddToCart(this HtmlHelper helper,
                                       Expression <Action <CartController> > action, string imgUrl, bool withoutDialog = false)
        {
            var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
            var url       = urlHelper.Action(action);
            var split     = url.Split('?');

            if (split.Length < 2)
            {
                return(null);
            }
            var queryString = split[1];
            var parseResult = HttpUtility.ParseQueryString(queryString);
            var form        = new TagBuilder("form");

            form.Attributes.Add("action", url);
            form.Attributes.Add("method", "post");
            var innerHtml = HtmlControls.ImgSubmit(imgUrl)
                            .Class(withoutDialog ? "" : "add-cart-button").Attr(new { title = "Добавить в корзину" })
                            .ToString();

            foreach (var key in parseResult.Keys)
            {
                innerHtml += HtmlControls.Hidden(key.ToString(),
                                                 parseResult[key.ToString()]);
                if (withoutDialog)
                {
                    innerHtml += HtmlControls.Hidden("isStay", "true");
                }
            }
            form.InnerHtml = innerHtml;
            return(form.ToString());
        }
コード例 #3
0
        private List <TrainerInfoVM> GetTrainers()
        {
            var trainers = EmployeeService.GetAll(e => e.EmpGroup_TC ==
                                                  EmpGroups.Trainer).ToList();
            var trainerTCs     = trainers.Select(x => x.Employee_TC).ToList();
            var responseCounts = ResponseService.GetAll().IsActive()
                                 .Where(x => x.Type == RawQuestionnaireType.Teacher &&
                                        trainerTCs.Contains(x.Employee_TC))
                                 .GroupBy(x => x.Employee_TC)
                                 .Select(x => new { Key = x.Key.ToUpper(), Count = x.Count() })
                                 .ToDictionary(x => x.Key, x => x.Count);
            var groupCounts = GroupService.GetAll().PlannedAndNotBegin()
                              .Where(x => x.DateBeg < DateTime.Today.AddMonths(6) &&
                                     trainerTCs.Contains(x.Teacher_TC))
                              .GroupBy(x => x.Teacher_TC)
                              .Select(x => new { x.Key, Count = x.Count() })
                              .ToDictionary(x => x.Key, x => x.Count);

            return(trainers.Select(e => new TrainerInfoVM {
                Trainer = e,
                Link = HtmlControls.Anchor(Const.Common.SiteDomain + Html.GetUrlFor(e),
                                           e.FullName).ToString(),
                ResponseCount =
                    responseCounts.GetValueOrDefault(e.Employee_TC),
                HasPhoto = Urls.Employee(e.Employee_TC) != null,
                HasDescription = e.SiteDescription.GetOrDefault(x => x.Length > 50),
                Groups = groupCounts.GetValueOrDefault(e.Employee_TC)
            }
                                   ).Where(x => x.Trainer.SiteVisible || x.Groups > 0).ToList());
        }
コード例 #4
0
ファイル: SimplePageVMService.cs プロジェクト: dKluev/Site
 public static string GetCityNote(City city)
 {
     return
         (city.MainComplex.Address.Tag("p") +
          city.PhoneList.FirstOrDefault().Tag("p") +
          HtmlControls.MailTo(city.Email).ToString().Tag("p"));
 }
コード例 #5
0
        public static string SiteObjectLink(this HtmlHelper helper, SiteObject siteObject)
        {
            if (siteObject == null)
            {
                return(null);
            }
            var entityType = (new ContextProvider()).GetTypeByTableName(siteObject.Type);
            var linkName   = siteObject.Name;

            /*   if(siteObject.Type == LinqToSqlUtils.GetTableName(typeof(Block)))
             * {
             *         var context = new SpecialistWebDataContext();
             *         var block = context.Blocks.FirstOrDefault(
             *                 b => b.BlockID == (int) siteObject.ID);
             *         return helper.BlockLink(block);
             *
             * }*/
            if (siteObject.Type == LinqToSqlUtils.GetTableName(typeof(Employee)) &&
                siteObject.Entity != null)
            {
                return(HtmlControls.Anchor(Const.Common.SiteDomain +
                                           helper.GetUrlFor(siteObject.Entity),
                                           siteObject.ObjectType.Name + ":" +
                                           siteObject.Entity.As <Employee>().FullName).ToString());
            }
            if (linkName.IsEmpty())
            {
                linkName = siteObject.Type;
            }
            return(helper.ActionLink(siteObject.ObjectType.Name + ":" + linkName, "Edit",
                                     entityType.Name + Const.Common.ControlPosfix, new {
                id = siteObject.ID
            }, null).ToString());
        }
コード例 #6
0
ファイル: CenterHelper.cs プロジェクト: dKluev/Site
        public static string ComplexImages(this Complex model)
        {
            var complexImagePath = Urls.ImageFolder + "Complex/Image/" +
                                   model.UrlName;
            var imageDirectory = Urls.SysRoot + complexImagePath;

/*
 *          var imageDirectory =
 *              viewPage.Server.MapPath(ComplexImageFolder +
 *              viewPage.Model.Complex_ID);
 */
            if (!Directory.Exists(imageDirectory))
            {
                return(null);
            }
            var files = (new DirectoryInfo(imageDirectory)).GetFiles("*.jpg");

            if (files.Length == 0)
            {
                return(null);
            }
            var result = string.Empty;

            foreach (var file in files)
            {
                result += HtmlControls.Image(Urls.ContentRoot(complexImagePath
                                                              + "/" + file.Name), "").ToString()
                          .Tag("p");
            }
            return(result);
        }
コード例 #7
0
ファイル: BreadCrumbs.cs プロジェクト: dKluev/Site
        public List <string> GetBreadCrumbs(CityVM model)
        {
            var breadcrumb = new List <string>();

            breadcrumb.Add(HtmlControls.Anchor(MainMenu.Urls.Locations,
                                               "Классы и филиалы").ToString());
            return(breadcrumb);
        }
コード例 #8
0
ファイル: BreadCrumbs.cs プロジェクト: dKluev/Site
        public List <string> Get()
        {
            if (_helper == null)
            {
                return(null);
            }
            var breadCrumbPart = GetBreadCrumbPart();

            if (_model != null)
            {
                var path = breadCrumbPart.GetPath(_model.GetType());
                if (path != null)
                {
                    return(path.Select(bc => bc.Link).Reverse().ToList());
                }
            }
            var breadcrumb = new List <string>();

            Home = HtmlControls.Anchor("/", "Главная").ToString();



            var model        = _model;
            var pageSysName  = string.Empty;
            var isSimplePage = false;

            model.Match <EntityCommonVM>(x =>
                                         x.Entity.Match <SimplePage>(y => {
                pageSysName  = y.SysName;
                isSimplePage = true;
            }));
            if (_mainMenu != null && _mainMenu.PageSysName != pageSysName &&
                !isSimplePage)
            {
                breadcrumb.Add(HtmlControls.Anchor(_mainMenu.Url, _mainMenu.Name)
                               .ToString());
            }
            if (model == null)
            {
                return(breadcrumb);
            }
            var breadCrumbsbyDispatch = GetBreadCrumbs((dynamic)model) as List <string>;

            if (breadCrumbsbyDispatch.IsEmpty())
            {
                var forumBreadCrumbs = new ForumBreadCrumbs(_helper);
                breadCrumbsbyDispatch = forumBreadCrumbs.GetBreadCrumbs((dynamic)model);
            }


            breadcrumb.AddRange(breadCrumbsbyDispatch);
            if (!(_model is MainPageVM) && breadcrumb.All(s => !s.Contains(@"""/""")))
            {
                breadcrumb.Insert(0, Home);
            }
            return(breadcrumb);
        }
コード例 #9
0
ファイル: SimplePageVMService.cs プロジェクト: dKluev/Site
        public string GetManagerNote(Employee employee)
        {
            var note = string.Empty;

            if (AuthService.CurrentUser != null)
            {
                note += HtmlControls.MailTo(employee.FirstEmail)
                        .ToString().Tag("p");
            }
            return(note);
        }
コード例 #10
0
ファイル: HtmlHelperExtension.cs プロジェクト: dKluev/Site
        /* public static bool InRole(this HtmlHelper helper, params string[] roles)
         * {
         *   var user = helper.ViewData[AuthService.CurrentUserSessionKey]
         *       as User;
         *   return user != null && roles.Any(user.InRole);
         * }
         */



        public static TagBuilder File(this HtmlHelper htmlHelper, string name)
        {
            var        builder = HtmlControls.File(name);
            ModelState state;

            if (htmlHelper.ViewData.ModelState.TryGetValue(name, out state) && (state.Errors.Count > 0))
            {
                builder.AddCssClass(HtmlHelper.ValidationInputCssClassName);
            }
            return(builder);
        }
コード例 #11
0
 public static TagBuilder SimplePageLink(this HtmlHelper helper, SimplePage page)
 {
     if (page.WithoutLink)
     {
         return(new TagBuilder("span")
         {
             InnerHtml = page.LinkTitle
         });
     }
     return(HtmlControls.Anchor(page.Url, page.LinkTitle));
 }
コード例 #12
0
        public static string CourseLink(this HtmlHelper helper, ICourseLink course)
        {
            if (course == null)
            {
                return(null);
            }
            if (course.IsTrack.GetValueOrDefault())
            {
                return(HtmlControls.Anchor("/track/" + course.UrlName,
                                           course.GetName()).ToString());
            }

            return(helper.CourseLink(course.UrlName, course.GetName()));
        }
コード例 #13
0
ファイル: ListVM.cs プロジェクト: dKluev/Site
 public override string ToString()
 {
     if (Entity == null)
     {
         return(string.Empty);
     }
     return(HtmlControls.Anchor(
                _urlHelper.Action("Edit", Entity.GetType().Name
                                  + Const.Common.ControlPosfix,
                                  new { id = LinqToSqlUtils.GetPK(Entity) }),
                EntityDisplayName
                .CutLong(MetaData.DisplayProperty().GetValue(Entity).ToString())
                ).ToString());
 }
コード例 #14
0
            protected override void Init()
            {
                var message = "Чтобы подписаться на бумажные издания"
                              + " необходимо в "
                              + HtmlControls.Anchor("/profile/editprofile", "профиле")
                              + " заполнить почтовый адрес";
                var user = AuthService.CurrentUser;

                RuleFor(x => x.Subscribes)
                .Must(x => x == 0 || user.HasFullAddress)
                .WithMessage(message);

                /*  RuleFor(x => x.NewspaperSubscribed)
                 *    .Must(x => user.CatalogSubscribed || !x || user.HasFullAddress)
                 *        .WithMessage(message);*/
            }
コード例 #15
0
ファイル: CommonSiteHelper.cs プロジェクト: dKluev/Site
        public static string Calendar(this HtmlHelper helper, decimal groupId)
        {
            var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
            var url       = urlHelper.Action <GroupController>(c => c.Calendar(groupId));
            var form      = new TagBuilder("form");

            form.Class("add-calendar");
            form.Attributes.Add("action", url);
            form.Attributes.Add("method", "post");
            var innerHtml = HtmlControls.ImgSubmit(Urls.Main("add_in.gif"))
                            .Attr(new { title = "Добавить в календарь" })
                            .ToString();

            innerHtml     += HtmlControls.Hidden("groupId", groupId);
            form.InnerHtml = innerHtml;
            return(form.ToString());
        }
コード例 #16
0
 private ActionResult ProcessImage(CreateMessageVM model, string viewName = null)
 {
     if (CheckMessageImage())
     {
         var imageUrl = UserImages.SaveMessageImage(Request.Files, User.UserID);
         if (!imageUrl.IsEmpty())
         {
             var value = ModelState["Description"].Value;
             image = HtmlControls.Image(imageUrl);
             ModelState["Description"].Value =
                 new ValueProviderResult(
                     new[] { model.Description + image },
                     value.AttemptedValue + image, null);
         }
     }
     if (viewName.IsEmpty())
     {
         return(View(model));
     }
     return(View(viewName, model));
 }
コード例 #17
0
        public static List <string> MyCourses(
            this ProfileVM model, UrlHelper url)
        {
            var result = _.List(model.GetLink(HtmlControls.Anchor(
                                                  url.Action <ProfileController>(c => c.Learning()),
                                                  "Предстоящие", LearningListType.Coming).ToString()));

            result.Add(
                model.GetLink(HtmlControls.Anchor(
                                  url.Action <ProfileController>(c => c.Learning()),
                                  "Текущие", LearningListType.Current).ToString()));

            result.Add(model.GetLink(HtmlControls.Anchor(
                                         url.Action <ProfileController>(c => c.Learning()),
                                         "Законченные", LearningListType.Ended).ToString()));

            result.Add(model.GetLink(HtmlControls.Anchor(
                                         url.Action <ProfileController>(c => c.Learning()),
                                         "Экзамены", LearningListType.Exam).ToString()));

            return(result);
        }
コード例 #18
0
ファイル: MailService.cs プロジェクト: dKluev/Site
        public void OrderComplete(Entities.Context.Order order, bool sendToUser)
        {
            var user             = AuthService.CurrentUser;
            var isCredit         = order.PaymentType_TC == PaymentTypes.AlphaCredit;
            var template         = MailTemplateService.GetTemplate(isCredit ? MailTemplates.OrderCompleteCredit : MailTemplates.OrderComplete, user.FullName);
            var orderDescription = GetOrderDescription(order);

            orderDescription += HtmlControls.Anchor(CommonConst.SiteRoot +
                                                    "/order/paymenttypechoice?orderid=" + order.OrderID) + Br;
            if (order.PaymentType_TC == PaymentTypes.SberBank)
            {
                orderDescription += "Квитанция:" + Br +
                                    HtmlControls.Anchor(CommonConst.SiteRoot +
                                                        "/order/receipt?orderid=" + order.OrderID) + Br +
                                    "После оплаты необходимо подтвердить оплату обучения на странице:" + Br +
                                    HtmlControls.Anchor(CommonConst.SiteRoot +
                                                        "/order/confirm?orderid=" + order.OrderID) + Br;
            }

            var managerTC = order.Manager_TC ?? Employees.MainManager;
            var manager   = EmployeeService.AllEmployees()[order.Manager_TC];

            var body = TemplateEngine.GetText(
                template.Description, new {
                orderDescription,
                Manager = H.Anchor("/manager/" + managerTC.ToLower(),
                                   manager.LastName + " " + manager.FirstName).AbsoluteHref().ToString()
            });

            if (sendToUser)
            {
                Send(info, MailAddress(order.User), body, template.Name);
            }

            OrderInfoForManager(order);
        }
コード例 #19
0
ファイル: BreadCrumbs.cs プロジェクト: dKluev/Site
 public static BreadCrumb GetBreadCrumbPart(HtmlHelper _helper)
 {
     if (root == null)
     {
         root = new BreadCrumb(typeof(MainPageVM),
                               HtmlControls.Anchor("/", "Главная").ToString()).Add(
             new BreadCrumb(typeof(ProfileVM),
                            _helper.Profile())
             .Add(
                 new BreadCrumb(typeof(EditProfileVM),
                                _helper.ActionLink <ProfileController>(
                                    c => c.EditProfile(), "Редактирование профиля").ToString()),
                 new BreadCrumb(typeof(ChangePasswordVM),
                                _helper.ActionLink <ProfileController>(
                                    c => c.ChangePassword(), "Сменить пароль").ToString()),
                 new BreadCrumb(typeof(SubscribesVM)),
                 new BreadCrumb(typeof(StudyTypeStatsVM)),
                 new BreadCrumb(typeof(UploadStudentPhotoVM)),
                 new BreadCrumb(typeof(CertificateListVM)),
                 new BreadCrumb(typeof(RealSpecialistVM)),
                 new BreadCrumb(typeof(WorkPlace)),
                 new BreadCrumb(typeof(GroupPhotosVM)),
                 new BreadCrumb(typeof(ClassmatesVM)),
                 new BreadCrumb(typeof(SeminarListVM)),
                 new BreadCrumb(typeof(SeminarCompleteVM)),
                 new BreadCrumb(typeof(AddSeminarVM)),
                 new BreadCrumb(typeof(PlanTestUserStatsVM)),
                 new BreadCrumb(typeof(PlanTestQuestionStatsVM)),
                 new BreadCrumb(typeof(LearningVM),
                                _helper.ActionLink <ProfileController>(
                                    c => c.Learning(), "Мои курсы").ToString())
                 .Add(
                     new BreadCrumb(typeof(GroupVM)),
                     new BreadCrumb(typeof(CoursePlannedTestVM))
                     ),
                 new BreadCrumb(typeof(EditExamQuestionnaireVM)),
                 new BreadCrumb(typeof(ChangeStatusVM)),
                 new BreadCrumb(typeof(FileListVM)),
                 new BreadCrumb(typeof(OrgGroupSearchVM)),
                 new BreadCrumb(typeof(OrgStudentVM)),
                 new BreadCrumb(typeof(OrgFileListVM)),
                 new BreadCrumb(typeof(OrgListVM)),
                 new BreadCrumb(typeof(OrgStatusUpdateVM)),
                 new BreadCrumb(typeof(OrgGroupVM)),
                 new BreadCrumb(typeof(OrgRealSpecialistVM)),
                 new BreadCrumb(typeof(TrainerCoursesVM)),
                 new BreadCrumb(typeof(TrainerGroupsVM)),
                 new BreadCrumb(typeof(EditSuccessStoryVM)),
                 new BreadCrumb(typeof(MyResponses)),
                 new BreadCrumb(typeof(LibraryVM)),
                 new BreadCrumb(typeof(MarketingActionsVM)),
                 new BreadCrumb(typeof(PrivateMessageListVM)),
                 new BreadCrumb(typeof(CompanyTestResultsVM)),
                 new BreadCrumb(typeof(TestEditVM)),
                 new BreadCrumb(typeof(TestReadOnlyVM)),
                 new BreadCrumb(typeof(CompanyTestsVM)),
                 new BreadCrumb(typeof(TestResultVM)),
                 new BreadCrumb(typeof(UserTestsVM), _helper.Url().UserTests().ToString()),
                 new BreadCrumb(typeof(TestCertificatesVM)),
                 new BreadCrumb(typeof(GroupInfosVM),
                                _helper.Url().GroupTests().ToString()).Add(new BreadCrumb(typeof(GroupInfoVM)),
                                                                           new BreadCrumb(typeof(GroupTestResultVM))),
                 new BreadCrumb(typeof(GroupPrepareVM)),
                 new BreadCrumb(typeof(TestListVM)),
                 new BreadCrumb(SimplePages.HostingInfo),
                 new BreadCrumb(typeof(CompetitionsVM),
                                _helper.ActionLink <CenterController>(
                                    c => c.Competitions(), "Конкурсы").ToString())
                 .Add(
                     new BreadCrumb(typeof(CompetitionVM))
                     ),
                 new BreadCrumb(typeof(CompanyFileListVM),
                                _helper.Url().CompanyFile().List("Файлы компаний").ToString()).Add(
                     new BreadCrumb(typeof(CompanyFileVM))
                     ),
                 new BreadCrumb(typeof(UserFileListVM),
                                _helper.ActionLink <FileController>(
                                    c => c.List(1), "Материалы преподавателя").ToString())
                 .Add(
                     new BreadCrumb(typeof(UserFileVM))
                     ),
                 new BreadCrumb(typeof(UserExamQuestionnaire),
                                _helper.ActionLink <ProfileController>(
                                    c => c.ExamQuestionnaire(null), "Анкета для сдачи экзаменов").ToString())
                 )
             );
     }
     return(root);
 }
コード例 #20
0
 public static string UserFileLink(this HtmlHelper helper, UserFile userFile)
 {
     return(HtmlControls.Anchor(
                UserFiles.GetUserFileUrl(userFile), userFile.Name).ToString());
 }
コード例 #21
0
    internal static void WriteOnClickAttribute(HtmlTextWriter writer,
                                               HtmlControls.HtmlControl control,
                                               bool submitsAutomatically,
                                               bool submitsProgramatically,
                                               bool causesValidation,
                                               string validationGroup) {
        AttributeCollection attributes = control.Attributes;
        string injectedOnClick = null;
        if (submitsAutomatically) {
            if (causesValidation) {
                injectedOnClick = Util.GetClientValidateEvent(validationGroup);
            }
            control.Page.ClientScript.RegisterForEventValidation(control.UniqueID);
        }
        else if (submitsProgramatically) {
            if (causesValidation) {
                injectedOnClick = Util.GetClientValidatedPostback(control, validationGroup);
            }
            else {
                injectedOnClick = control.Page.ClientScript.GetPostBackEventReference(control, String.Empty, true);
            }
        }
        else {
            control.Page.ClientScript.RegisterForEventValidation(control.UniqueID);
        }

        if (injectedOnClick != null) {
            string existingOnClick = attributes["onclick"];
            if (existingOnClick != null) {
                attributes.Remove("onclick");
                writer.WriteAttribute("onclick", existingOnClick + " " + injectedOnClick);
            }
            else {
                writer.WriteAttribute("onclick", injectedOnClick);
            }
        }
    }
コード例 #22
0
ファイル: LectureEditView.cs プロジェクト: dKluev/Site
        private TagDiv GetTable(string title, List <PiStudentInGroupLecture> students, int offset,
                                bool webinar = false)
        {
            var disable         = Model.LectureEditStatus != LectureEditStatus.All;
            var checkboxPostfix = webinar ? "" : "1";

            if (students.Any())
            {
                var data         = new { Students = new PiStudentInGroupLecture() };
                var isSameCourse = Model.StudentInfos.Select(x => x.Value.CourseTC).Distinct().Count() <= 1;
                var table        =
                    bh.Table(H.Head("#", "Слушатель", "Присут." + ShowWhenEdit(InputCheckbox("", "").Class("all-present" + checkboxPostfix).Title("Присутствие")), "Оценка", "Тип оценки",
                                    "Опоздание (мин)", "Уход (мин)", Model.LastLecture ? "Аттестация" : null, "Примечание"),
                             students.Select(x => {
                    var info = Model.StudentInfos[x.StudentInGroup_ID];
                    return(new {
                        Student = x,
                        info = info
                    });
                })
                             .OrderBy(x => x.info.FullName).Select((kk, idx) => {
                    var i               = idx + offset;
                    var x               = kk.Student;
                    var info            = kk.info;
                    var megaGroupCourse = isSameCourse ? "" : " ({0})".FormatWith(info.CourseTC);
                    var row             = _.List <object>(
                        i + 1, H.CleanRaw(
                            Url.Lms().Student(info.StudentID, Raw(info.FullName)).Class("student-fullname").ToString() +
                            Hidden(data.For(y => y.Students.StudentInGroupLecture_ID, i),
                                   x.StudentInGroupLecture_ID) + megaGroupCourse
                            + span[info.Email.GetOrDefault(y => " (" + HtmlControls.MailTo(y) + ")")].Class("student-email")
                            + UnlimitPart(info, x, data.For(z => z.Students.IsRecognized, i))),
                        Div("checkbox")[
                            InputCheckbox(data.For(z => z.Students.IsPresent, i), "true")
                            .SetChecked(x.IsPresent && x.Truancy.HasValue)
                            .SetDisabled(disable)
                            .Style("width:40px;margin-right:auto;margin-left:auto;")
                            .Class("present-control" + checkboxPostfix),
                            Hidden(data.For(z => z.Students.IsPresent, i), "false")
                        ],
                        Select(data.For(y => y.Students.Mark, i),
                               x.Mark.HasValue ? x.Mark.Value.ToString("n0") : "",
                               Enumerable.Range(1, 5).ToList(), z => z, z => z, true, "")
                        .Style("width:60px;").Class("form-control mark-control")
                        .SetDisabled(disable),
                        Select(data.For(y => y.Students.TestMethodType_TC, i), x.TestMethodType_TC,
                               TestMethodType.All, z => z.Name, z => z.TC, true, "Выбрать")
                        .Style("width:100px;").Class("form-control method-type-control")
                        .SetDisabled(disable),
                        InputNumber(data.For(y => y.Students.Lateness, i), x.Lateness).Style("width:60px;")
                        .Class("form-control").SetDisabled(disable),
                        InputNumber(data.For(y => y.Students.Departure, i), x.Departure)
                        .Class("form-control").Style("width:60px;").SetDisabled(disable)
                        );
                    if (Model.LastLecture)
                    {
                        var list = GetExamMarkList();
                        row.Add(
                            Select(data.For(y => y.Students.FinalExamMark_TC, i), info.FinalExamMark_TC,
                                   list, z => z.Item2, z => z.Item1, true, "Выбрать")
                            .Style("width:100px;").Class("form-control exam-mark-control")
                            .SetDisabled(disable));
                    }
                    row.Add(InputText(data.For(y => y.Students.Notes, i), x.Notes)
                            .SetDisabled(Model.LectureEditStatus == LectureEditStatus.Nothing)
                            .Class("form-control text2area").Size(300).Style("width:300px;"));
                    return(Row(row.ToArray()));
                }));
                return(div[h4[title], table]);
            }
            return(null);
        }
コード例 #23
0
        static Tree <string> GetMainMenu(this HtmlHelper helper)
        {
            var paymentTypes =
                MvcApplication.Container.Resolve <IRepository <PaymentType> >().GetAll();


            var model = new Tree <string>();

            var startedOrderMenu  = Tree.New(helper.ListLink <Order>("Незавершенные"));
            var completeOrderMenu = Tree.New(HtmlControls
                                             .Anchor("/OrderEntity/List?IsComplete=True&pageIndex=1",
                                                     "Завершенные").ToString());

            foreach (var paymentType in paymentTypes)
            {
                completeOrderMenu.AddNode(Tree.New(
                                              HtmlControls
                                              .Anchor(
                                                  "/OrderEntity/List?PaymentType_TC={0}&IsComplete=True&pageIndex=1"
                                                  .FormatWith(paymentType.PaymentType_TC), paymentType.Name)
                                              .ToString()));
            }

            Func <string, Expression <Action <CourseEntityController> >, Tree <string> > courseLink =
                (title, selector) => Tree.New(helper.ActionLink(selector, title).ToString());

            model
            .AddNode(
                Tree.New("Объекты сайта")
                .AddNode(Tree.New(helper.ListLink <Section>("Направления")))
                .AddNode(Tree.New(helper.ListLink <Vendor>("Вендоры")))
                .AddNode(Tree.New(helper.ListLink <Profession>("Профессии")))
                .AddNode(Tree.New(helper.ListLink <Product>("Продукты")))
                .AddNode(Tree.New(helper.ListLink <SiteTerm>("Технологии")))
                .AddNode(Tree.New(helper.ListLink <Course>("Курсы"))
                         .AddNode(Tree.New(helper.ActionLink <SiteObjectRelationEntityController>(
                                               c => c.ReverseRelationSorting(typeof(Course).Name, null, null), "Сортировка").ToString()))
                         .AddNode(Tree.New(helper.ActionLink <CourseEntityController>(
                                               c => c.Update(), "Обновление").ToString()))
                         )
                )
            .AddNode(
                Tree.New("Контент")
                .AddNode(Tree.New(helper.ListLink <News>("Новости")))
                .AddNode(Tree.New(helper.ListLink <Advice>("Советы")))
                .AddNode(Tree.New(helper.ListLink <Video>("Видео"))
                         .AddNode(Tree.New(helper.ListLink <VideoCategory>("Разделы"))))
                .AddNode(Tree.New(helper.ListLink <SuccessStory>("Истории успеха")))
                .AddNode(Tree.New(helper.ListLink <UsefulInformation>("Полезная информация")))
                .AddNode(Tree.New(helper.ListLink <Guide>("Путеводители"))
                         .AddNode(Tree.New(helper.ActionLink <SiteObjectRelationEntityController>(
                                               c => c.ReverseRelationSorting(typeof(Guide).Name, null, null), "Сортировка").ToString()))
                         )
                .AddNode(Tree.New(helper.ListLink <UserWork>("Работы слушателей"))
                         .AddNode(Tree.New(helper.ListLink <UserWorkSection>("Разделы"))))
                .AddNode(Tree.New(helper.ListLink <Banner>("Баннеры")))
                .AddNode(Tree.New(helper.ListLink <Response>("Отзывы"))
                         .AddNode(Tree.New(helper.ActionLink <ResponseEntityController>(
                                               c => c.ExportSearch(null, null, null, null, false), "Поиск")
                                           .ToString())))
                .AddNode(Tree.New(helper.ListLink <Organization>("Организации"))
                         .AddNode(Tree.New(helper.ListLink <OrgResponse>("Отзывы")))
                         .AddNode(Tree.New(helper.ListLink <OrgProject>("Проекты"))))
                )
            .AddNode(
                Tree.New("Маркетинговые акции")
                .AddNode(Tree.New(helper.ListLink <MarketingAction>("Акции"))))
            .AddNode(
                Tree.New("Инфраструктура").AddNode(Tree.New("Инфо").AddNode(Tree.New(
                                                                                helper.ActionLink <EmployeeEntityController>(c => c.TrainersInfo(),
                                                                                                                             "Преподаватели").ToString()),
                                                                            Tree.New(
                                                                                helper.ActionLink <UserEntityController>(c => c.Subscribers(),
                                                                                                                         "Подписчики").ToString()),
                                                                            Tree.New(
                                                                                helper.ActionLink <OrderEntityController>(c => c.Beeline(),
                                                                                                                          "Билайн").ToString())
                                                                            ))
                .AddNode(
                    Tree.New("Курсы")
                    .AddNode(courseLink("Анонсы", c => c.CourseInfo()))
                    .AddNode(courseLink("Новые верcии", c => c.CourseNewVersions()))
                    .AddNode(courseLink("Без связей", c => c.WithoutTag(0)))
                    .AddNode(courseLink("Без путеводителей", c => c.WithoutGuide()))
                    .AddNode(courseLink("Без описания", c => c.WithoutDescription()))
                    .AddNode(courseLink("Меньше 10 отзывов", c => c.WithoutResponse()))
                    .AddNode(courseLink("Привязки", c => c.TagsReport(null)))
                    .AddNode(courseLink("Без цепочек", c => c.WithoutChain())))
                .AddNode(Tree.New(helper.ListLink <Poll>("Опросы")))
                .AddNode(Tree.New(helper.ListLink <Competition>("Конкурсы")))
                .AddNode(Tree.New(helper.ListLink <Vacancy>("Вакансии")))
                .AddNode(Tree.New(helper.ListLink <SimplePage>("Страницы"))
                         .AddNode(
                             Tree.New(helper.ListLink <SimplePageRelation>("Связи страниц")))
                         .AddNode(Tree.New(helper.ListLink <PageMeta>("Мета теги")))
                         .AddNode(Tree.New(helper.ListLink <HtmlBlock>("Html блоки")))
                         )
                .AddNode(Tree.New(helper.ListLink <MailTemplate>("Шаблоны писем"))
                         .AddNode(Tree.New(helper.ActionLink <MailTemplateEntityController>(
                                               c => c.MailList(), "Рассылка").ToString())))
                .AddNode(Tree.New("Яндекс.Директ").AddNode(Tree.New(
                                                               helper.ActionLink <HomeController>(c => c.Competitors(null), "Конкуренты").ToString()))
                         .AddNode(Tree.New(
                                      helper.ActionLink <HomeController>(c => c.WordStat(), "WordStat").ToString()))
                         )
                )
            .AddNode(
                Tree.New("Заказы")
                .AddNode(startedOrderMenu)
                .AddNode(completeOrderMenu))
            .AddNode(
                Tree.New("Тесты")
                .AddNode(Tree.New(helper.ListLink <Test>("Тесты")))
                .AddNode(Tree.New(helper.ActionLink <OrderEntityController>(c => c.TestCertGroup(null),
                                                                            "Сертификаты группы").ToString())
                         ));
            //                .AddNode(Tree.New(helper.ListLink<OrderDetail>("Заказы курсов"))));
            return(model);
        }