Пример #1
0
        public void SeminarCompleteForUser(User user, GroupSeminar seminar, string complexLink)
        {
            if (seminar.Group.Group_ID == 223973)
            {
                var mailTemplate = MailTemplateService.GetTemplate(MailTemplates.AdminSeminar, user.FullName);
                Send(info, MailAddress(user), mailTemplate.Description, mailTemplate.Name);
                return;
            }
            if (seminar.Group.Group_ID == 241944)
            {
                var mailTemplate = Htmls.AllHtmlBlocks()[HtmlBlocks.Seminar241944];
                Send(info, MailAddress(user), mailTemplate.Item2, mailTemplate.Item1);
                return;
            }
            var template    = MailTemplateService.GetTemplate(MailTemplates.SeminarComplete, user.FullName);
            var seminarLink =
                "Ссылка для подключения к семинару будет выслана Вам по электронной почте не позднее, чем за 15 минут до начала семинара.";
            var body = TemplateEngine.GetText(template.Description,
                                              new {
                SeminarInfo = GetSeminarInfo(seminar, complexLink),
                SeminarName = seminar.Group.Title,
                SeminarLink = seminarLink
            });

            Send(info, MailAddress(user), body, template.Name);
        }
Пример #2
0
        public void NewGroupPhoto(User user, string link)
        {
            var template = MailTemplateService.GetTemplate(MailTemplates.NewGroupPhoto, user.FullName);
            var body     = TemplateEngine.GetText(template.Description, new {
                PhotoLink = link
            });

            Send(info, MailAddress(user), body, template.Name);
        }
Пример #3
0
        public void AddControlForUnlimit(SimplePageVM model, PageController controller)
        {
            var urlHelper = controller.Url;
            var user      = controller.User;
            var link      = GetUnlimitOrderButton(urlHelper, user);
            var desc      = TemplateEngine.GetText(model.Entity.Description, new { OrderButton = link.ToString() });

            model.Description = new TextWithInfoTags(desc);
        }
Пример #4
0
        public void SimpleRegistration(SimpleRegUser user, string url)
        {
            var template = MailTemplateService.GetTemplate(MailTemplates.SimpleReg, user.Name);
            var body     = TemplateEngine.GetText(template.Description, new {
                Url = url
            });

            Send(info, new MailAddress(user.Email), body, template.Name);
        }
Пример #5
0
        public void RestorePassword(User user)
        {
            var template = MailTemplateService.GetTemplate(MailTemplates.RestorePassword, user.FullName);
            var body     = TemplateEngine.GetText(template.Description,
                                                  new {
                user.Password,
            });

            Send(info, MailAddress(user), body, template.Name);
        }
Пример #6
0
        public void TestCertPaid(Entities.Context.OrderDetail orderDetail)
        {
            var template = MailTemplateService.GetTemplate(MailTemplates.TestCertPaid,
                                                           orderDetail.Order.User.FullName);
            var body = TemplateEngine.GetText(
                template.Description, new {
                TestCert = H.Anchor("/order/testcertificates",
                                    orderDetail.UserTest.Test.Name).AbsoluteHref(),
            });

            Send(info, MailAddress(orderDetail.Order.User), body, template.Name);
            Send(info, siteCertOrders, GetOrderCmsAnchor(orderDetail.Order).ToString()
                 , "Сертификат оплачен");
        }
Пример #7
0
        private static string UpdateStatus(User user, Group g, string template)
        {
            var dateText  = GetDateText(g);
            var courseUrl = GetCourseUrl(g);
            var message   = TemplateEngine.GetText(template,
                                                   new {
                CourseName = StringUtils.AngleBrackets(g.Course.WebName),
                Date       = dateText,
                CourseUrl  = courseUrl
            });

            PostStatusUpdate(user, message);
            return(message);
        }
Пример #8
0
        public void GroupTestInfo(IEnumerable <User> users, IEnumerable <TagA> tests, string managerEmail)
        {
            var user     = AuthService.CurrentUser;
            var template = MailTemplateService.GetTemplate(MailTemplates.GroupTestInfo, user.FullName);
            var userPart = users.Select(x => _.List(x.FullName, " Логин: ".Tag("strong"), x.Email,
                                                    " Пароль: ".Tag("strong"), x.Password).JoinWith(" ")).JoinWith(Br);
            var body = TemplateEngine.GetText(template.Description, new { GroupInfo = userPart +
                                                                                      Br + H.strong["Тесты"] + Br +
                                                                                      tests.Select(x => x.ToString()).JoinWith(Br) });
            var to = managerEmail.IsEmpty()
                                ? MailAddress(user)
                                : new MailAddress(managerEmail);

            Send(info, to, body, template.Name);
        }
