public JsonResult LoadPopupTrainer(long userId, UserLanguages userLanguages)
        {
            if (IsInvalid(userId, userLanguages))
            {
                return(JsonResultHelper.Error());
            }

            List <TrainerItem> items = GetOverdueItems(userId, userLanguages);

            return
                (JsonResultHelper.GetUnlimitedJsonResult(
                     new {
                sourceLanguageId = userLanguages.From.Id,
                items,
                html =
                    OurHtmlHelper.RenderRazorViewToString(ControllerContext, "PartialTrainer",
                                                          new PartialTrainerParams {
                    NeedShow = true,
                    BtnClass = "btn-xs",
                    LeftBtnContainerClass =
                        "popup-knowledge-panel-mark-btn",
                    CenterBtnContainerClass =
                        "popup-knowledge-panel-mark-btn",
                    RightBtnContainerClass =
                        "popup-knowledge-panel-mark-btn",
                    TrainerPanelClass = "",
                    TagTitle = "h3",
                    TagTranslation = "h4"
                })
            }));
        }
        public ActionResult CheckPurchasedGoods(long userId, string uniqueDownloadId)
        {
            if (IdGenerator.IsInvalidDownloadId(uniqueDownloadId))
            {
                return(JsonResultHelper.Error());
            }

            var            purchasedGoogsQuery = new PurchasedGoodsQuery();
            PurchasedGoods purchasedGoods      = purchasedGoogsQuery.GetPaid(uniqueDownloadId);

            LoggerWrapper.LogTo(LoggerName.Errors).ErrorFormat(
                "PaymentController.Check. Пользователь {0} проверял уникальный идентификатор покупки {1}. Статус: {2}!",
                userId, uniqueDownloadId, purchasedGoods != null ? "ОПЛАЧЕНО" : "НЕ оплачен");

            if (purchasedGoods == null)
            {
                return(JsonResultHelper.Error());
            }

            string html = OurHtmlHelper.RenderRazorViewToString(ControllerContext, "PartialDownloadPurchasedGoods",
                                                                new SuccessPaymentModel(
                                                                    purchasedGoods.ShortDescription,
                                                                    purchasedGoods.UniqueDownloadId,
                                                                    (GoodsId)purchasedGoods.GoodsId));

            return(JsonResultHelper.GetUnlimitedJsonResult(new { success = true, result = html }));
        }
Exemple #3
0
        public JsonResult AddComment(long userId, long authorId, string key, string comment, int lastShowedComment)
        {
            if (IdValidator.IsInvalid(authorId) || string.IsNullOrWhiteSpace(comment) ||
                WebSettingsConfig.Instance.IsSectionForbidden(SectionId.UserTasks))
            {
                return(JsonResultHelper.Error());
            }

            if (comment.Length > UserTasksSettings.COMMENT_MAX_LENGTH)
            {
                return(JsonResultHelper.Error());
            }

            RepositoryFactory repositoryFactory = WebSettingsConfig.Instance.GetRepositoryFactory();
            BanRepository     banRepository     = repositoryFactory.GetBanRepository();
            var  banHelper = new BanHelper(Request);
            bool isBanned  = banHelper.IsBanned(SectionId.UserTasks, userId, banRepository);

            if (isBanned)
            {
                return(JsonResultHelper.Error());
            }

            banHelper.RegisterEvent(SectionId.UserTasks, "AddComment", userId, banRepository);

            UserTasksRepository userTasksRepository = repositoryFactory.CreateUserRepository(authorId);

            //TODO: получить пользователя и если у него указано имя, то заполнить Author

            comment = OurHtmlHelper.PrepareStringFromUser(comment);
            //TODO: дописывать (автор) к имени пользователя
            var taskComment = new TaskComment {
                Author       = null,
                AuthorId     = userId,
                CreationDate = DateTime.Now.Ticks,
                Text         = comment
            };

            bool isAddedComment         = userTasksRepository.AddComment(key, taskComment);
            List <TaskComment> comments = userTasksRepository.GetComments(key, lastShowedComment);

            SendMail(string.Format("Пользователь {0} оставил комментарий к таску {1} автора {2}:\r\n{3}", userId, key, authorId, comment));

            var htmlItems = new StringBuilder();

            foreach (TaskComment newComment in comments)
            {
                string item = OurHtmlHelper.RenderRazorViewToString(ControllerContext, "PartialTaskComment", newComment);
                htmlItems.Insert(0, item);
            }

            return
                (JsonResultHelper.GetUnlimitedJsonResult(
                     new {
                success = isAddedComment,
                newComments = htmlItems.ToString(),
                countNewComments = comments.Count
            }));
        }
Exemple #4
0
 private static string GetHtml(ControllerContext controllerContext,
                               KnowledgeDataType knowledgeDataType,
                               List <SourceWithTranslation> items)
 {
     return(OurHtmlHelper.RenderRazorViewToString(controllerContext, "PartialKnowledgeItems",
                                                  new Tuple <KnowledgeDataType, List <SourceWithTranslation> >(
                                                      knowledgeDataType, items)));
 }
        public JsonResult Load(long userId, UserLanguages userLanguages, long prevId)
        {
            if (IdValidator.IsInvalid(userId) || UserLanguages.IsInvalid(userLanguages) || IdValidator.IsInvalid(prevId))
            {
                return(JsonResultHelper.Error(INVALID_DATA));
            }

            IUserKnowledgeQuery      userKnowledgeQuery = CreateUserKnowledgeQuery(userId);
            List <UserKnowledgeItem> items = GetData(userKnowledgeQuery, userLanguages, prevId);
            var htmlItems = new List <string>();

            foreach (UserKnowledgeItem userKnowledgeItem in items ?? new List <UserKnowledgeItem>(0))
            {
                string item = OurHtmlHelper.RenderRazorViewToString(ControllerContext, "PartialWallItem",
                                                                    userKnowledgeItem);
                htmlItems.Add(item);
            }
            return
                (JsonResultHelper.GetUnlimitedJsonResult(
                     new { sourceLanguageId = userLanguages.From.Id, items = htmlItems }));
        }