Esempio n. 1
0
            public void ArticleValidateInputFields()
            {
                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                var errors = articleBase.ValidateFildes();

                Assert.IsTrue(errors == "", errors);
            }
        /// <summary>
        /// 데이터 저장, 수정, 답변 공통 메서드
        /// </summary>
        public int SaveOrUpdate(ArticleBase n, BoardWriteFormType formType)
        {
            int r = 0;

            // 파라미터 추가
            var p = new DynamicParameters();

            //[a] 공통
            p.Add("@Name", value: n.Name, dbType: DbType.String);
            p.Add("@Email", value: n.Email, dbType: DbType.String);
            p.Add("@Title", value: n.Title, dbType: DbType.String);
            p.Add("@Content", value: n.Content, dbType: DbType.String);
            p.Add("@Password", value: n.Password, dbType: DbType.String);
            p.Add("@Encoding", value: n.Encoding, dbType: DbType.String);
            p.Add("@Homepage", value: n.Homepage, dbType: DbType.String);
            p.Add("@FileName", value: n.FileName, dbType: DbType.String);
            p.Add("@FileSize", value: n.FileSize, dbType: DbType.Int32);

            p.Add("@Category", value: n.Category, dbType: DbType.String); // 추가

            switch (formType)
            {
            case BoardWriteFormType.Write:
                //[b] 글쓰기 전용
                p.Add("@PostIp", value: n.PostIp, dbType: DbType.String);

                r = db.Execute("CongressesWrite", p, commandType: CommandType.StoredProcedure);
                break;

            case BoardWriteFormType.Modify:
                //[b] 수정하기 전용
                p.Add("@ModifyIp", value: n.ModifyIp, dbType: DbType.String);
                p.Add("@Id", value: n.Id, dbType: DbType.Int32);

                r = db.Execute("CongressesModify", p, commandType: CommandType.StoredProcedure);
                break;

            case BoardWriteFormType.Reply:
                //[b] 답변쓰기 전용
                p.Add("@PostIp", value: n.PostIp, dbType: DbType.String);
                p.Add("@ParentNum", value: n.ParentNum, dbType: DbType.Int32);

                r = db.Execute("CongressesReply", p, commandType: CommandType.StoredProcedure);
                break;
            }

            return(r);
        }
Esempio n. 3
0
        private async Task <DataShell> SaveArticleHead(IFormCollection pictureInfo, ArticleBase updateData)
        {
            DataShell result = new DataShell();

            try{
                var oldArticleHeadData = await _blogContext.Articles.FindAsync(updateData.id);

                if (oldArticleHeadData == null)
                {
                    result.error = "invalid id article";
                    return(result);
                }

                var articleCategory = await _blogContext.ArticleCategories.FindAsync(updateData.category.id);

                if (articleCategory == null)
                {
                    result.error = "invalid id category";
                    return(result);
                }

                if (pictureInfo.Files?.Count > 0)
                {
                    var newSrc = await _fileOperations.SaveFileAsync(pictureInfo.Files[0], updateData.id.ToString());

                    if (newSrc.error == null && newSrc.stringData != null)
                    {
                        if (oldArticleHeadData.srcHeadPicture != newSrc.stringData)
                        {
                            _fileOperations.DeleteOldFile(oldArticleHeadData.srcHeadPicture);
                        }
                        updateData.srcHeadPicture = newSrc.stringData;
                    }
                }

                updateData.category = articleCategory;
                oldArticleHeadData.Update(updateData);

                await _blogContext.SaveChangesAsync();
            }
            catch (Exception ex) {
                _logger.LogError(ex, "Fail prepeare save datas");
                result.error = "Fail prepeare save datas";
            }
            return(result);
        }
Esempio n. 4
0
            public void ValidateTagsTextBoxSugestionsTags()
            {
                string shortTag = _params["ShortTag"].ToString();
                string tag      = _params["Tag"].ToString();

                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.WriteShortTags(shortTag);

                Assert.True(articleBase.ValidateAutoComplete(tag), $"Expected Tag {tag} was not shown on the suggestions.");
            }
