Пример #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
 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);
        }