コード例 #1
0
        public IActionResult Create(ArticleVM artvm)
        {
            if (ModelState.IsValid)
            {
                //Obteniendo la ruta principal del proyecto (wwwroot)
                string mainPath = hostEnvironment.WebRootPath;
                //Obteniendo la solicitud de la subida de los archivos...
                var files = HttpContext.Request.Form.Files;
                if (artvm.vm_Article.ArticleID == 0)
                {
                    //Nuevo Articulo
                    //Creación de un hash para los nombre de las imagenes de modo que sean unicas
                    string fileName = Guid.NewGuid().ToString();
                    //Estableciendo la ruta donde se guardarán las imagenes
                    var uploads   = Path.Combine(mainPath, @"images\articles");
                    var extension = Path.GetExtension(files[0].FileName);
                    using (var fileStreams = new FileStream(Path.Combine(uploads, fileName + extension), FileMode.Create))
                    {
                        files[0].CopyTo(fileStreams);
                    }

                    artvm.vm_Article.ArticleImageUrl     = @"\images\articles\" + fileName + extension;
                    artvm.vm_Article.ArticleCreationDate = DateTime.Now.ToString();

                    iworkUnit.Article.Add(artvm.vm_Article);
                    iworkUnit.Save();

                    return(RedirectToAction(nameof(Index)));
                }
            }

            artvm.vm_ListCategories = iworkUnit.Category.GetListCategories();
            return(View(artvm));
        }
コード例 #2
0
        public async Task <ActionResult> Index()
        {
            var query = from articles in _articleRepository.collection.AsQueryable()
                        join user in _userRepository.collection.AsQueryable() on articles.CreatedUserId equals user.Id
                        join categories in _categoryRepository.collection.AsQueryable() on articles.CategoryId equals categories.Id into joinedCategories
                        select new Article
            {
                Categories     = joinedCategories,
                CategoryId     = articles.CategoryId,
                CreatedUserId  = user.Id,
                DateInserted   = articles.DateInserted,
                DatePublished  = articles.DatePublished,
                DateUpdated    = articles.DateUpdated,
                Description    = articles.Description,
                Heading        = articles.Heading,
                Id             = articles.Id,
                IsActive       = articles.IsActive,
                IsDeleted      = articles.IsDeleted,
                ReadCount      = articles.ReadCount,
                SeoDescription = articles.SeoDescription,
                Summary        = articles.Summary,
                TagList        = articles.TagList,
                CreatedUser    = user
            };

            var vm = new ArticleVM
            {
                List = query.ToList()
            };

            return(View(vm));
        }
コード例 #3
0
        private async Task <ArticleAggregatedVM> GetExample(Guid id, Guid?commitId)
        {
            var commit1 = new ArticleCommitMainInfoVM
            {
                Id          = new Guid(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }),
                Title       = "Created",
                CreatedAt   = new DateTime(2021, 05, 15, 22, 23, 22),
                CreatedBy   = "artbiel",
                Description = "Article created",
                CommitState = CommitState.Commited,
                Type        = ArticleCommitType.Addition,
                Content     = ""
            };
            var commits = new List <ArticleCommitMainInfoVM>()
            {
                commit1
            };

            if (await _localStorageService.ContainKeyAsync(key + id))
            {
                var commitsFromStorage = await _localStorageService.GetItemAsync <List <ArticleCommitMainInfoVM> >(key + id);

                commits.AddRange(commitsFromStorage);
            }
            var article = new ArticleVM()
            {
                Id              = id,
                Title           = "Язык C# и платформа .NET",
                Content         = commits.Last().Content,
                CurrentCommitId = commitId ?? commits.Last().Id,
            };

            return(new() { ArticleInfo = article, Commits = commits });
        }