Пример #9
0
        public void RegistrationComplete(User user, string couponLink, bool isCityCoupon)
        {
            var template = MailTemplateService
                           .GetTemplate(MailTemplates.RegistrationComplete, user.FullName);
//			var blockId = isCityCoupon ? HtmlBlocks.CityCoupon : HtmlBlocks.RegCoupon;
//			var text = Htmls.AllHtmlBlocks()[blockId];
            var body = TemplateEngine.GetText(template.Description,
                                              new {
                user.Password, user.Email,
//					Text = text,
//					CouponImage = CouponUtils.RegistrationIsActive ? H.Img(couponLink) : null
            });

            Send(info, MailAddress(user), body, template.Name);
        }
Пример #10
0
        private static string UpdateMegaStatus(User user, List <Group> groups,
                                               string template)
        {
            var dateText = GetDateText(groups.First());
            var courses  = "Все курсы, которые я веду, на моей персональной страничке {0} ."
                           .FormatWith(GetTrainerUrl(groups.First().Teacher_TC));
            var message = TemplateEngine.GetText(template,
                                                 new {
                Date    = dateText,
                Courses = courses
            });

            PostStatusUpdate(user, message);
            return(message);
        }
Пример #11
0
        public static string SkypeTextBlock()
        {
            var context     = new SpecialistWebDataContext();
            var isIcqOnline = new TimeSpan(9, 30, 00) <= DateTime.Now.TimeOfDay &&
                              DateTime.Now.TimeOfDay <= new TimeSpan(18, 00, 00) &&
                              !DateTime.Now.DayOfWeek.In(DayOfWeek.Saturday, DayOfWeek.Sunday);
            var icqIcon = Images.Main(isIcqOnline ? "ico_icq.png" : "icq_offline.gif");

            var skypeIcon = Images.Main(isIcqOnline ? "skype_online.png" : "skype_offline.png");
            var desc      =
                context.SimplePages.Where(x => x.SysName == SimplePages.Skype).
                Select(x => x.Description).FirstOrDefault();

            return(TemplateEngine.GetText(desc, new { icqIcon, skypeIcon }));
        }
Пример #12
0
        public SimplePage GetHostingInfo()
        {
            var user       = AuthService.CurrentUser;
            var student    = user.Student;
            var simplePage = SimplePageService.GetAll().SysName(SimplePages.HostingInfo);

            simplePage.Description = TemplateEngine.GetText(simplePage.Description,
                                                            new
            {
                user.FullName,
                student.HostingSite,
                student.HostingLogin,
                student.HostingPassword
            });
            return(simplePage);
        }
Пример #13
0
        public ActionResult MarketingAction(string urlName)
        {
            var action = MarketingActionService.FirstOrDefault(x => x.IsActive && x.UrlName == urlName);

            if (action == null)
            {
                return(null);
            }
            if (action.MarketingAction_ID == Specialist.Entities.Const.MarketingActions.Unlimit)
            {
                var button = SimplePageVMService.GetUnlimitOrderButton(Url, User);
                action.Description = TemplateEngine.GetText(action.Description, new { OrderButton = button.ToString() });
            }
            var page = action.IsSpecialOffer ? SimplePages.SpecialActions : SimplePages.MarketingActions;

            return(MView(Views.Center.MarketingAction, new MarketingActionVM {
                MarketingAction = action,
                MarketingActions = SimplePageService.GetAll().BySysName(page),
            }));
        }
Пример #14
0
        public void TestResult(User user, TagA test, List <TagA> courses, UserTest userTest)
        {
            if (user == null)
            {
                return;
            }
            var templateName = MailTemplates.TestResult;

            if (userTest.IsPass)
            {
                templateName = MailTemplates.TestResultSuccess;
            }
            var template = MailTemplateService.GetTemplate(templateName, user.FullName);
            var body     = TemplateEngine.GetText(template.Description,
                                                  new {
                Course = courses.Select(x => x.ToString()).JoinWith(", "),
                Test   = test.ToString()
            });

            Send(info, MailAddress(user), AddTestResultUtm(body), template.Name);
        }
