コード例 #1
0
 public Task <CreateNewsResponse> CreateNewsAsync(CreateNews dto)
 {
     return(Task.Run(() =>
     {
         var id = Guid.NewGuid();
         var dateTime = DateTime.Now;
         NewsEntity entity = new NewsEntity()
         {
             CreatedDate = dateTime,
             Id = id,
             Introduction = dto.introduction,
             IsHot = dto.is_hot,
             NewsUrl = dto.news_url,
             OffLine = false,
             Thumbnail = dto.thumbnail_url,
             Title = dto.title
         };
         _newsRepository.Insert(entity);
         _categoryRelationshipsRepository.Insert(new CategoryRelationshipsEntity()
         {
             CategoryId = dto.type_id,
             CreatedDate = dateTime,
             ObjectId = id
         });
         return new CreateNewsResponse()
         {
             news_id = id
         };
     }));
 }
コード例 #2
0
        public ActionResult Create(CreateNews News)
        {
            if (ModelState.IsValid)
            {
                string connectionString = "Data Source=HRMSDEV;user id=PERSON;password=PERSON;Unicode=True;";
                string NEWS_ID;
                using (OracleConnection connection = new OracleConnection(connectionString))
                {
                    string number = null;
                    number = "";
                    OracleCommand cmd1 = new OracleCommand();
                    cmd1.CommandType = CommandType.Text;
                    cmd1.CommandText = "select nvl(max(substr(NEWS_ID,7,3)),0) from KMIINTRANET_MASTER_NEWS where substr(NEWS_ID,1,6)='" + Convert.ToDateTime(System.DateTime.Now).ToString("yyyyMM") + "'";
                    cmd1.Connection  = connection;
                    connection.Open();
                    objDataReader = cmd1.ExecuteReader();
                    if (objDataReader.HasRows)
                    {
                        objDataReader.Read();
                        number = Convert.ToString(Convert.ToInt32(objDataReader[0]) + 1);
                        if (number.Length == 1)
                        {
                            number = "00" + number;
                        }
                        else if (number.Length == 2)
                        {
                            number = "0" + number;
                        }
                        else if (number.Length == 3)
                        {
                            number = number;
                        }
                    }
                    cmd1 = null;
                    connection.Close();
                    OracleCommand cmd2 = new OracleCommand();
                    NEWS_ID = Convert.ToDateTime(System.DateTime.Now).ToString("yyyyMM") + number;
                    byte[] tempFile = new byte[News.NewsFile.InputStream.Length];
                    News.NewsFile.InputStream.Read(tempFile, 0, tempFile.Length);
                    cmd2.CommandText = "INSERT INTO KMIINTRANET_MASTER_NEWS(NEWS_ID,NEWS_TITLE,NEWS,NEWS_FILE,STATUS,CREATE_BY,CREATE_DATE) VALUES (:newsid,:title,:news,:newsfile,:stat,'" + Session["USER"] + "',sysdate)";
                    cmd2.CommandType = CommandType.Text;
                    cmd2.Connection  = connection;
                    connection.Open();
                    cmd2.Parameters.Add(":stat", OracleType.VarChar).Value   = News.stat.ToString();
                    cmd2.Parameters.Add(":newsfile", OracleType.Blob).Value  = tempFile;
                    cmd2.Parameters.Add(":news", OracleType.VarChar).Value   = News.isi.ToString();
                    cmd2.Parameters.Add(":title", OracleType.VarChar).Value  = News.title.ToString();
                    cmd2.Parameters.Add(":newsid", OracleType.VarChar).Value = NEWS_ID;

                    cmd2.ExecuteNonQuery();

                    cmd2 = null;
                    connection.Close();
                    return(RedirectToAction("Index"));
                }
            }

            return(View());
        }
