public ActionResult NewsSync()
        {
            IEnumerable <NewsGallery> newsGalleries = db.NewsGalleries;

            foreach (var os in newsGalleries)
            {
                db.NewsGalleries.Remove(os);
            }
            db.SaveChanges();

            var res = new List <NewsGallery>();

            using (var ctx = new ClientContext("http://portal.gd-urengoy.gazprom.ru"))
            {
                var web = ctx.Web;
                ctx.Load(web);

                var list = web.Lists.GetByTitle("Новости");
                ctx.Load(web.Lists);
                ctx.Load(list);

                var caml = new CamlQuery
                {
                    ViewXml =
                        @"<View>
                      <Query>
                        <ViewFields>
                          <FieldRef Name='Preview' />
                          <FieldRef Name='PublishingDate' />
                          <FieldRef Name='ImagePreview' />
                          <FieldRef Name='Title' />
                        </ViewFields>
                        <OrderBy>
                          <FieldRef Name='PublishingDate' Ascending='FALSE' />
                        </OrderBy>
                      </Query>
                    </View>"
                };
                var listItems = list.GetItems(caml);
                ctx.Load(listItems);
                ctx.ExecuteQuery();

                int i = listItems.Count - 1;
                foreach (var item in listItems)
                {
                    string Preview        = null;
                    string PublishingDate = null;
                    string ImagePreview   = null;
                    string Title          = null;
                    string Text           = null;

                    if (item.FieldValues["Preview"] != null)
                    {
                        Preview = item.FieldValues["Preview"].ToString().Replace("http://portal.gd-urengoy.gazprom.ru", "");
                        Preview = Preview.Replace("src=\"", "src=\"" + dir);
                    }
                    ;

                    if (item.FieldValues["PublishingDate"] != null)
                    {
                        PublishingDate = item.FieldValues["PublishingDate"].ToString().Remove(10);
                    }
                    ;

                    if (item.FieldValues["ImagePreview"] != null)
                    {
                        ImagePreview = item.FieldValues["ImagePreview"].ToString().Replace("http://portal.gd-urengoy.gazprom.ru", "");
                        ImagePreview = ImagePreview.Replace("src=\"", "src=\"" + dir);
                    }
                    ;

                    if (item.FieldValues["Title"] != null)
                    {
                        Title = item.FieldValues["Title"].ToString();
                    }
                    ;

                    if (item.FieldValues["Text"] != null)
                    {
                        Text = item.FieldValues["Text"].ToString();
                        Text = Regex.Replace(Text, "style=[\"\'].*?[\"\']", string.Empty);
                        Text = Regex.Replace(Text, "<a.*?>", string.Empty);
                        Text = Regex.Replace(Text, "<//a>", string.Empty);
                        Text = Text.Replace("http://portal.gd-urengoy.gazprom.ru", "");
                        Text = Text.Replace("src=\"", "src=\"" + dir);
                    }
                    ;

                    var publication = new NewsGallery
                    {
                        Id             = i,
                        Preview        = Preview,
                        PublishingDate = PublishingDate,
                        ImagePreview   = ImagePreview,
                        Title          = Title,
                        Text           = Text,
                    };
                    res.Add(publication);
                    i--;
                }

                foreach (var n in res)
                {
                    db.NewsGalleries.Add(n);
                    db.SaveChanges();
                }
            }

            return(View());
        }
Esempio n. 2
0
 public void DeleteNewGalery(NewsGallery newsGallery)
 {
     _unitOfWork.NewsGalleryRepository.Delete(newsGallery);
     _unitOfWork.Save();
 }