Esempio n. 5
0
            public void ValidateBodyTextfieled()
            {
                var bodyExValue = _params["bodyExValue"].ToString();

                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.WriteDec(bodyExValue);
                var bodyAcValue = articleBase.GetBodyValue();

                Assert.AreEqual(bodyExValue, bodyAcValue);
            }
Esempio n. 6
0
            public void PreviewButtonCheckEditButton()
            {
                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.ClickOnMagicStick(2);
                articleBase.WriteTitle("VIDEO:Title Title Title");
                PreviewPage previewPage     = articleBase.ClickOnPreviewBtn();
                ArticleBase articleBaseEdit = previewPage.ClickOnEditButton();

                Assert.IsTrue(articleBaseEdit.ValidateEditMode());
            }
Esempio n. 7
0
            public void DragAndDropAcoverImage()
            {
                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage     editorPage     = homePageConnected.ClickOnAddArticle();
                ArticleBase    articleBase    = editorPage.ClickOnArticle();
                CropImagePopUp cropImagePopUp = articleBase.DragImage(0);

                cropImagePopUp.ClickOnCropImageBtn();
                cropImagePopUp.ClickOnEditokBtn();

                Assert.IsTrue(articleBase.ValidateContainerImage(), "Container image was not exsists on image fieled after dragging.");
                Assert.IsTrue(articleBase.ValidateDeleteButtonCoverimage(), "Delete button on cover image was not exsist.");
            }
Esempio n. 8
0
        public PostPage Create(Type template)
        {
            EditorPage  editorPage  = ClickOnAddArticle();
            ArticleBase articleBase = editorPage.ClickOnTemplate(Templates.FindIndex(x => x == template));

            articleBase.ClickOnMagicStick(2);
            articleBase.WriteTitle(Title);
            PreviewPage previewPage = articleBase.ClickOnPreviewBtn();
            PostPage    postPage    = previewPage.ClickOnPublishBtn();

            postPage.ValidatePostCreated(Title);
            var parsedTitle = new string(Title.ToCharArray().Where(c => char.IsLetter(c) || c == '-').ToArray()).Replace("posts", "").Replace("-", " ");

            Title = parsedTitle.Trim();

            return(new PostPage(_browser));
        }
Esempio n. 9
0
        public HttpResponseMessage Get(int id)
        {
            try
            {
                var article = ArticleBase.Load(id, _articleRepository).GetJSONModel();

                if (article == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.NoContent));
                }

                return(Request.CreateResponse(HttpStatusCode.OK, article));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Esempio n. 10