コード例 #3
0
        public ResultObject RequestUploadNews(CreateNews news, string writerId)
        {
            news.Writer = writerId;
            //lưu vào cloud rồi lấy url, sau khi lấy url thì xóa List<Image> đi để giảm cache, ép kiểu ngược lại thành DetailedNews rồi cache

            //luu vao DB, tra lai newsID roi cap nhat vao cache
            throw new NotImplementedException();
        }
コード例 #4
0
        public async Task <ActionResult> CreateNews(CreateNews news)
        {
            if (ModelState.IsValid)
            {
                await _newsPageLogic.AddNews(news);

                return(RedirectToAction("Index", new { message = Message.createSuccess }));
            }
            return(RedirectToAction("Index", new { message = Message.error }));
        }
コード例 #5
0
        public async Task <IHttpActionResult> Post(CreateNews item)
        {
            if (ModelState.IsValid)
            {
                NewsDto newNews = _mapper.Map <CreateNews, NewsDto>(item);
                newNews.ApplicationUserId = (await _userService.GetUserId(User.Identity.Name));
                NewsDto news = await _newsService.Create(newNews);

                return(Ok(news));
            }

            return(BadRequest(ModelState));
        }
コード例 #6
0
ファイル: News.Service.cs プロジェクト: Terradue/DotNetTep
        public object Post(CreateNews request)
        {
            WebNews result = null;

            var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly);

            try {
                context.Open();

                if (request.Type.Equals(EntityType.GetEntityType(typeof(TwitterNews)).Keyword))
                {
                    TwitterNews tweet = null;
                    tweet = new TwitterNews(context);
                    tweet = (TwitterNews)request.ToEntity(context, tweet);
                    tweet.Store();
                    result = new WebNews(tweet);
                }
                else if (request.Type.Equals(EntityType.GetEntityType(typeof(RssNews)).Keyword))
                {
                    RssNews rss = null;
                    rss = new RssNews(context);
                    rss = (RssNews)request.ToEntity(context, rss);
                    rss.Store();
                    result = new WebNews(rss);
                    //} else if (request.Type.Equals(EntityType.GetEntityType(typeof(TumblrNews)).Keyword)){
                    //    TumblrNews tumblr = null;
                    //    tumblr = new TumblrNews(context);
                    //    tumblr = (TumblrNews)request.ToEntity(context, tumblr);
                    //    tumblr.Store();
                    //    result = new WebNews(tumblr);
                }
                else
                {
                    Article article = null;
                    article = new Article(context);
                    article = (Article)request.ToEntity(context, article);
                    article.Store();
                    result = new WebNews(article);
                }

                context.LogInfo(this, string.Format("/news POST Id='{0}'", request.Id));

                context.Close();
            } catch (Exception e) {
                context.LogError(this, e.Message, e);
                context.Close();
                throw e;
            }
            return(result);
        }
コード例 #7
0
        public IEnumerable Handle(Func <Guid, TournamentAggregate> al, CreateNews command)
        {
            var tournament = CommandQueries.GetTournaments().FirstOrDefault(x => x.Year == command.Year);
            var agg        = al(tournament.Id);

            yield return(new NewsCreated
            {
                Id = tournament.Id,
                NewsId = command.Id,
                Title = command.Title,
                Content = command.Content,
                Created = DateTime.Now
            });
        }
コード例 #8
0
        public async Task AddNews(CreateNews news)
        {
            var item = new News()
            {
                Title            = news.Title,
                NewsText         = news.NewsText,
                SlideDescription = news.SlideDescription,
                SlideTitle       = news.SlideTitle,
                ImgHref          = news.ImgHref,
                DateOfCreation   = DateTime.Today,
            };

            _db.NewsContext.Add(item);
            await _db.SaveChangesAsync();
        }
