예제 #1
0
        public ActionResult LatestReadyForComments(int? id, PhotoApprovalViewModel model)
        {
            try
            {
                using (var db = new MySelfieEntities())
                {
                    if (model.IsNull())
                        model = new PhotoApprovalViewModel();

                    if (id.HasValue)
                        model.LastPhotoTweetId = id.Value;

                    if (model.FetchLatestAmount.IsLessThanOne())
                        model.FetchLatestAmount = 10;

                    if (model.FetchLatestSpeedInSeconds.IsLessThanOne())
                        model.FetchLatestSpeedInSeconds = 5;

                    var query = db.Photos
                        .Where(x => x.HasPhoto == true)
                        .Where(x => x.Status == "packed")
                        //.Where(x => x.Source == "Twitter")
                        .Where(x => x.PhotoId > model.LastPhotoTweetId);

                    if (model.WallId > 0)
                        query = query.Where(x => x.WallId == model.WallId);

                    model.ImageList = query
                        .OrderBy(x => x.CreatedAt)
                        .Take(model.FetchLatestAmount)
                        .Select(x => new PhotoViewModel
                        {
                            FileName = x.Filename,
                            PhotoId = x.PhotoId,
                            Text = x.Text,
                            SocialId = x.SocialID,
                            SocialCreated = x.SocialCreatedAt,
                            UserScreenName = x.Username,
                            Source = x.Source
                        })
                        .ToList();

                    if (model.ImageList.Any())
                    {
                        model.LastPhotoTweetId = model.ImageList.Select(x => x.PhotoId).Last();
                    }
                    else
                    {
                        if (id.HasValue)
                        {
                            model.LastPhotoTweetId = id.Value;
                        }

                    }

                    var photosLeft = db.Photos
                        .Where(x => x.HasPhoto == true)
                        .Where(x => x.Status == "packed")
                        .Where(x => x.Source == "Twitter")
                        .Where(x => x.WallId == model.WallId)
                        .Count();

                    var message = "Got more images for comments." + Environment.NewLine
                        + "WallID: " + model.WallId + Environment.NewLine
                        + "New photos left: " + photosLeft + Environment.NewLine;

                    //Logger.Log(message, "update", User.Identity.Name, "/Photo/Latest");

                    return View(model);
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("ex", ex);

                Logger.Log(ex.ToString(), "error", User.Identity.Name, "/Photo/LatestForComments");

                return View(new PhotoApprovalViewModel());
            }
        }
예제 #2
0
        public ActionResult CommentApproval(int? id)
        {
            var model = new PhotoApprovalViewModel();

            if (id.HasValue)
                model.WallId = id.Value;

            model.FetchLatestAmount = 10;
            model.FetchLatestSpeedInSeconds = 4;

            try
            {
                using (var db = new MySelfieEntities())
                {
                    var wall = db.Walls
                        .Where(x => x.WallId == model.WallId)
                        .SingleOrDefault();

                    if (wall.IsNotNull())
                    {
                        //model.FetchLatestAmount = wall.
                        //model.FetchLatestSpeedInSeconds = 
                    }

                    var query = db.Photos
                        .Where(x => x.HasPhoto == true)
                        .Where(x => x.Status == "packed");

                    if (id.HasValue)
                        query = query.Where(x => x.WallId == id.Value);

                    var results = query
                        .OrderBy(x => x.CreatedAt)
                        .Select(x => new PhotoViewModel
                        {
                            FileName = x.Filename,
                            PhotoId = x.PhotoId,
                            Text = x.Text,
                            SocialId = x.SocialID,
                            SocialCreated = x.SocialCreatedAt,
                            UserScreenName = x.Username,
                            Source = x.Source
                        })
                        .Take(model.FetchLatestAmount)
                        .ToList();

                    var photosLeft = db.Photos
                            .Where(x => x.HasPhoto == true)
                            .Where(x => x.Status == "packed")
                            .Where(x => x.WallId == model.WallId)
                            .Count();

                    var message = "Starting CommentApproval page." + Environment.NewLine
                        + "WallID: " + model.WallId + Environment.NewLine
                        + "New photos left: " + photosLeft + Environment.NewLine
                        + "FetchLatestAmount: " + model.FetchLatestAmount + Environment.NewLine
                        + "FetchLatestSpeedInSeconds: " + model.FetchLatestSpeedInSeconds + Environment.NewLine;

                    Logger.Log(message, "update", User.Identity.Name, "/Photo/Latest");


                    if (results.Any())
                    {
                        model.ImageList = results;
                        model.LastPhotoTweetId = results.Select(x => x.PhotoId).Last();

                        return View(model);
                    }
                    else
                    {
                        model.ImageList = results;
                        model.LastPhotoTweetId = 0;


                        return View(model);
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("ex", ex);

                Logger.Log(ex.ToString(), "error", User.Identity.Name, "/Admin/Photo/CommentApproval");
            }

            return View();
        }