示例#1
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());
        }
示例#2
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());
        }
示例#3
0
        public List <string> GetBreadCrumbs(CityVM model)
        {
            var breadcrumb = new List <string>();

            breadcrumb.Add(HtmlControls.Anchor(MainMenu.Urls.Locations,
                                               "Классы и филиалы").ToString());
            return(breadcrumb);
        }
示例#4
0
        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);
        }
示例#5
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));
 }
示例#6
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()));
        }
示例#7
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());
 }
示例#8
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);*/
            }
示例#9
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);
        }
示例#10
0
        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);
        }
示例#11
0
 public static string UserFileLink(this HtmlHelper helper, UserFile userFile)
 {
     return(HtmlControls.Anchor(
                UserFiles.GetUserFileUrl(userFile), userFile.Name).ToString());
 }
示例#12
0
 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);
 }
示例#13
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);
        }