コード例 #9
0
        public ActionResult Add(CreateNews model, HttpPostedFileBase PhotoPath)
        {
            if (ModelState.IsValid && (PhotoPath != null && PhotoPath.ContentLength > 0))
            {
                foreach (string word in model.Text.Split(' '))
                {
                    if (word.Length > 50)
                    {
                        TempData["IsSuccess"]  = false;
                        TempData["Message"]    = "Длинна одного слова не может быть больше 50 символов";
                        TempData["CreateNews"] = model;
                        return(RedirectToAction("Index"));
                    }
                }

                News news = new News
                {
                    Title        = model.Title,
                    CreateDate   = DateTime.Now,
                    AuthorUserId = brioContext.CurrentUser.ID,
                    CompanyId    = brioContext.CurrentUser.CompanyId,
                    Text         = model.Text
                };

                var fileName = Path.GetFileName(PhotoPath.FileName);

                var savingPath = Path.Combine(HttpContext.Server.MapPath(AppSettings.NEWS_PHOTO_SAVING_PATH), fileName);
                PhotoPath.SaveAs(savingPath);
                news.PhotoPath = VirtualPathUtility.ToAbsolute(Path.Combine(AppSettings.NEWS_PHOTO_SAVING_PATH, fileName));

                newsRepository.Insert(news);
                newsRepository.SaveChanges();

                TempData["IsSuccess"] = true;
                TempData["Message"]   = "Новость успешно добавлена!";
                return(RedirectToAction("Index"));
            }
            else
            {
                TempData["IsSuccess"]  = false;
                TempData["Message"]    = "Новость не была создана, т.к. не заполнены все поля. Пожалуйста повторите попытку заполнив все поля.";
                TempData["CreateNews"] = model;
                return(RedirectToAction("Index"));
            }
        }
コード例 #10
0
        public async Task <ControllerResult> Create(CreateNews model)
        {
            if (!ModelState.IsValid)
            {
                string errorMessage = string.Empty;

                foreach (ModelState modelState in ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        errorMessage = string.Format("{0}\n{1}", errorMessage, error.ErrorMessage);
                    }
                }

                ControllerResult responce = new ControllerResult()
                {
                    IsSucces = true,
                    Message  = string.Format("{0}/#/SignUp/{1}", Repository.DNS, errorMessage)
                };

                return(responce);
            }

            this.logger.WriteInformation("Запрос на создание новости");

            RepositoryResult <News, ControllerResult> result = await this.repository.CreateNews(model);

            if (result.ResultType == RepositoryResultType.OK)
            {
                this.logger.WriteInformation(string.Format("Новость успешно создана id = {0}", result.Value.Id));
            }
            else
            {
                this.logger.WriteError("Ошибка при создании новости");
            }

            return(result.Responce);
        }
コード例 #11
0
        public async Task <IActionResult> Edit(NewsViewModel vm,
                                               [FromServices] CreateNews createNews,
                                               [FromServices] UpdateNews updateNews)
        {
            if (vm.Id > 0)
            {
                //Update post if it exists
                await updateNews.DoAsync(new UpdateNews.Request
                {
                    Id          = vm.Id,
                    Title       = vm.Title,
                    Body        = vm.Body,
                    Image       = vm.Image,
                    Created     = vm.Created,
                    Description = vm.Description,
                    Tags        = vm.Tags,
                    Category    = vm.Category
                });
            }
            else
            {
                //Create new post if not exists
                await createNews.DoAsync(new CreateNews.Request
                {
                    Title       = vm.Title,
                    Body        = vm.Body,
                    Image       = vm.Image,
                    Created     = DateTime.Now,
                    Description = vm.Description,
                    Tags        = vm.Tags,
                    Category    = vm.Category
                });
            }

            return(RedirectToAction("Index"));
        }
コード例 #12
0
        public ActionResult Create(CreateNews news)
        {
            if (ModelState.IsValid)
            {
                byte[] imageData = null;
                if (news.File != null)
                {
                    using (var binaryReader = new BinaryReader(news.File.InputStream))
                    {
                        imageData = binaryReader.ReadBytes(news.File.ContentLength);
                    }
                }
                _data.AddNews(new News
                {
                    Id      = Guid.NewGuid(),
                    Caption = news.Name,
                    Text    = news.Text,
                    Image   = imageData
                });

                return(RedirectToAction("Administration"));
            }
            return(View());
        }