コード例 #4
0
        public async Task <ActionResult> Form(string id, ArticleVM vm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (!string.IsNullOrWhiteSpace(id))
                    {
                        var existing = await _articleRepository.collection.Find(x => x.Id == id).FirstOrDefaultAsync();

                        var filter = Builders <Article> .Filter.Eq("_id", ObjectId.Parse(id));

                        var model = Builders <Article> .Update
                                    .Set("CategoryId", vm.Article.CategoryId)
                                    //.Set("Tags", vm.Article.TagList.ToString().Split(',').ToList())
                                    .Set("Heading", vm.Article.Heading)
                                    .Set("Summary", vm.Article.Summary)
                                    .Set("Description", vm.Article.Description)
                                    .Set("SeoDescription", vm.Article.SeoDescription)
                                    .Set("DatePublished", vm.Article.DatePublished)
                                    .Set("IsActive", existing.IsActive)
                                    .Set("IsDeleted", existing.IsDeleted)
                                    .Set("DateInserted", existing.DateInserted)
                                    .Set("DateUpdated", DateTime.Now)
                                    .Set("CreatedUserId", User.Id);

                        await _articleRepository.collection.UpdateOneAsync(filter, model);

                        TempData["process_result"] = "Update is ok";

                        return(RedirectToAction("index"));
                    }
                    else
                    {
                        //vm.Article.Tags = vm.Article.TagList.ToString().Split(',').ToList();
                        vm.Article.CreatedUserId = User.Id;
                        vm.Article.ReadCount     = 1;
                        vm.Article.DateInserted  = DateTime.Now;
                        vm.Article.IsDeleted     = false;

                        await _articleRepository.collection.InsertOneAsync(vm.Article);

                        TempData["process_result"] = "Insert is ok";

                        return(RedirectToAction("form"));
                    }
                }
                catch (Exception ex)
                {
                    var msg = ex.Message;
                    TempData["process_result"] = "Error occured: " + msg;

                    return(RedirectToAction("form"));
                }
            }
            else
            {
                return(RedirectToAction("index"));
            }
        }
コード例 #5
0
        public ActionResult AddPosts(ArticleVM model)
        {
            // Get username
            string username = User.Identity.Name;

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            else
            {
                using (Db db = new Db()) {
                    ArticleDTO dto = new ArticleDTO();

                    // Get user id
                    var q      = db.Members.FirstOrDefault(x => x.Account == username);
                    int userid = q.UID;

                    dto.Title      = model.Title;
                    dto.Content    = model.Content;
                    dto.UID        = userid;
                    dto.CreateTime = DateTime.Now;
                    dto.Watch      = 0;

                    db.Articles.Add(dto);
                    db.SaveChanges();
                }
            }

            return(RedirectToAction("Posts"));
        }
コード例 #6
0
        public IEnumerable <ArticleVM> layds()
        {
            vuong_cms_context __db = new vuong_cms_context();
            var data = __db.Article.Where(w => w.CategoryId == 1 || w.CategoryId == 3).OrderByDescending(o => o.Id);

            return(ArticleVM.map(data));
        }
コード例 #7
0
        public ArticleVM get_by_id(int id)
        {
            vuong_cms_context __db = new vuong_cms_context();
            var data = __db.Article.FirstOrDefault(f => f.Id == id);

            return(ArticleVM.map(data));
        }
コード例 #8
0
        public IActionResult UpdateArticle(ArticleVM model)
        {
            //TODO: attach tags to the article
            var message = "Sikeresen hozzáadva!";

            ModelState.Remove("Article.Slug");
            ModelState.Remove("Article.Magazine.Category.Name");
            ModelState.Remove("Article.Magazine.Title");
            ModelState.Remove("Article.Author.Name");
            if (!ModelState.IsValid)
            {
                message = "Hiba a validáció során. A mezők kitöltése kötelező!";
                return(PartialView("Layout/_ErrorHandling", message));
            }

            var result = _articleService.Update(model.Article, User.Identity.Name);

            if (!result.IsOk())
            {
                message = String.Format("Hiba a hozzáadás során: {0} - {1}", result.Status, result.Message);
                return(PartialView("Layout/_ErrorHandling", message));
            }

            return(Json(""));
        }
コード例 #9
0
        public ActionResult Index(int?id, int page = 1)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ArticleVM articleVM = new ArticleVM
            {
                Articles = db.Articles
                           .Where(t => (t.TopicId == id) && (t.ShowFlag != false))
                           .OrderBy(a => a.ArticleId)
                           .Skip((page - 1) * PAGE_SIZE)
                           .Take(PAGE_SIZE),
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = PAGE_SIZE,
                    TotalItems   = db.Articles.Count()
                },
                SelectList   = new SelectList(db.Topics.Where(t => !(t.TopicId == id)), "TopicId", "Name"), // 선택된 Topic 제외
                CurrentTopic = db.Topics.Find(id).Name
            };

            return(View(articleVM));
        }
