Exemplo n.º 1
0
 public new void OnClick(View v)
 {
     if (v.Tag != null)
     {
         NewsActivity.Start(context, Convert.ToInt32(v.Tag.ToString()));
     }
 }
Exemplo n.º 2
0
        public IActionResult Favorite()
        {
            if (!_loginServices.isInAdminRoles(this.GetRoles()))
            {
                return(RedirectToAction("Login", "Accounts"));
            }
            string       idParam = this.RouteData.Values["id"].ToString();
            NewsActivity model   = null;

            if (idParam != null && idParam != string.Empty)
            {
                int recordId = Int32.Parse(idParam);
                model = this._context.NewsActivities.Where(a => a.ID == recordId).FirstOrDefault();
                if (model == null)
                {
                    ModelState.AddModelError("Error", "ไม่พบข้อมูล");
                }
                else
                {
                    model.IsFavorite = !model.IsFavorite;
                    this._context.SaveChanges();
                }
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 3
0
        public void OnClick(View v)
        {
            if (v.Tag != null)
            {
                switch (position)
                {
                case 0:
                    ArticleActivity.Start(context, Convert.ToInt32(v.Tag.ToString()));
                    break;

                case 1:
                    NewsActivity.Start(context, Convert.ToInt32(v.Tag.ToString()));
                    break;

                case 2:
                    KbArticleActivity.Start(context, Convert.ToInt32(v.Tag.ToString()));
                    break;

                case 3:
                    var tag = v.Tag.ToString();
                    var id  = tag.Substring(tag.LastIndexOf("/") + 1);
                    QuestionActivity.Start(context, Convert.ToInt32(id));
                    break;

                default:
                    break;
                }
            }
        }
Exemplo n.º 4
0
        private void CreateLayout()
        {
            double num = 0.0;

            for (int index = 0; index < this._activityItems.Count; ++index)
            {
                NewsActivity activityItem = this._activityItems[index];
                bool         flag         = index == this._activityItems.Count - 1;
                num += this.CreateActivityItem(activityItem, !flag);
            }
            this._height = num;
        }
Exemplo n.º 5
0
        public IActionResult Create()
        {
            if (!_loginServices.isInAdminRoles(this.GetRoles()))
            {
                return(RedirectToAction("Login", "Accounts"));
            }
            var model = new NewsActivity();

            model.Status      = StatusType.Active;
            ViewBag.ListGroup = this._context.NewsActivityGroups.Where(w => w.Status == StatusType.Active).OrderBy(o => o.Index);

            return(View("NewsActivityInfo", model));
        }
Exemplo n.º 6
0
        public async Task <JsonResult> Image(NewsActivity model, IFormFile file)
        {
            if (!_loginServices.isInAdminRoles(this.GetRoles()))
            {
                return(Json(new
                {
                    responseCode = "-403",
                    responseDesc = "คุณไม่มีสิทธิ์เข้าถึงระบบ",
                }));
            }
            if (file != null && model.ID > 0)
            {
                var news = this._context.NewsActivities.Where(w => w.ID == model.ID).FirstOrDefault();
                if (news != null)
                {
                    var dateformat = DateUtil.ToInternalDateTime(DateUtil.Now());
                    var webRoot    = Directory.GetCurrentDirectory() + "\\wwwroot\\images\\NewsActivityGallery\\" + model.ID + "\\";
                    if (!Directory.Exists(webRoot))
                    {
                        Directory.CreateDirectory(webRoot);
                    }
                    if (file.Length > 0)
                    {
                        var img = new NewsActivityImage()
                        {
                            NewsActivityID = model.ID,
                        };
                        this._context.NewsActivityImages.Add(img);
                        this._context.SaveChanges();
                        string extension = Path.GetExtension(file.FileName);
                        var    filename  = webRoot + img.ID + dateformat + extension;
                        using (var fileStream = new FileStream(Path.Combine(webRoot, filename), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                        filename = filename.Replace(Directory.GetCurrentDirectory() + "\\wwwroot", "~");
                        filename = filename.Replace("\\", "/");
                        img.Url  = filename;
                        this._context.SaveChanges();
                    }
                }
            }

            return(Json(new
            {
                responseCode = "200",
                responseDesc = "SUCCESS",
            }));
        }
Exemplo n.º 7
0
        public IActionResult MoveUp()
        {
            if (!_loginServices.isInAdminRoles(this.GetRoles()))
            {
                return(RedirectToAction("Login", "Accounts"));
            }
            string       idParam = this.RouteData.Values["id"].ToString();
            NewsActivity model   = null;

            if (idParam != null && idParam != string.Empty)
            {
                int recordId = Int32.Parse(idParam);
                model = this._context.NewsActivities.Where(a => a.ID == recordId).FirstOrDefault();
                if (model == null)
                {
                    ModelState.AddModelError("Error", "ไม่พบข้อมูล");
                }
                else
                {
                    var latestindex = this._context.NewsActivities.Where(w => w.Index < model.Index).OrderByDescending(o => o.Index).FirstOrDefault();
                    var i           = 1;
                    foreach (var item in this._context.NewsActivities.OrderBy(o => o.Index))
                    {
                        if (latestindex != null && latestindex.ID == item.ID)
                        {
                            latestindex.Index = i + 1;
                        }
                        else if (latestindex != null && model.ID == item.ID)
                        {
                            item.Index = i;
                            i         += 2;
                        }
                        else
                        {
                            item.Index = i;
                            i++;
                        }
                    }
                    this._context.SaveChanges();
                }
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 8
0
        public IActionResult Delete()
        {
            if (!_loginServices.isInAdminRoles(this.GetRoles()))
            {
                return(RedirectToAction("Login", "Accounts"));
            }
            string       idParam = this.RouteData.Values["id"].ToString();
            NewsActivity model   = null;

            if (idParam != null && idParam != string.Empty)
            {
                int recordId = Int32.Parse(idParam);
                model = this._context.NewsActivities.Include(i => i.NewsActivityImages).Where(a => a.ID == recordId).FirstOrDefault();
                if (model == null)
                {
                    ModelState.AddModelError("Error", "ไม่พบข้อมูล");
                }
                else
                {
                    if (model.NewsActivityImages.Count() > 0)
                    {
                        this._context.NewsActivityImages.RemoveRange(model.NewsActivityImages);
                        var webRoot = Directory.GetCurrentDirectory() + "\\wwwroot\\images\\NewsActivityGallery\\" + model.ID + "\\";
                        if (Directory.Exists(webRoot))
                        {
                            DirectoryInfo dir = new DirectoryInfo(webRoot);
                            foreach (FileInfo fi in dir.GetFiles())
                            {
                                fi.IsReadOnly = false;
                                fi.Delete();
                            }
                            Directory.Delete(webRoot);
                        }
                    }

                    this._context.NewsActivities.Remove(model);
                    this._context.SaveChanges();
                    var mwebRoot = Directory.GetCurrentDirectory() + "\\wwwroot";
                    var filename = model.ImgUrl;
                    if (!string.IsNullOrEmpty(filename))
                    {
                        filename = filename.Replace("~", mwebRoot);
                        filename = filename.Replace("/", "\\");

                        if (System.IO.File.Exists(filename))
                        {
                            System.IO.File.Delete(filename);
                        }
                    }
                    filename = model.VideoUrl;
                    if (!string.IsNullOrEmpty(filename))
                    {
                        filename = filename.Replace("~", mwebRoot);
                        filename = filename.Replace("/", "\\");

                        if (System.IO.File.Exists(filename))
                        {
                            System.IO.File.Delete(filename);
                        }
                    }
                    var i = 1;
                    foreach (var item in this._context.NewsActivities.OrderBy(o => o.Index))
                    {
                        item.Index = i;
                        i++;
                    }
                    this._context.SaveChanges();
                }
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> Modify(NewsActivity model, IFormFile file, IFormFile video)
        {
            if (!_loginServices.isInAdminRoles(this.GetRoles()))
            {
                return(RedirectToAction("Login", "Accounts"));
            }

            if (ModelState.IsValid)
            {
                model.StartDate = DateUtil.ToDate(model.sDate);
                model.EndDate   = DateUtil.ToDate(model.eDate);

                var dateformat = DateUtil.ToInternalDateTime(DateUtil.Now());
                if (model.ID <= 0)
                {
                    model.Create_On = DateUtil.Now();
                    model.Create_By = this.HttpContext.User.Identity.Name;
                    model.Update_On = DateUtil.Now();
                    model.Update_By = this.HttpContext.User.Identity.Name;
                    model.Index     = 1;
                    if (this._context.NewsActivities.Count() > 0)
                    {
                        var lastindex = this._context.NewsActivities.Max(s => s.Index);
                        if (lastindex > 0)
                        {
                            model.Index = lastindex + 1;
                        }
                    }
                    this._context.NewsActivities.Add(model);
                    this._context.SaveChanges();

                    if (file != null)
                    {
                        var    webRoot   = Directory.GetCurrentDirectory() + "\\wwwroot\\images\\NewsActivity\\";
                        string extension = Path.GetExtension(file.FileName);
                        var    filename  = webRoot + model.ID + dateformat + extension;
                        using (var fileStream = new FileStream(Path.Combine(webRoot, filename), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                        filename     = filename.Replace(Directory.GetCurrentDirectory() + "\\wwwroot", "~");
                        filename     = filename.Replace("\\", "/");
                        model.ImgUrl = filename;
                    }
                    if (video != null)
                    {
                        var    webRoot   = Directory.GetCurrentDirectory() + "\\wwwroot\\images\\NewsActivity\\";
                        string extension = Path.GetExtension(video.FileName);
                        var    filename  = webRoot + "video" + model.ID + dateformat + extension;
                        using (var fileStream = new FileStream(Path.Combine(webRoot, filename), FileMode.Create))
                        {
                            await video.CopyToAsync(fileStream);
                        }
                        filename       = filename.Replace(Directory.GetCurrentDirectory() + "\\wwwroot", "~");
                        filename       = filename.Replace("\\", "/");
                        model.VideoUrl = filename;
                    }
                    this._context.SaveChanges();
                    return(RedirectToAction("Update", new { id = model.ID, imgfocus = true }));
                }
                else
                {
                    model.Update_On = DateUtil.Now();
                    model.Update_By = this.HttpContext.User.Identity.Name;
                    if (file != null)
                    {
                        if (!string.IsNullOrEmpty(model.ImgUrl))
                        {
                            var mwebRoot  = Directory.GetCurrentDirectory() + "\\wwwroot";
                            var mfilename = model.ImgUrl.Replace("~", mwebRoot);
                            mfilename = mfilename.Replace("/", "\\");
                            if (System.IO.File.Exists(mfilename))
                            {
                                System.IO.File.Delete(mfilename);
                            }
                        }
                        var    webRoot   = Directory.GetCurrentDirectory() + "\\wwwroot\\images\\NewsActivity\\";
                        string extension = Path.GetExtension(file.FileName);
                        var    filename  = webRoot + model.ID + dateformat + extension;
                        using (var fileStream = new FileStream(Path.Combine(webRoot, filename), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                        filename     = filename.Replace(Directory.GetCurrentDirectory() + "\\wwwroot", "~");
                        filename     = filename.Replace("\\", "/");
                        model.ImgUrl = filename;
                    }
                    if (video != null)
                    {
                        var webRoot = Directory.GetCurrentDirectory() + "\\wwwroot\\images\\NewsActivity\\";
                        if (!string.IsNullOrEmpty(model.VideoUrl))
                        {
                            var mwebRoot  = Directory.GetCurrentDirectory() + "\\wwwroot";
                            var mfilename = model.VideoUrl.Replace("~", mwebRoot);
                            mfilename = mfilename.Replace("/", "\\");
                            if (System.IO.File.Exists(mfilename))
                            {
                                System.IO.File.Delete(mfilename);
                            }
                        }
                        string extension = Path.GetExtension(video.FileName);
                        var    filename  = webRoot + "video" + model.ID + dateformat + extension;
                        using (var fileStream = new FileStream(Path.Combine(webRoot, filename), FileMode.Create))
                        {
                            await video.CopyToAsync(fileStream);
                        }
                        filename       = filename.Replace(Directory.GetCurrentDirectory() + "\\wwwroot", "~");
                        filename       = filename.Replace("\\", "/");
                        model.VideoUrl = filename;
                    }
                    this._context.Update(model);
                    this._context.SaveChanges();

                    return(RedirectToAction("Index"));
                }
            }
            ViewBag.ListGroup = this._context.NewsActivityGroups.Where(w => w.Status == StatusType.Active).OrderBy(o => o.Index);
            return(View("NewsActivityInfo", model));
        }
Exemplo n.º 10
0
        private double CreateActivityItem(NewsActivity activity, bool addSeparator)
        {
            VirtualizableItemBase virtualizableItemBase = (VirtualizableItemBase)null;

            switch (activity.Type)
            {
            case NewsActivityType.likes:
                virtualizableItemBase = this._createdItems.FirstOrDefault <KeyValuePair <NewsActivity, VirtualizableItemBase> >((Func <KeyValuePair <NewsActivity, VirtualizableItemBase>, bool>)(i =>
                {
                    if (i.Key.likes != null)
                    {
                        return(i.Key.likes == activity.likes);
                    }
                    return(false);
                })).Value;
                break;

            case NewsActivityType.comment:
                virtualizableItemBase = this._createdItems.FirstOrDefault <KeyValuePair <NewsActivity, VirtualizableItemBase> >((Func <KeyValuePair <NewsActivity, VirtualizableItemBase>, bool>)(i =>
                {
                    if (i.Key.comment != null)
                    {
                        return(i.Key.comment == activity.comment);
                    }
                    return(false);
                })).Value;
                break;
            }
            if (virtualizableItemBase == null)
            {
                switch (activity.Type)
                {
                case NewsActivityType.likes:
                    virtualizableItemBase = (VirtualizableItemBase) new UCItem(this.Width, new Thickness(), (Func <UserControlVirtualizable>)(() =>
                    {
                        VKClient.Common.UC.NewsActivityLikesUC newsActivityLikesUc = new VKClient.Common.UC.NewsActivityLikesUC();
                        double width            = this.Width;
                        NewsActivityLikes likes = activity.likes;
                        List <User> users       = this._users;
                        int num = addSeparator ? 1 : 0;
                        newsActivityLikesUc.Initialize(width, likes, users, num != 0);
                        EventHandler <System.Windows.Input.GestureEventArgs> eventHandler = (EventHandler <System.Windows.Input.GestureEventArgs>)((sender, e) =>
                        {
                            e.Handled             = (true);
                            Action likesTapAction = this._likesTapAction;
                            if (likesTapAction == null)
                            {
                                return;
                            }
                            likesTapAction();
                        });
                        ((UIElement)newsActivityLikesUc).Tap += (eventHandler);
                        return((UserControlVirtualizable)newsActivityLikesUc);
                    }), (Func <double>)(() => VKClient.Common.UC.NewsActivityLikesUC.CalculateHeight(this.Width, activity.likes, this._users)), null, 0.0, false);
                    break;

                case NewsActivityType.comment:
                    virtualizableItemBase = (VirtualizableItemBase) new UCItem(this.Width, new Thickness(), (Func <UserControlVirtualizable>)(() =>
                    {
                        VKClient.Common.UC.NewsActivityCommentUC activityCommentUc = new VKClient.Common.UC.NewsActivityCommentUC();
                        NewsActivityComment comment = activity.comment;
                        List <User> users           = this._users;
                        List <Group> groups         = this._groups;
                        int num = addSeparator ? 1 : 0;
                        activityCommentUc.Initialize(comment, (IEnumerable <User>)users, (IEnumerable <Group>)groups, num != 0);
                        EventHandler <System.Windows.Input.GestureEventArgs> eventHandler = (EventHandler <System.Windows.Input.GestureEventArgs>)((sender, e) =>
                        {
                            e.Handled = (true);
                            Action commentsTapAction = this._commentsTapAction;
                            if (commentsTapAction == null)
                            {
                                return;
                            }
                            commentsTapAction();
                        });
                        ((UIElement)activityCommentUc).Tap += (eventHandler);
                        return((UserControlVirtualizable)activityCommentUc);
                    }), (Func <double>)(() => VKClient.Common.UC.NewsActivityCommentUC.CalculateHeight(activity.comment)), null, 0.0, false);
                    break;

                default:
                    return(0.0);
                }
                this.VirtualizableChildren.Add((IVirtualizable)virtualizableItemBase);
                if (!this._createdItems.ContainsKey(activity))
                {
                    this._createdItems.Add(activity, virtualizableItemBase);
                }
                else
                {
                    this._createdItems[activity] = virtualizableItemBase;
                }
            }
            return(virtualizableItemBase.FixedHeight);
        }