Пример #1
0
        public static RantResponse FromRant(Rant Rant, ReportState ReportState)
        {
            var rant = new RantResponse()
            {
                Id = Rant.Id,
                ReportState = ReportState,
                Text = Rant.Text,
            };

            var timeElapsed = DateTime.Now - Rant.Timestamp;

            if (timeElapsed.Days >= 365)
            {
                rant.Timestamp = string.Format("{0} years ago", Math.Floor(timeElapsed.Days / 365.0));
            }
            else if (timeElapsed.Days >= 1)
            {
                rant.Timestamp = string.Format("{0} days ago", timeElapsed.Days);
            }
            else if (timeElapsed.Hours >= 1)
            {
                rant.Timestamp = string.Format("{0} hours ago", timeElapsed.Hours);
            }
            else if (timeElapsed.Minutes >= 1)
            {
                rant.Timestamp = string.Format("{0} minutes ago", timeElapsed.Minutes);
            }
            else
            {
                rant.Timestamp = string.Format("{0} seconds ago", timeElapsed.Seconds);
            }

            rant.Tags.AddRange(Rant.Tags.Select(x => x.Text));

            return rant;
        }
Пример #2
0
        public static RantResponse FromRant(Rant Rant, ReportState ReportState)
        {
            var rant = new RantResponse()
            {
                Id          = Rant.Id,
                ReportState = ReportState,
                Text        = Rant.Text,
            };

            var timeElapsed = DateTime.Now - Rant.Timestamp;

            if (timeElapsed.Days >= 365)
            {
                rant.Timestamp = string.Format("{0} years ago", Math.Floor(timeElapsed.Days / 365.0));
            }
            else if (timeElapsed.Days >= 1)
            {
                rant.Timestamp = string.Format("{0} days ago", timeElapsed.Days);
            }
            else if (timeElapsed.Hours >= 1)
            {
                rant.Timestamp = string.Format("{0} hours ago", timeElapsed.Hours);
            }
            else if (timeElapsed.Minutes >= 1)
            {
                rant.Timestamp = string.Format("{0} minutes ago", timeElapsed.Minutes);
            }
            else
            {
                rant.Timestamp = string.Format("{0} seconds ago", timeElapsed.Seconds);
            }

            rant.Tags.AddRange(Rant.Tags.Select(x => x.Text));

            return(rant);
        }
Пример #3
0
        public JsonResult PostRant(PostRequest Rant)
        {
            try
            {
                var rant = new Rant
                {
                    UserId = CurrentUser.UserId(),
                    Timestamp = DateTime.Now,
                    Text = Rant.Text.ToUpper()
                };

                if (Rant.Tags == null)
                {
                    return Json(new ApiResponse(false, "At least one tag is required."));
                }

                if (Rant.Tags.Any(t => string.IsNullOrWhiteSpace(t)))
                {
                    return Json(new ApiResponse(false, "You cannot submit an empty tag."));
                }

                if (string.IsNullOrWhiteSpace(Rant.Text))
                {
                    return Json(new ApiResponse(false, "You cannot submit an empty rant."));
                }

                using (var context = new EnrampageEntities())
                {
                    context.Tags.AddRange(
                        Rant.Tags.Except(context.Tags.Where(t => !t.User.Banned).Select(t => t.Text))
                        .Select(t => new Tag { UserId = rant.UserId, Text = t }));
                    context.SaveChanges();

                    foreach (var tag in Rant.Tags)
                    {
                        rant.Tags.Add(context.Tags.First(t => !t.User.Banned && t.Text == tag));
                    }

                    context.Rants.Add(rant);
                    context.SaveChanges();
                }

                return Json(new ApiResponse(true, "Posted rant successfully.", RantResponse.FromRant(rant, ReportState.Removable)));
            }
            catch (Exception Ex)
            {
                LogHelper.Log(Ex);
                return Json(new ApiResponse(false, "Failed to post rant."));
            }
        }