Exemplo n.º 1
0
 /// <summary>
 /// Возвращает список активных категорий
 /// </summary>
 /// <returns></returns>
 public async Task <IEnumerable <Category> > GetActive()
 {
     using (var db = new FeedbackContext())
     {
         return(await db.Categories.Where(t => t.IsActive).ToListAsync());
     }
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            var context = new FeedbackContext();

            ViewTasksRepeater.DataSource = context.Tasks.ToList();
            ViewTasksRepeater.DataBind();
        }
Exemplo n.º 3
0
 /// <summary>
 /// Возвращает первую категорию, содержащую переданный параментр в имени
 /// </summary>
 /// <param name="name">Имя или часть имени категории</param>
 /// <returns></returns>
 public async Task <Category> Get(string name)
 {
     using (var db = new FeedbackContext())
     {
         return(await db.Categories.FirstOrDefaultAsync(t => t.Name.Contains(name)));
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// Возвращает список всех категорий
 /// </summary>
 /// <returns></returns>
 public async Task <IEnumerable <Category> > GetList()
 {
     using (var db = new FeedbackContext())
     {
         return(await db.Categories.ToListAsync());
     }
 }
Exemplo n.º 5
0
 /// <summary>
 /// Возвращает из базы категорию с указанным id
 /// </summary>
 /// <param name="id">id категории</param>
 /// <returns></returns>
 public async Task <Category> Get(Guid id)
 {
     using (var db = new FeedbackContext())
     {
         return(await db.Categories.FindAsync(id));
     }
 }
Exemplo n.º 6
0
        public ActionResult ViewAll()
        {
            var context = new FeedbackContext();
            var tasks   = context.Tasks.OrderByDescending(x => x.Created).ToList();

            return(View(tasks));
        }
Exemplo n.º 7
0
        public ActionResult CreateEdit(int Id = 0)
        {
            var context = new FeedbackContext();

            ViewBag.Categories = context.Categories.Select(
                x => new SelectListItem()
            {
                Text = x.Name, Value = x.Id.ToString()
            }).ToList();

            if (Id != 0)
            {
                var task = context.Tasks.FirstOrDefault(x => x.Id == Id);


                var mappedTask = Mapper.Map <TaskVM>(task);
                //TaskVM mappedTask = new TaskVM();
                //mappedTask.AssignedToId = task.AssignedToId;
                //mappedTask.AssociatedMessageId = task.AssociatedMessageId;
                //mappedTask.CategoryId = task.CategoryId;
                //mappedTask.Completed = task.Completed;
                //mappedTask.Description = task.Description;
                //mappedTask.DueDate = task.DueDate;
                //mappedTask.Id = task.Id;
                //mappedTask.Notes = task.Notes;
                //mappedTask.Title = task.Title;
                mappedTask.AssociatedMessageDisplay = task.AssociatedMessage.Subject;

                return(View(mappedTask));
            }

            return(View());
        }
Exemplo n.º 8
0
 public UsersController(FeedbackContext context, IAuthService authService, IImageUploadService imageUploadService, IConfiguration config, IMapper mapper)
 {
     _context            = context;
     _authService        = authService;
     _imageUploadService = imageUploadService;
     _config             = config;
     _mapper             = mapper;
 }
Exemplo n.º 9
0
        public ActionResult MessageSuggestions(string term)
        {
            var context  = new FeedbackContext();
            var messages = context.Messages.Where(x => x.Subject.Contains(term))
                           .Select(x => new { Label = x.Subject, Id = x.Id }).ToList();

            return(Json(messages, JsonRequestBehavior.AllowGet));
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var context        = new FeedbackContext();
            var latestMessages = context.Threads
                                 .SelectMany(x => x.Messages).OrderByDescending(c => c.Created).ToList()
                                 .GroupBy(y => y.MessageThreadId).Select(grp => grp.FirstOrDefault()).ToList();

            ViewMessagesRepeater.DataSource = latestMessages;
            ViewMessagesRepeater.DataBind();
        }
Exemplo n.º 11
0
        /// <summary>
        /// Удаляет отзыв с заданным id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task Delete(Guid id)
        {
            using (var db = new FeedbackContext())
            {
                var feedback = await db.Feedbacks.FindAsync(id);

                db.Feedbacks.Remove(feedback);
                await db.SaveChangesAsync();
            }
        }
Exemplo n.º 12
0
 /// <summary>
 /// Возвращает из базы отзыв с соответствующим id
 /// </summary>
 /// <param name="id">id отзыва</param>
 /// <returns></returns>
 public async Task <Feedback> Get(Guid id)
 {
     using (var db = new FeedbackContext())
     {
         return
             (await
              db.Feedbacks.Include(t => t.AttachedFiles)
              .Include(t => t.Category)
              .FirstOrDefaultAsync(t => t.Id == id));
     }
 }
Exemplo n.º 13
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var context = new FeedbackContext();

            Category.DataSource = context.Categories.Select(x =>
                                                            new ListItem()
            {
                Text = x.Name, Value = x.Id.ToString()
            }).ToList();
            Category.DataBind();

            AssignedTo.DataSource = context.Admins.Select(x =>
                                                          new ListItem()
            {
                Text = x.Username, Value = x.Id.ToString()
            }).ToList();
            AssignedTo.DataBind();

            //Is this a create or update?
            if (!string.IsNullOrEmpty(Request.Params["TaskId"]))
            {
                var id   = int.Parse(Request.Params["TaskId"]);
                var item = context.Tasks.FirstOrDefault(x => x.Id == id);

                Subject.Text           = item.Title;
                Description.Text       = item.Description;
                Category.SelectedIndex = item.Id;
                DueDate.Text           = item.DueDate.ToShortDateString();
                AssociatedMessage.Text = item.AssociatedMessageId.ToString();
                Notes.Text             = item.Notes;
                IsComplete.Checked     = item.Completed;
            }


            if (Page.IsPostBack)
            {
                Page.Validate();

                if (Page.IsValid)
                {
                    var task = new Task();
                    task.Title               = Subject.Text;
                    task.CategoryId          = int.Parse(Category.SelectedValue);
                    task.Description         = Description.Text;
                    task.DueDate             = DateTime.Parse(DueDate.Text);
                    task.AssignedToId        = int.Parse(AssignedTo.Text);
                    task.AssociatedMessageId = int.Parse(AssociatedMessage.Text);
                    task.Notes               = Notes.Text;
                    task.Completed           = IsComplete.Checked;
                    context.Tasks.Add(task);
                    context.SaveChanges();
                }
            }
        }
Exemplo n.º 14
0
        public ActionResult Survey()
        {
            var context = new FeedbackContext();
            var admins  = context.Admins.OrderByDescending(a => a.Votes.Count).ToList();

            if (Session["HasVoted"] != null)
            {
                return(PartialView("SurveyResults", admins));
            }
            return(PartialView(admins));
        }
        public JsonResult EventFeedback(FeedbackEvent model)
        {
            try
            {
                if (model != null && ModelState.IsValid)
                {
                    using (var context = new FeedbackContext())
                    {
                        context.Configuration.LazyLoadingEnabled = true;
                        var userId = User.Id();
                        var ev = context.Events.FirstOrDefault(e => e.Id == model.EventId);

                        if (ev == null)
                            ModelState.AddModelError("Validation", "Invalid event!");
                        else if (!ev.Active)
                            ModelState.AddModelError("Validation", "Event has been closed! Feedback is no more allowed!");
                        if (ModelState.IsValid)
                        {
                            var data = context.FeedbackEvents.FirstOrDefault(f => f.EventId == model.EventId && f.FeedbackUserId == userId);
                            if (data == null)
                            {
                                data = new FeedbackEvent { FeedbackUserId = userId, EventId = model.EventId };
                                context.FeedbackEvents.Add(data);
                            }
                            var user = context.FeedbackUsers.FirstOrDefault(u => u.Id == userId);
                            if (user == null)
                            {
                                user = new FeedbackUser { Id = userId };
                                context.FeedbackUsers.Add(user);
                            }
                            if (model.FeedbackUser != null)
                            {
                                user.Name = model.FeedbackUser.Name ?? user.Name;
                                user.Email = model.FeedbackUser.Email ?? user.Email;
                            }
                            data.FeedbackUser = user;
                            data.LikedMost = model.LikedMost ?? data.LikedMost;
                            data.PrimaryTechnology = model.PrimaryTechnology ?? data.PrimaryTechnology;
                            data.PrimaryTechnologyOther = model.PrimaryTechnologyOther ?? data.PrimaryTechnologyOther;
                            data.Suggestions = model.Suggestions ?? data.Suggestions;
                            data.WantedTechnologies = model.WantedTechnologies ?? data.WantedTechnologies;
                            context.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Exception", ex);
            }
            if (!ModelState.IsValid)
                return Json(new { Success = false, Message = "There was an error while posting your feedback!", Errors = ModelState.ToJson() }, JsonRequestBehavior.AllowGet);
            else return Json(new { Success = true, Message = "Thanks for your feedback!" }, JsonRequestBehavior.AllowGet);
        }
Exemplo n.º 16
0
        public void AddFeedback(string message)
        {
            using (var context = new FeedbackContext())
            {
                var newFeedback = new DAL.Entities.Feedback();
                newFeedback.Message = message;
                newFeedback.Date    = DateTime.Now;

                context.Feedbacks.Add(newFeedback);
                context.SaveChanges();
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// Асинхронно изменяет текст заданного отзыва
        /// </summary>
        /// <param name="id">id отзыва</param>
        /// <param name="text">Новый текст</param>
        /// <returns></returns>
        public async Task Update(Guid id, string text)
        {
            using (var db = new FeedbackContext())
            {
                var feedback = await db.Feedbacks.FindAsync(id);

                feedback.Text            = text;
                db.Entry(feedback).State = EntityState.Modified;

                await db.SaveChangesAsync();
            }
        }
Exemplo n.º 18
0
        public static ISubjectRepository GetInMemoryRepository(string name)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <FeedbackContext>()
                          .UseInMemoryDatabase(name)
                          .Options;

            // Run the test against one instance of the context
            var context = new FeedbackContext(options);

            return(new SubjectRepository(context));
        }
 public ActionResult Index()
 {
     ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
     //using (var ts = new TransactionScope())
     {
         using (var context = new FeedbackContext())
         {
             ViewBag.Message += context.Events.ToArray().Length;
             context.SaveChanges();
         }
     }
     return View();
 }
Exemplo n.º 20
0
        public ActionResult Survey(int adminId)
        {
            var context = new FeedbackContext();

            context.Votes.Add(new Vote {
                AdminId = adminId
            });
            context.SaveChanges();
            var admins = context.Admins.OrderByDescending(a => a.Votes.Count).ToList();

            Session["HasVoted"] = true;
            return(PartialView("SurveyResults", admins));
        }
Exemplo n.º 21
0
        public ActionResult CreateEdit(TaskVM task)
        {
            var context = new FeedbackContext();

            if (ModelState.IsValid)
            {
                var editTask = context.Tasks.FirstOrDefault(x => x.Id == task.Id);
                if (editTask != null)
                {
                    //Updating Task
                    editTask.Title                = task.Title;
                    editTask.Description          = task.Description;
                    editTask.CategoryId           = task.CategoryId;
                    editTask.AssignedToId         = task.AssignedToId;
                    editTask.DueDate              = task.DueDate;
                    editTask.AssociatedMessageId  = task.AssociatedMessageId;
                    editTask.Completed            = task.Completed;
                    editTask.Notes                = task.Notes;
                    context.Entry(editTask).State = System.Data.Entity.EntityState.Modified;
                }
                else
                {
                    var newTask = Mapper.Map <Task>(task);
                    //Task mappedTask = new Task();
                    //mappedTask.AssignedToId = task.AssignedToId;
                    //mappedTask.AssociatedMessageId = task.AssociatedMessageId;
                    //mappedTask.CategoryId = task.CategoryId;
                    //mappedTask.Completed = task.Completed;
                    //mappedTask.Description = task.Description;
                    //mappedTask.DueDate = task.DueDate;
                    //mappedTask.Id = task.Id;
                    //mappedTask.Notes = task.Notes;
                    //mappedTask.Title = task.Title;
                    //mappedTask.Created = DateTime.Now;

                    //newTask = mappedTask;
                    newTask.Created = DateTime.Now;
                    context.Tasks.Add(newTask);

                    context.Tasks.Add(newTask);
                }
                context.SaveChanges();
                return(RedirectToAction("ViewAll"));
            }
            ViewBag.Categories = context.Categories.Select(
                x => new SelectListItem()
            {
                Text = x.Name, Value = x.Id.ToString()
            }).ToList();
            return(View(task));
        }
Exemplo n.º 22
0
        /// <summary>
        /// Добавляет в базу новую категорию с указанными данными
        /// </summary>
        /// <param name="name">Имя категории</param>
        /// <param name="isActive">Активность категории</param>
        /// <returns></returns>
        public async Task Insert(string name, bool isActive)
        {
            using (var db = new FeedbackContext())
            {
                var category = new Category
                {
                    Name     = name,
                    IsActive = isActive
                };

                db.Categories.Add(category);
                await db.SaveChangesAsync();
            }
        }
        public ActionResult Index()
        {
            var context = new FeedbackContext();

            var dash = new DashBoardVM()
            {
                Messages = context.Threads
                           .SelectMany(x => x.Messages).OrderByDescending(c => c.Created).ToList()
                           .GroupBy(y => y.MessageThreadId).Select(grp => grp.FirstOrDefault()).ToList().Take(5),
                Tasks = context.Tasks.OrderByDescending(x => x.Created).Take(5)
            };

            return(View(dash));
        }
        public JsonResult FeedbackResults(int id)
        {
            using (var context = new FeedbackContext())
            {
                context.Configuration.LazyLoadingEnabled = false;
                var events = context.FeedbackEvents.Where(e => e.EventId == id).ToArray();
                return Json(new
                {
                    Rating = Rating(events),
                    Events = context.FeedbackEvents.Where(e => e.EventId == id).ToArray(),
                    Sessions = context.FeedbackSessions.Where(e => e.Session.EventId == id).ToArray(),
                }, JsonRequestBehavior.AllowGet);

            }
        }
Exemplo n.º 25
0
        /// <summary>
        /// Добавляет в базу новый отзыв с указанными данными
        /// </summary>
        /// <param name="id">id нового отзыва</param>
        /// <param name="categoryId">id категории отзыва</param>
        /// <param name="text">Текст отзыва</param>
        /// <param name="userName">Имя автора</param>
        /// <param name="files">Список путей к прикрепленным файлам</param>
        /// <returns></returns>
        public async Task Insert(Guid id, Guid categoryId, string text, string userName = "", IEnumerable <string> files = null)
        {
            using (var db = new FeedbackContext())
            {
                var feedback = new Feedback(id, categoryId, text, DateTime.Now, userName);

                if (files != null)
                {
                    feedback.AttachedFiles = files.Select(file => new FeedbackFile(file)).ToList();
                }

                db.Feedbacks.Add(feedback);
                await db.SaveChangesAsync();
            }
        }
Exemplo n.º 26
0
        /// <summary>
        /// Удалить категорию, имеющую указанное имя
        /// </summary>
        /// <param name="name">Имя категории</param>
        /// <returns></returns>
        public async Task Delete(string name)
        {
            using (var db = new FeedbackContext())
            {
                var category = await db.Categories.FirstOrDefaultAsync(t => t.Name == name);

                if (category == null)
                {
                    return;
                }
                category.Name = name;

                await db.SaveChangesAsync();
            }
        }
Exemplo n.º 27
0
        /// <summary>
        /// Устанавливает значение активности категории
        /// </summary>
        /// <param name="id">id категории</param>
        /// <param name="active">Активность</param>
        /// <returns></returns>
        public async Task SetActive(Guid id, bool active)
        {
            using (var db = new FeedbackContext())
            {
                var category = await db.Categories.FindAsync(id);

                if (category == null)
                {
                    return;
                }
                category.IsActive = active;

                await db.SaveChangesAsync();
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// Удаляет категорию с указанным id
        /// </summary>
        /// <param name="id">id категории</param>
        /// <returns></returns>
        public async Task Delete(Guid id)
        {
            using (var db = new FeedbackContext())
            {
                var category = await db.Categories.FindAsync(id);

                if (category == null)
                {
                    return;
                }
                db.Categories.Remove(category);

                await db.SaveChangesAsync();
            }
        }
Exemplo n.º 29
0
        public List <ServerFeedbackDto> GetFeedbacks()
        {
            using (var context = new FeedbackContext())
            {
                var feedbacks = context.Feedbacks.ToList();

                //TODO: automapper
                return(feedbacks.Select(x => new ServerFeedbackDto
                {
                    Id = x.Id,
                    Message = x.Message,
                    Date = x.Date
                }).ToList());
            }
        }
Exemplo n.º 30
0
        /// <summary>
        /// Возвращает запрос на список отзывов, соответствующих указанным фильтрам
        /// </summary>
        /// <param name="author">Фильтр по автору отзыва</param>
        /// <param name="category">Фильтр по категории</param>
        /// <param name="order">Порядок сортировки</param>
        /// <param name="page">Текущая страница выдачи</param>
        /// <param name="pageSize">Количество элементов на страницу</param>
        /// <returns></returns>
        public async Task <IPagedList <Feedback> > GetPagedList(string author, string category, FeedbackOrderBy order, int page, int pageSize)
        {
            using (var db = new FeedbackContext())
            {
                var feedbacks = db.Feedbacks.Include(t => t.AttachedFiles).Include(x => x.Category);

                if (!string.IsNullOrWhiteSpace(author))
                {
                    feedbacks = feedbacks.Where(t => t.UserName.Contains(author));
                }

                if (!string.IsNullOrWhiteSpace(category))
                {
                    feedbacks = feedbacks.Where(t => t.Category.Name == category);
                }

                switch (order)
                {
                case FeedbackOrderBy.Author:
                    feedbacks = feedbacks.OrderBy(t => t.UserName);
                    break;

                case FeedbackOrderBy.Category:
                    feedbacks = feedbacks.OrderBy(t => t.Category.Name);
                    break;

                case FeedbackOrderBy.AuthorDesc:
                    feedbacks = feedbacks.OrderByDescending(t => t.UserName);
                    break;

                case FeedbackOrderBy.CategoryDesc:
                    feedbacks = feedbacks.OrderByDescending(t => t.Category.Name);
                    break;

                case FeedbackOrderBy.DateDesc:
                    feedbacks = feedbacks.OrderByDescending(t => t.PostDate);
                    break;

                default:
                    feedbacks = feedbacks.OrderBy(t => t.PostDate);
                    break;
                }

                var result = await feedbacks.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

                return(new PagedList <Feedback>(result, page, pageSize, feedbacks.Count()));
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var context = new FeedbackContext();
            var admins  = context.Admins.ToList();

            if (Page.IsPostBack)
            {
                foreach (var radio in RadioVotes.Items)
                {
                    var item = (ListItem)radio;
                    if (item.Selected)
                    {
                        var admin = admins.FirstOrDefault(x =>
                                                          x.Username == item.Text);
                        admin.Votes.Add(new Vote()
                        {
                            AdminId = admin.Id
                        });
                        var success = context.SaveChanges();
                        Session["HasVoted"] = true;
                    }
                }
            }

            if (Session["HasVoted"] != null)
            {
                SurveyPanel.Visible       = false;
                ResultPanel.Visible       = true;
                SurveyRepeater.DataSource = admins.OrderByDescending(x =>
                                                                     x.Votes.Count).Select(x => new {
                    Username  = x.Username,
                    VoteCount = x.Votes.Count
                });
                SurveyRepeater.DataBind();
            }
            else
            {
                RadioVotes.CssClass = "table table-striped";
                RadioVotes.Items.Clear();
                foreach (var admin in admins)
                {
                    RadioVotes.Items.Add(admin.Username);
                }
            }
        }
Exemplo n.º 32
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var context = new FeedbackContext();

            int id;

            if (int.TryParse(Request.Params["MessageThreadId"], out id))
            {
                if (Page.IsPostBack)
                {
                    Page.Validate();

                    if (Page.IsValid)
                    {
                        var newMessage = new Message();
                        newMessage.Content         = Reply.Text;
                        newMessage.Created         = DateTime.Now;
                        newMessage.Author          = HttpContext.Current.User.Identity.Name;
                        newMessage.MessageThreadId = int.Parse(Thread.Value);
                        newMessage.Subject         = Subject.Value;

                        context.Messages.Add(newMessage);
                        context.SaveChanges();

                        Response.Redirect("ViewMessages.aspx");
                    }
                }

                var messages = context.Threads
                               .FirstOrDefault(x => x.MessageThreadId == id)
                               .Messages.OrderBy(x => x.Created).ToList();

                HeadingSubject.Text = messages.First().Subject;
                Thread.Value        = messages.First().MessageThreadId.ToString();
                Subject.Value       = messages.First().Subject;

                ReplyRepeater.DataSource = messages;
                ReplyRepeater.DataBind();
            }
            else
            {
                Response.Redirect("ViewMessages.aspx");
            }
        }
Exemplo n.º 33
0
        public ActionResult CreateEdit(int Id = 0)
        {
            var context = new FeedbackContext();

            ViewBag.Categories = context.Categories.Select(
                x => new SelectListItem()
            {
                Text = x.Name, Value = x.Id.ToString()
            }).ToList();

            if (Id != 0)
            {
                var task       = context.Tasks.FirstOrDefault(x => x.Id == Id);
                var mapperTask = Mapper.Map <TaskVM>(task);
                mapperTask.AssociatedMessageDisplay = task.AssociatedMessage.Subject;
                return(View(mapperTask));
            }

            return(View());
        }
        public JsonResult SessionFeedback(FeedbackSession model)
        {
            try
            {
                if (model != null && ModelState.IsValid)
                {
                    using (var context = new FeedbackContext())
                    {
                        context.Configuration.LazyLoadingEnabled = true;
                        var userId = User.Id();
                        var session = context.Sessions.Include("Event").FirstOrDefault(s => s.Id == model.SessionId);

                        if (session == null || session.Event == null)
                            ModelState.AddModelError("Validation", "Invalid session!");
                        else if (!session.Event.Active)
                            ModelState.AddModelError("Validation", "Event has been closed! Feedback is no more allowed!");
                        if (ModelState.IsValid)
                        {
                            var data = context.FeedbackSessions.FirstOrDefault(f => f.SessionId == model.SessionId && f.FeedbackUserId == userId);
                            if (data == null)
                            {
                                data = new FeedbackSession { FeedbackUserId = userId, SessionId = model.SessionId };
                                context.FeedbackSessions.Add(data);
                            }
                            var user = context.FeedbackUsers.FirstOrDefault(u => u.Id == userId);
                            if (user == null)
                            {
                                user = new FeedbackUser { Id = userId };
                                context.FeedbackUsers.Add(user);
                            }
                            data.FeedbackUser = user;
                            data.Notes = model.Notes;
                            data.PresentationRating = model.PresentationRating;
                            data.ContentRating = model.ContentRating;
                            context.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Exception", ex);
            }
            if (!ModelState.IsValid)
                return Json(new { Success = false, Message = "There was an error while posting your feedback!", Errors = ModelState.ToJson() }, JsonRequestBehavior.AllowGet);
            else return Json(new { Success = true, Message = "Thanks for your feedback!" }, JsonRequestBehavior.AllowGet);
        }
        public JsonResult VoteEvent(int eventId, int vote)
        {
            int? rating = null;
            try
            {
                if (ModelState.IsValid)
                {
                    using (var context = new FeedbackContext())
                    {
                        context.Configuration.LazyLoadingEnabled = true;
                        var userId = User.Id();
                        var ev = context.Events.FirstOrDefault(e => e.Id == eventId);

                        if (ev == null)
                            ModelState.AddModelError("Validation", "Invalid event!");
                        else if (!ev.Active)
                            ModelState.AddModelError("Validation", "Event has been closed! Rating is no more allowed!");
                        if (ModelState.IsValid)
                        {
                            var data = context.FeedbackEvents.FirstOrDefault(f => f.EventId == eventId && f.FeedbackUserId == userId);
                            if (data == null)
                            {
                                data = new FeedbackEvent { FeedbackUserId = userId, EventId = eventId };
                                context.FeedbackEvents.Add(data);
                            }
                            var user = context.FeedbackUsers.FirstOrDefault(u => u.Id == userId);
                            if (user == null)
                            {
                                user = new FeedbackUser { Id = userId };
                                context.FeedbackUsers.Add(user);
                            }

                            data.FeedbackUser = user;
                            data.Rating = vote;
                            context.SaveChanges();
                            rating = vote;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Exception", ex);
            }
            if (!ModelState.IsValid)
                return Json(new { Success = false, Message = "There was an error while posting your vote!", Errors = ModelState.ToJson() }, JsonRequestBehavior.AllowGet);
            else return Json(new { Success = true, Message = "Thanks for your vote!", Rating = rating }, JsonRequestBehavior.AllowGet);
        }
		public SuggestionsRepository()
		{
			_db = new FeedbackContext();
		}
        public JsonResult Mine(int id)
        {
            using (var context = new FeedbackContext())
            {
                context.Configuration.LazyLoadingEnabled = false;
                var userId = User.Id();
                var ev = context.FeedbackEvents.Include("FeedbackUser").FirstOrDefault(e => e.FeedbackUserId == userId && e.EventId == id);
                ev.Rating = FixRating(ev.Rating);
                return Json(new
                {
                    Event = ev,
                    Sessions = context.FeedbackSessions.Where(e => e.FeedbackUserId == userId && e.Session.EventId == id).ToArray(),
                }, JsonRequestBehavior.AllowGet);

            }
        }