Esempio n. 1
0
        public async Task <ActionResult> CreateArticle(Article article, HttpPostedFileBase image)
        {
            try
            {
                if (Request.Form["Confirm"] != null)
                {
                    List <Tuple <string, string> > errors = articleManager.ValidateArticle(article);
                    if (errors.Count == 0)
                    {
                        var user = (User)Session["login"];
                        article.AuthorId = user.Id;

                        article.ModificationdDate = DateTime.Now;
                        article.CreationDate      = DateTime.Now;

                        if (image != null)
                        {
                            var imageData = new byte[image.ContentLength];
                            image.InputStream.Read(imageData, 0, image.ContentLength);
                            articleManager.CreateArticle(article, imageData);
                        }
                        else
                        {
                            articleManager.CreateArticle(article, null);
                        }
                        return(RedirectToAction("ArticleView", new { id = article.Id }));
                    }
                    else
                    {
                        foreach (Tuple <string, string> t in errors)
                        {
                            ModelState.AddModelError(t.Item1, t.Item2);
                        }
                        return(View(article));
                    }
                }
                else
                {
                    if (Request.Form["Import"] != null)
                    {
                        return(RedirectToAction("Import"));
                    }
                    return(View());
                }
            }
            catch (Exception e)
            {
                ViewBag.ErrorTitle       = "Server Error";
                ViewBag.ErrorDescription = "Please try again later";
                return(View("~/Views/Shared/ErrorPage.cshtml"));
            }
        }