Пример #15
0
 public void Send(SmtpClient client, MailTemplate template, string mail, string userName = null)
 {
     try {
         var body = TemplateEngine.GetText(template.Description, new { userName });
         using (var message =
                    new MailMessage(maillist, new MailAddress(mail))
         {
             IsBodyHtml = true,
             BodyEncoding = Encoding.UTF8,
             Subject = template.Name,
             Body = MailMaster.FormatWith(body),
         }) {
             client.Send(message);
         }
     }
     catch (FormatException e) {
         Unsubscribe(mail);
         Logger.Exception(e, "mail list format exception " + mail);
     }
     catch (Exception e) {
         Logger.Exception(e, this + " " + mail);
     }
 }
Пример #16
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);
        }
Пример #17
0
        public void OrderStarted(Entities.Context.Order order)
        {
            var orderDetail = order.OrderDetails.FirstOrDefault(x => !x.IsTestCert);

            if (orderDetail == null)
            {
                return;
            }
            var courseData = orderDetail.Course;
            var groupData  = orderDetail.Group;

            var user        = order.User;
            var managerData = EmployeeService.AllEmployees()[Employees.GetKarpovich()];
            var manager     = H.Anchor("/manager/" + managerData.Employee_TC.ToLower(),
                                       managerData.FullName).AbsoluteHref().ToString();
            var managerPhoto = Images.Employee(managerData.Employee_TC).ToString();

            var userName = user.FullName;
            var template = MailTemplateService.GetTemplate(MailTemplates.OrderStarted, userName);

            var orderDescription = H.Anchor("/course/" + courseData.UrlName.ToLower(),
                                            courseData.GetName()).AbsoluteHref().ToString();
            var certType = string.Empty;

            if (courseData.AuthorizationType_TC == AuthorizationTypes.Microsoft)
            {
                certType = "Международный сертификат Microsoft";
            }
            else
            {
                certType = courseData.CourseCertificates
                           .FirstOrDefault().GetOrDefault(x => x.CertType.CertTypeName);
            }
            if (!certType.IsEmpty())
            {
                certType = " и " + certType;
            }
            var complexInfo = string.Empty;
            var trainerInfo = string.Empty;

            if (groupData != null && groupData.Teacher != null)
            {
                var trainerLink = H.Anchor("/trainer/" +
                                           groupData.Teacher.Employee_TC.ToLower(),
                                           groupData.Teacher.FullName).AbsoluteHref().ToString();
                var complexData = groupData.Complex;
                var complexLink = H.Anchor("/locations/complex/" +
                                           complexData.UrlName, complexData.Name).ToString();

                trainerInfo = "Ваш курс будет вести {0}. {1} <br/> {2}".FormatWith(trainerLink,
                                                                                   StringUtils.GetFirstParagraph(groupData.Teacher.SiteDescription),
                                                                                   H.Anchor("/trainer/{0}/trainer-responses/1".FormatWith(
                                                                                                groupData.Teacher.Employee_TC.ToLower()),
                                                                                            "Отзывы по преподавателю").AbsoluteHref());
                complexInfo = " или непосредственно в учебный комплекс {0} по адресу {1} {2}"
                              .FormatWith(complexLink, complexData.Address,
                                          H.Anchor(Urls.GetComplexMap(complexData.UrlName), "[Схема проезда]"));

                orderDescription += (". Дата начала занятий: {0}. " +
                                     "Место проведения обучения: УК {1}. Дни и часы занятий: {2} {3}").FormatWith(
                    groupData.DateBeg.DefaultString(), complexLink, groupData.DaySequence, groupData.TimeInterval);
            }
            var body = TemplateEngine.GetText(
                template.Description, new {
                orderDescription,
                manager,
                trainerInfo,
                complexInfo,
                managerPhoto,
                certType
            });
            var title = TemplateEngine.GetText(template.Name, new{ UserName = user.FirstSecondName });

            body = StringUtils.AddUtm(body, "email", "email", "unfinished_orders");
            Send(new MailAddress(managerData.FirstSpecEmail), MailAddress(order.User), body, title, websiteManagers);
        }