public JsonResult GetCommentsByUser(string key, string username)
        {
            if (apiServices.IsValidKey(key))
            {
                UserProfileModel userProfileModel = accountServices.GetUserProfileByUsername(username);
                List<CommentModel> comments = commentServices.GetAllCommentsByUserProfileId(userProfileModel.UserProfileId).ToList();

                CommentViewModel[] result = new CommentViewModel[comments.Count];
                CommentViewModel cvm;

                for (int i = 0; i < comments.Count; i++)
                {
                    cvm = new CommentViewModel();
                    cvm.CommentId = comments[i].CommentId;
                    cvm.EventId = comments[i].EventId;
                    cvm.UserProfileId = comments[i].UserProfileId;
                    cvm.CommentText = comments[i].CommentText;
                    cvm.Timestamp = comments[i].Timestamp;
                    result[i] = cvm;
                }

                apiServices.IncrementKeyUsage(key);

                return Json(result, JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json(null, JsonRequestBehavior.AllowGet);
            }
        }
        public ActionResult Index(int id = 0)
        {
            EventModel model = eventServices.GetEventById(id);
            if (model == null) return RedirectToAction("Index", "Home");

            IEnumerable<MediaItemModel> medias = MediaServices.GetInstance().GetMediaItemsByEvent(model.EventId);
            List<String> mediasFilesnames = new List<String>();

            foreach (MediaItemModel mim in medias)
            {
                //mediasFilesnames.Add(HttpContext.Server.MapPath("~/Uploads/Images/" + mim.FileName));
                mediasFilesnames.Add(mim.FileName);
            }

            EventCommentViewModel ecvm = new EventCommentViewModel
            {
                Address = model.Location.Address,
                Latitude = model.Location.Latitude,
                Longitude = model.Location.Longitude,
                EventId = model.EventId,
                StartTime = model.StartTime,
                EndTime = model.EndTime,
                Title = model.Title,
                Description = model.Description,
                Created = model.Created,
                CreatedById = model.CreatedById,
                IsActive = model.IsActive,
                IsPrivate = model.IsPrivate,
                LastModified = model.LastModified,
                Rating = model.Rating,
                NewComment = "",
                MediaFileNameList = mediasFilesnames.AsEnumerable(),
                CategoryString = model.Category.Name,
                CreatorUsername = accountServices.GetUserByUserProfileId(model.CreatedById).Username
            };

            ecvm.CreatedByUser = false;
            UserProfileModel profile = accountServices.GetUserProfileByUsername(User.Identity.Name);
            if (profile != null)
            {
                if (ecvm.CreatedById == profile.UserProfileId)
                {
                    ecvm.CreatedByUser = true;
                }
            }

            IEnumerable<CommentModel> tempie = commentServices.GetAllCommentsByEventId(model.EventId);
            List<CommentViewModel> commentList = new List<CommentViewModel>();

            DateTime now = DateTime.Now;

            int userProfileId = accountServices.GetUserByUsername(User.Identity.Name).UserProfile.UserProfileId;

            foreach (CommentModel cm in tempie)
            {
                UserProfileModel upm = accountServices.GetUserProfileByUserProfileId(cm.UserProfileId);

                CommentViewModel cvm = new CommentViewModel
                {
                    CommenterName = upm.FirstName + " " + upm.LastName,
                    CommentId = cm.CommentId,
                    CommentText = cm.CommentText,
                    EventId = cm.EventId,
                    Timestamp = cm.Timestamp,
                    UserProfileId = cm.UserProfileId,
                    UserIsAuthor = cm.UserProfileId == userProfileId
                };

                if (now.Month == cm.Timestamp.Month)
                {
                    if (now.Day == cm.Timestamp.Day)
                    {
                        int mins;
                        if (now.Hour == cm.Timestamp.Hour)
                        {
                            mins = (now.Minute - cm.Timestamp.Minute);
                        }
                        else if (now.Hour == cm.Timestamp.Hour + 1 && (now.Minute + 60 - cm.Timestamp.Minute) < 60)
                        {
                            mins = (now.Minute + 60 - cm.Timestamp.Minute);
                        }
                        else
                        {
                            mins = -1;
                        }

                        if (mins == 0)
                        {
                            cvm.TimeString = "Just now";
                        }
                        else if (mins == 1)
                        {
                            cvm.TimeString = "1 minute ago";
                        }
                        else if (mins == -1)
                        {
                            cvm.TimeString = cm.Timestamp.ToShortTimeString();
                        }
                        else
                        {
                            cvm.TimeString = mins + " minutes ago";
                        }

                    }
                    else
                    {
                        cvm.TimeString = cm.Timestamp.ToShortDateString();
                    }
                }
                else
                {
                    cvm.TimeString = cm.Timestamp.ToShortDateString();
                }

                commentList.Add(cvm);
            }

            ecvm.CommentList = commentList;

            return View(ecvm);
        }