0
        public HttpResponseMessage Delete(int id)
        {
            try
            {
                if (_articleRepository.Exists(id))
                {
                    ArticleBase.Delete(id, _articleRepository);

                    return(Request.CreateResponse(HttpStatusCode.NoContent));
                }

                return(Request.CreateResponse(HttpStatusCode.Gone));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Esempio n. 11
0
            public void PublishButton()
            {
                var                 postTitle           = "VIDEO:Test post article";
                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.ClickOnMagicStick(2);
                articleBase.WriteTitle(postTitle);
                PreviewPage previewPage = articleBase.ClickOnPreviewBtn();
                PostPage    postPage    = previewPage.ClickOnPublishBtn();

                Assert.IsTrue(postPage.ValidatePostCreated(postTitle));
            }
Esempio n. 12
0
            public void ImageSearchValidateMaxSearchResultsAndContent()
            {
                int    maxResults = _params["MaxResults"].ToInt32();
                string search     = _params["Search"].ToString();

                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.SearchImage(search);

                Assert.AreEqual(articleBase.ValidateImageSearchResults(maxResults), maxResults);
                Assert.True(articleBase.ValidateImageContenet(search), "Results weren't related to the srearch");
            }
Esempio n. 13
0
            public void Editor_Article_ValidateTitleTextfieled()
            {
                var titleExValue = _params["titleExValue"].ToString();

                _browser.Navigate(_config.Url);
                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.WriteTitle(titleExValue);
                var titleAcValue = articleBase.GetTitleValue();

                Assert.AreEqual(titleExValue, titleAcValue);
            }
Esempio n. 14
0
            public void EI_Article_FullFlow()
            {
                _browser.Navigate(_config.Url + "/management");
                Auth0LoginPage loginPage      = new Auth0LoginPage(_browser);
                ManagementPage managementPage = loginPage.LoginEI(_config.ConfigObject.Users.AdminUser);

                managementPage.ClickOnEditorButton();
                EditorPage editorPage = new EditorPage(_browser);

                editorPage.ClickOnArticle();
                ArticleBase articleBase = new ArticleBase(_browser);

                articleBase.FillArticleTemplate();
                PostPage postPage = new PostPage(_browser);

                postPage.ValidateComponents(new BsonArray {
                    ".logo-img", ".post-cover__media img", ".post-article__post-title__title", ".post-content", ".post-side-content", "transfer-news--container", ".post-side-content__external-widget.external-widget.external-widget--taboola", ".post-metadata", ".reactions__list", ".share-component--post-cover", ".share-component--post-bottom", ".trc_rbox.thumbnails-b.trc-content-sponsored", ".post-after .trc-content-sponsored", ".user-menu__link", ".edition-component.has-dropdown", ".new-article", ".main-sidenav-toggle", "#site-header"
                });
            }
Esempio n. 15
0
        private void DisplayDataForReply()
        {
            // 넘겨온 Id 값에 해당하는 레코드 하나 읽어서 모델 클래스에 바인딩
            var model = new ArticleBase();

            if (AccountHandler.HasGroup("Administrators"))
            {
                model = _repository.GetByIdAdmin(Convert.ToInt32(_Id));
            }
            else
            {
                model = _repository.GetById(Convert.ToInt32(_Id), _userName);
            }

            txtTitle.Text = $"Re : {model.Title}";
            //string content = $"<br /><br />On {model.PostDate}, '{model.Name}' wrote:<hr />{model.Content}";
            string content = $"\r\n\r\nOn {model.PostDate}, '{model.Name}' wrote:\r\n{model.Content}";

            txtContent.Text = content;
        }
Esempio n. 16
0
            public void ValidateTagsTextBoxInsertSingleTag()
            {
                BsonArray tagExValue = _params["Tag"].AsBsonArray;

                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.WriteTags(tagExValue);
                articleBase.ClickOnMagicStick(2);
                articleBase.WriteTitle("VIDEO:Title Title Title");
                PreviewPage previewPage = articleBase.ClickOnPreviewBtn();
                PostPage    postPage    = previewPage.ClickOnPublishBtn();
                string      errors      = postPage.ValidateTagsOnSourcePage(tagExValue);

                Assert.IsTrue(string.IsNullOrEmpty(errors), errors);
            }
Esempio n. 17
0
            public void ValidateUiComponentsExistOnPage()
            {
                var       postTitle  = "VIDEO:Test post article";
                BsonArray components = _params["Components"].AsBsonArray;

                HomePage            homePage            = new HomePage(_browser);
                FaceBookconnectPage faceBookconnectPage = homePage.ClickOnConnectBtn();
                HomePage            homePageConnected   = faceBookconnectPage.Login(_config.ConfigObject.Users.AdminUser);

                homePageConnected.ValidateUserProfilePic();
                EditorPage  editorPage  = homePageConnected.ClickOnAddArticle();
                ArticleBase articleBase = editorPage.ClickOnArticle();

                articleBase.ClickOnMagicStick(2);
                articleBase.WriteTitle(postTitle);
                PreviewPage previewPage = articleBase.ClickOnPreviewBtn();
                PostPage    postPage    = previewPage.ClickOnPublishBtn();

                var errors = postPage.ValidateComponents(components);

                Assert.True(string.IsNullOrEmpty(errors), errors);
            }
        public DataShell Validate(IQueryCollection requestParams, IFormCollection formData)
        {
            var result = new DataShell();

            if (!requestParams.ContainsKey("type") ||
                (requestParams.ContainsKey("type") &&
                 (requestParams["type"].ToString() != "article" &&
                  requestParams["type"].ToString() != "section")
                ) ||
                !formData.ContainsKey("JSON")
                )
            {
                result.error = "invalid query parametrs";
                return(result);
            }
            string jsonData = formData.Where(x => x.Key == "JSON")?.Select(x => x.Value.ToString()).FirstOrDefault();

            if (jsonData == null)
            {
                result.error = "invalid JSON parametrs";
                return(result);
            }

            switch (requestParams["type"].ToString())
            {
            case ("article"):
            {
                try
                {
                    ArticleBase updateArticleData = JsonConvert.DeserializeObject <ArticleBase>(jsonData);
                    result.error = updateArticleData.Validate().error;
                    result.data  = updateArticleData;
                }
                catch
                {
                    result.error = "invalid article data structure";
                    return(result);
                }
                break;
            }

            case ("section"):
            {
                try
                {
                    Section preSection = JsonConvert.DeserializeObject <Section>(jsonData);
                    result.error = preSection.Validate().error;
                    result.data  = preSection;
                }
                catch
                {
                    result.error = "invalid section data structure";
                    return(result);
                }
                break;
            }

            default:
            {
                result.error = "invalid query parametrs";
                return(result);
            }
            }
            return(result);
        }
        protected void btnWrite_Click(object sender, EventArgs e)
        {
            // 보안 문자를 정확히 입력했거나, 로그인이 된 상태라면...
            if (IsImageTextCorrect())
            {
                UploadProcess(); // 파일 업로드 관련 코드 분리

                ArticleBase note = new ArticleBase();

                note.Id = Convert.ToInt32(_Id);

                note.Name     = txtName.Text;
                note.Email    = Dul.HtmlUtility.Encode(txtEmail.Text);
                note.Homepage = txtHomepage.Text;
                note.Title    = Dul.HtmlUtility.Encode(txtTitle.Text);
                note.Content  = txtContent.Text;
                note.FileName = _FileName;
                note.FileSize = _FileSize;
                note.Password = txtPassword.Text;
                note.PostIp   = Request.UserHostAddress;
                note.Encoding = rdoEncoding.SelectedValue;

                CongressRepository repository = new CongressRepository();

                switch (FormType)
                {
                case BoardWriteFormType.Write:
                    repository.Add(note);
                    Response.Redirect("CongressList.aspx");
                    break;

                case BoardWriteFormType.Modify:
                    note.ModifyIp = Request.UserHostAddress;
                    note.FileName = ViewState["FileName"].ToString();
                    note.FileSize = Convert.ToInt32(ViewState["FileSize"]);
                    int r = repository.UpdateNote(note);
                    if (r > 0)     // 업데이트 완료
                    {
                        Response.Redirect($"CongressView.aspx?Id={_Id}");
                    }
                    else
                    {
                        lblError.Text =
                            "업데이트가 되지 않았습니다. 암호를 확인하세요.";
                    }
                    break;

                case BoardWriteFormType.Reply:
                    note.ParentNum = Convert.ToInt32(_Id);
                    repository.ReplyNote(note);
                    Response.Redirect("CongressList.aspx");
                    break;

                default:
                    repository.Add(note);
                    Response.Redirect("CongressList.aspx");
                    break;
                }
            }
            else
            {
                lblError.Text = "보안코드가 틀립니다. 다시 입력하세요.";
            }
        }