コード例 #13
0
 public JsonResult Save(CreateNews command)
 {
     command.Id = Guid.NewGuid();
     Domain.Dispatcher.SendCommand(command);
     return(Json(command));
 }
コード例 #14
0
        public async Task <IHttpActionResult> Post([FromBody] CreateNews dto)
        {
            var resp = await _newsService.CreateNewsAsync(dto);

            return(Ok(resp));
        }
コード例 #15
0
        public async Task <RepositoryResult <News, ControllerResult> > CreateNews(CreateNews model)
        {
            RepositoryResult <News, ControllerResult> result = new RepositoryResult <News, ControllerResult>();

            MatchCollection matches   = Regex.Matches(model.Content, "<img src=\"" + @".+?" + "\"" + @"[.\s]*/>");
            List <string>   urls      = new List <string>(model.Urls);
            List <string>   usingUrls = new List <string>();

            News news = new News()
            {
                Title = model.Title
            };

            List <Image> images = new List <Image>();

            foreach (Match match in matches)
            {
                string url = Regex.Match(match.ToString(), "src=\"" + @".+?" + "\"").ToString()
                             .Replace("src=\"", string.Empty)
                             .Replace("\"", string.Empty)
                             .Replace(DNS, string.Empty);

                if (urls.Contains(url) || usingUrls.Contains(url))
                {
                    if (usingUrls.Contains(url))
                    {
                        continue;
                    }
                    else
                    {
                        usingUrls.Add(url);
                    }

                    urls.Remove(url);

                    string serverPath = HttpContext.Current.Server.MapPath(url);

                    string fileName      = Path.GetFileName(serverPath);
                    string newServerPath = HttpContext.Current.Server.MapPath(string.Format("~/Bundles/app/img/news/{0}", news.Id));

                    if (!Directory.Exists(newServerPath))
                    {
                        Directory.CreateDirectory(newServerPath);
                    }

                    newServerPath = Path.Combine(newServerPath, fileName);

                    try
                    {
                        File.Move(serverPath, newServerPath);

                        this.logger.WriteInformation(string.Format("Файл успешно пермещён с {0} в {1}", serverPath, newServerPath));
                    }
                    catch (Exception ex)
                    {
                        this.logger.WriteError(ex, string.Format("Ошибка при перемещении файла по расположению {0} в {1}", serverPath, newServerPath));

                        result.Responce = new ControllerResult()
                        {
                            IsSucces = false,
                            Message  = "Ошибка на серевере. Сервер временно недоступен, приносим свои извинения."
                        };

                        result.ResultType = RepositoryResultType.Bad;

                        return(result);
                    }

                    string newUrl = string.Format("/Bundles/app/img/news/{0}/{1}", news.Id, fileName);

                    model.Content = model.Content.Replace(url, newUrl);

                    images.Add(new Image()
                    {
                        URL = newUrl
                    });
                }
                else if (url.Contains("http://") || url.Contains("https://"))
                {
                    string path = HttpContext.Current.Server.MapPath(string.Format("~/Bundles/app/img/news/{0}/", news.Id));

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    string fileName = string.Format("{0}_{1}", Guid.NewGuid(), Guid.NewGuid());
                    path = Path.Combine(path, fileName);

                    using (WebClient WC = new WebClient())
                    {
                        try
                        {
                            WC.DownloadFile(url, path);
                            this.logger.WriteInformation(string.Format("Загружен файл с внешнего ресурса по ссылке {0}.", url));
                        }
                        catch (Exception ex)
                        {
                            string error = string.Format("Ошибка при загрузке файла с внешнего ресурса по ссылке {0}.", url);
                            this.logger.WriteError(ex, error);

                            result.Responce = new ControllerResult()
                            {
                                IsSucces = false,
                                Message  = error
                            };

                            result.ResultType = RepositoryResultType.Bad;

                            return(result);
                        }
                    }

                    string newUrl = string.Format("/Bundles/app/img/news/{0}/{1}", news.Id, fileName);

                    model.Content = model.Content.Replace(url, newUrl);

                    images.Add(new Image()
                    {
                        URL = newUrl
                    });
                }
                else
                {
                    result.Responce = new ControllerResult()
                    {
                        IsSucces = false,
                        Message  = "Ошибка на серевере. Сервер временно недоступен, приносим свои извинения."
                    };

                    result.ResultType = RepositoryResultType.Bad;

                    return(result);
                }
            }

            news.Images = images;

            string userName = HttpContext.Current.User.Identity.Name;

            User user = context.GetAll <User>().FirstOrDefault(u => u.UserName == userName);

            news.User    = user;
            news.Content = model.Content;

            context.Add(news);

            await this.context.SaveChangesAsync();

            foreach (string url in urls)
            {
                string path = HttpContext.Current.Server.MapPath(url);

                try
                {
                    File.Delete(path);
                    this.logger.WriteInformation(string.Format("Удалён файл по расположению", path));
                }
                catch (Exception ex)
                {
                    this.logger.WriteError(ex, string.Format("Ошибка удаления файла по расположению", path));
                }
            }


            result.Responce = new ControllerResult()
            {
                IsSucces = true,
                Message  = string.Format("/#/News/{0}", news.Id)
            };

            result.Value = news;

            result.ResultType = RepositoryResultType.OK;

            return(result);
        }