コード例 #10
0
ファイル: ArticleController.cs プロジェクト: BYDOC/Bydoc
        public ActionResult AddArticle(ArticleVM model)
        {
            ArticleVM vmodel = new ArticleVM();

            vmodel.drpCategories = DrpServices.getDrpCategories();

            if (ModelState.IsValid)
            {
                Article article = new Article();
                article.CategoryID = model.CategoryID;
                article.Content    = model.Content;
                article.Title      = model.Title;


                db.Articles.Add(article);
                db.SaveChanges();

                ViewBag.submitStatus = 1;
                return(View(vmodel));
            }
            else
            {
                ViewBag.submitStatus = 2;
                return(View(model));
            }
        }
コード例 #11
0
        public ArticleVM GetById(int id)
        {
            var service_result = service.GetById(id);

            ArticleVM api_result = Mapper.Map <Article, ArticleVM>(service_result);

            return(api_result);
        }
コード例 #12
0
ファイル: ArticleController.cs プロジェクト: BYDOC/Bydoc
        // GET: Admin/Article
        public ActionResult AddArticle()
        {
            ArticleVM model = new ArticleVM();

            model.drpCategories = DrpServices.getDrpCategories();


            return(View(model));
        }
コード例 #13
0
        public async Task <List <ArticleVM> > GetAverageRating(string type, int stars, bool top10)
        {
            List <ArticleVM> viewModels = new List <ArticleVM>();
            List <Articles>  articles   = new List <Articles>();

            var result = _context.Rating.Where(w => w.Article.Type == type).GroupBy(g => g.ArticleId, s => s.Grade).Select(g => new
            {
                ArticleId = g.Key,
                AvgScore  = g.Average()
            }).OrderByDescending(o => o.AvgScore).ToList();

            if (result.Count == 0)
            {
                return(viewModels);
            }

            foreach (var s in result)
            {
                Articles item = _context.Articles.Where(w => w.ArticleId == s.ArticleId).FirstOrDefault();

                if (item != null)
                {
                    articles.Add(item);

                    ArticleVM vm = new ArticleVM();

                    vm.Title       = item.Title;
                    vm.ReleaseDate = item.ReleaseDate;
                    vm.Type        = item.Type;
                    vm.ArticleId   = item.ArticleId;
                    vm.Grade       = s.AvgScore;
                    vm.Actors      = _context.ArticleActorRelation.Where(w => w.ArticleId == item.ArticleId).Select(s => s.Actor.Name).ToList();
                    vm.Image       = item.Image;
                    vm.Description = item.Description;

                    if (stars != 0)
                    {
                        if (vm.Grade >= stars)
                        {
                            viewModels.Add(vm);
                        }
                    }
                    else
                    {
                        viewModels.Add(vm);
                    }
                }
            }

            if (top10)
            {
                List <ArticleVM> top10ViewModels = viewModels.GetRange(0, 10);
                return(top10ViewModels);
            }

            return(viewModels);
        }
コード例 #14
0
        public ArticleVM getArticle(int?id)
        {
            var querystring = ApiStrings.article + id;

            var       article_result = fetcher.GetJson(ApiStrings.domain, querystring);
            ArticleVM article_root   = JsonConvert.DeserializeObject <ArticleVM>(article_result);

            return(article_root);
        }
コード例 #15
0
        public ActionResult Add()
        {
            ArticleVM model = new ArticleVM()
            {
                Categories = service.CategoryService.GetActive()
            };

            return(View(model));
        }
コード例 #16
0
        public async Task <IActionResult> EditSubject(int?id, ArticleVM articleVM)
        {
            if (id == null)
            {
                return(NotFound());
            }
            Subject subject = await _db.Subjects.Include(s => s.Course).Where(s => s.Id == id && s.isDeleted == true).FirstOrDefaultAsync();

            if (subject == null)
            {
                return(NotFound());
            }
            if (subject.isDeleted == false)
            {
                return(NotFound());
            }

            Article article = await _db.Articles.Include(a => a.Subject).Include(a => a.User).Where(a => a.SubjectId == subject.Id).FirstOrDefaultAsync();

            List <EditedSubject> editedSubjects = _db.EditedSubjects.Include(a => a.User).Where(e => e.SubjectId == subject.Id).ToList();

            EditedSubjectVM subjectVM = new EditedSubjectVM
            {
                Courses        = _db.Courses.Where(c => c.isDeleted == false),
                Article        = article,
                Subject        = subject,
                EditedSubjects = editedSubjects
            };

            if (!ModelState.IsValid)
            {
                return(View(subjectVM));
            }

            User user = await _userManager.GetUserAsync(User);

            subject.Name       = articleVM.Subject.Name;
            subject.Definition = articleVM.Subject.Definition;

            article.Content = articleVM.Article.Content;
            Course course = await _db.Courses.FindAsync(Int32.Parse(Request.Form["course"]));

            int           prev_id       = subject.CourseId;
            EditedSubject editedSubject = new EditedSubject
            {
                SubjectId  = subject.Id,
                UserId     = user.Id,
                EditedDate = DateTime.Now
            };

            subject.Course = course;
            _db.EditedSubjects.Add(editedSubject);
            await _db.SaveChangesAsync();

            return(RedirectToAction("Subject"));
        }
コード例 #17
0
        public IActionResult Create()
        {
            ArticleVM articlevm = new ArticleVM()
            {
                vm_Article        = new ArticleModel(),
                vm_ListCategories = iworkUnit.Category.GetListCategories()
            };

            return(View(articlevm));
        }
コード例 #18
0
        public ActionResult Delete(ArticleVM articleVM)
        {
            if (ModelState.IsValid)
            {
                DataHelper.DeleteArticle(articleVM.Article);
                return(RedirectToAction(articleVM.ActionName, "Promo", new { articleType = articleVM.ArticleType, count = articleVM.Count }));
            }

            return(View(articleVM));
        }
コード例 #19
0
        public void AddArticle(ArticleVM article)
        {
            Article art = new Article {
                Content = article.Content, CategoryId = article.CategoryId, Title = article.Title, Url = "Article/" + article.Title, PublishDate = DateTime.Now
            };

            art.Url = "Article" + art.Id;
            _applicationDbContext.Articles.Add(art);
            var res = _applicationDbContext.SaveChangesAsync().Result;
        }
コード例 #20
0
        public IActionResult Index()
        {
            ArticleVM articleVM = new ArticleVM
            {
                Article      = new Article(),
                ListCategory = _workContainer.category.getListCategory()
            };

            return(View(articleVM));
        }
コード例 #21
0
        public ActionResult GetArticleById(int id)
        {
            ArticleVM av = new ArticleVM()
            {
                Comments = db.Comments.Where(x => x.ID == id).ToList(),
                Article  = db.Articles.Where(x => x.ID == id).FirstOrDefault(),
            };

            return(View(av));
        }
コード例 #22
0
        public ActionResult ArticleAdd()
        {
            ArticleVM model = new ArticleVM()
            {
                Categories = _categoryService.GetActive(),
                AppUsers   = _appUserService.GetDefault(x => (x.Role == StatisticsTimes.Model.Option.Role.Admin || x.Role == StatisticsTimes.Model.Option.Role.Author) && (x.Status == StatisticsTimes.Core.Enum.Status.Active || x.Status == StatisticsTimes.Core.Enum.Status.Active)),
            };

            return(View(model));
        }
コード例 #23
0
        public ActionResult Add()
        {
            ArticleVM model = new ArticleVM()
            {
                AppUsers   = _appUserService.GetActive(),
                Categories = _categoryService.GetActive(),
            };

            return(View(model));
        }
コード例 #24
0
        public ActionResult Add(string actionName, ArticleType articleType, int count)
        {
            ArticleVM articleVM = new ArticleVM
            {
                ArticleType = articleType,
                ActionName  = actionName,
                Count       = count
            };

            return(View(articleVM));
        }
コード例 #25
0
        // GET: Home
        public ActionResult Index(int?id)
        {
            ArticleVM av = new ArticleVM()
            {
                User     = _db.Users.Where(x => x.ID == id).FirstOrDefault(),
                Article  = _db.Articles.Where(x => x.ID == id).FirstOrDefault(),
                Articles = _db.Articles.ToList(),
            };

            return(View(av));
        }
コード例 #26
0
ファイル: ArticleController.cs プロジェクト: BYDOC/Bydoc
        public ActionResult UpdateArticle(int id)
        {
            Article   article = db.Articles.FirstOrDefault(x => x.ID == id);
            ArticleVM model   = new ArticleVM();

            model.CategoryID    = article.CategoryID;
            model.Title         = article.Title;
            model.Content       = article.Content;
            model.drpCategories = DrpServices.getDrpCategories();

            return(View(model));
        }