コード例 #16
0
        public async Task <ActionResult> InsertNews(CreateNews newForInsert)
        {
            return(await Task.Run(() =>
            {
                var dbHelpre = DBHelper.Instance;
                var BLInstance = TopNewsBL.Instance;
                dbHelpre.BeginTransaction();
                try
                {
                    if (ModelState.IsValid)
                    {
                        var news = new TopNews
                        {
                            Heading = newForInsert.Heading.Trim(),
                            ShortDescription = newForInsert.ShortDesc.Trim(),
                            NewsDescription = string.IsNullOrEmpty(newForInsert.Description) ? string.Empty : newForInsert.Description.Trim(),
                            IsActive = 0,
                            IsApproved = 0
                        };

                        var image = new ImageDetail
                        {
                            ImageType = (int)ImageType.TopNewsImage,
                            ImageUrl = " ",
                            Caption = newForInsert.ImageCaption,
                            CaptionLink = newForInsert.CaptionLink,
                            IsActive = 0,
                            IsFirst = 0
                        };

                        var fileName = string.Empty;
                        if (newForInsert.Image != null && newForInsert.Image.ContentLength > 0)
                        {
                            fileName = new Random().Next(1000000000).ToString() + Path.GetFileName(newForInsert.Image.FileName);
                            image.ImageUrl = ImagePath.TopTenNewsImage + "/" + fileName;
                            image.IsActive = 1;
                            image.IsFirst = 1;
                        }

                        string dirPath = ImagePath.TopTenNewsImage;
                        var user = (IUsers)this.Session[Constants.UserSessionKey];
                        BLInstance.Insert(ref dbHelpre, news, image, user);

                        if (SaveImage(ImagePath.TopTenNewsImage, fileName, newForInsert.Image))
                        {
                            newForInsert = new CreateNews();
                            ViewBag.Message = "Successfully Inserter.";
                            ModelState.Clear();
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("INSERT", "Oops ! There is some error.");
                        ViewBag.Message = "Oops ! There is some error.";
                    }

                    dbHelpre.CommitTransaction();
                    return View(newForInsert);
                }
                catch (Exception ex)
                {
                    dbHelpre.RollbackTransaction();
                    throw ex;
                }
                finally
                {
                    dbHelpre.Dispose();
                    BLInstance.Dispose();
                }
            }));
        }