コード例 #27
0
        public IActionResult Edit(ArticleVM artvm)
        {
            if (ModelState.IsValid)
            {
                //Obteniendo la ruta principal del proyecto (wwwroot)
                string mainPath = hostEnvironment.WebRootPath;
                //Obteniendo la solicitud de la subida de los archivos...
                var files         = HttpContext.Request.Form.Files;
                var articleObject = iworkUnit.Article.Get(artvm.vm_Article.ArticleID);
                if (files.Count() > 0)
                {
                    //Actualizar Imagen
                    //Creación de un hash para los nombre de las imagenes de modo que sean unicas
                    string fileName = Guid.NewGuid().ToString();
                    //Estableciendo la ruta donde se guardarán las imagenes
                    var uploads      = Path.Combine(mainPath, @"images\articles");
                    var newExtension = Path.GetExtension(files[0].FileName);

                    var imagePath = Path.Combine(mainPath, articleObject.ArticleImageUrl.TrimStart('\\'));
                    if (System.IO.File.Exists(imagePath))
                    {
                        //Eliminado la imagen anterior
                        System.IO.File.Delete(imagePath);
                    }

                    using (var fileStreams = new FileStream(Path.Combine(uploads, fileName + newExtension), FileMode.Create))
                    {
                        files[0].CopyTo(fileStreams);
                    }

                    artvm.vm_Article.ArticleImageUrl     = @"\images\articles\" + fileName + newExtension;
                    artvm.vm_Article.ArticleCreationDate = articleObject.ArticleCreationDate;

                    iworkUnit.Article.Update(artvm.vm_Article);
                    iworkUnit.Save();

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    //No reemplazar la imagen, conservar la que existe en la bd
                    artvm.vm_Article.ArticleImageUrl     = articleObject.ArticleImageUrl;
                    artvm.vm_Article.ArticleCreationDate = articleObject.ArticleCreationDate;
                }

                iworkUnit.Article.Update(artvm.vm_Article);
                iworkUnit.Save();

                return(RedirectToAction(nameof(Index)));
            }

            return(View(artvm));
        }
コード例 #28
0
        public ActionResult AddArticle()
        {
            TempData["durum"] = "";
            ArticleVM vm = new ArticleVM();

            AppUser user = new AppUser();

            user      = userDb.GetByName(HttpContext.User.Identity.Name);
            vm.Nick   = user.Nick;
            vm.UserId = user.ID;
            return(View(vm));
        }
コード例 #29
0
        public static ArticleVM MapToVM(Article article)
        {
            var vm = new ArticleVM();

            vm.Description    = article.Description;
            vm.ID             = article.ID;
            vm.Name           = article.Name;
            vm.Price          = article.Price;
            vm.Store_Name     = article.Store.Name;
            vm.Total_in_shelf = article.Total_in_shelf;
            vm.Total_in_vault = article.Total_in_vault;
            return(vm);
        }
コード例 #30
0
        public ActionResult Edite(ArticleVM viewModel, FormCollection form)
        {
            if (!ModelState.IsValid)
            {
                return(ShowValidateMessage());
            }
            var cats  = form["Category"].Split(',');
            var model = viewModel.MapTo <Article>();

            model.EditeTime = DateTime.Now;
            bll.EditeArticle(model, form["Category"]);

            return(Json(new { Code = 1, Msg = "编辑成功", RedirectUrl = "/AdminConsole/Article/Index" }));
        }
コード例 #31
0
ファイル: ChildController.cs プロジェクト: Thirlan/insideword
 public virtual ActionResult Article(ArticleVM viewModel)
 {
     return View(viewModel);
 }
コード例 #32
0
        public bool Parse(ProviderArticle anArticle, ProviderCurrentMember currentMember)
        {
            ProviderMember author = anArticle.Author;
            string authorName = null;
            long? authorId = null;
            if (author != null)
            {
                authorId = author.Id;
                authorName = author.DisplayName;
            }
            else
            {
                authorName = null;
            }

            bool authorIsNull = string.IsNullOrEmpty(authorName);
            PageTitle = anArticle.Title + " by " + (authorIsNull ? "Anonymous" : authorName);
            RelatedHeadlinesByCategory = anArticle.RelatedHeadlinesByCategory(5);
            RelatedHeadlinesByAuthor = anArticle.RelatedHeadlinesByAuthor(3);
            ConversationList = anArticle.Conversations.ConvertAll<ConversationVM>(aConversation => new ConversationVM(aConversation, currentMember, authorId));
            Article = new ArticleVM(anArticle, currentMember);

            return true;
        }