public JsonResult Like(long id) { var result = ORRepository.Get(id); if (result == null) { return(Json(new { Success = false, Error = "Не удалось найти результат" })); } // Получить текущего юзера var curUser = GetCurrentUser(); var like = LikeRepository.IsFavoriteResult(curUser.Id, id); if (like != null) { LikeRepository.Delete(like); return(Json(new { Success = true, Name = "like" })); } // Создать лайк like = LikeRepository.Create(); // Заполнить свойства like.UserId = curUser.Id; like.ResultId = result.Id; // Сохранить LikeRepository.Update(like); // Вернуться к списку операций return(Json(new { Success = true, Name = "dislike" })); }
public ActionResult Index() { var curUser = GetCurrentUser(); var results = ORRepository.GetByUser(curUser); var likes = LikeRepository.GetByUser(curUser).Select(it => it.ResultId); foreach (var result in results) { result.IsLiked = likes.Contains(result.Id); } return(View(results)); }
public ActionResult Index() { var curUser = GetCurrentUser(); var results = ORRepository.GetByUser(curUser); // var likes = LikeRepository.GetLikes(curUser.Id).Select(it => it.ResultId); var likes = LikeRepository.GetAll() // получаем все лайки .Where(u => u.User.Id == curUser.Id) // фильтруем по текущему юзеру .Select(it => it.Result.Id); // достаем из лайков результаты операций foreach (var result in results) { result.IsLiked = likes.Contains(result.Id); } return(View(results)); }
public ActionResult Index(CalcModel model) { model.OperationList = Calc.Operations .Select(o => new SelectListItem() { Text = $"{o.Name}", Value = $"{o.Name}", Selected = model.Operation == o.Name }); var operation = Calc.Operations.FirstOrDefault(o => o.Name == model.Operation); if (operation != null) { var dbOper = OperationRepository.GetByName(operation.Name); var operId = dbOper.Id; var inputData = string.Join(",", model.Arguments); var oldResult = ORRepository.GetOldResult(operId, inputData); if (!double.IsNaN(oldResult)) { model.Result = oldResult; } else { #region вычисление model.Result = operation.Execute(model.Arguments); var rec = ORRepository.Create(); //текущего пользователя назначаем автором var currUser = UserRepository.GetByName(User.Identity.Name); rec.Author = currUser; rec.Operation = dbOper; rec.ExecutionDate = DateTime.Now; rec.ExecutionTime = new Random().Next(0, 100); rec.InputData = inputData; rec.Result = model.Result ?? Double.NaN; ORRepository.Update(rec); #endregion } return(View(model)); } return(View()); }
public JsonResult Like(long id) { var result = ORRepository.Get(id); if (result == null) { return(Json(new { Success = false, Error = "Не удалось найти результат" })); } var curUser = GetCurrentUser(); //var like = LikeRepository.GetLikes(curUser.Id) // .FirstOrDefault(it => it.UserId == curUser.Id && it.ResultId == id); var like = LikeRepository.GetAll().FirstOrDefault(it => it.User.Id == curUser.Id && it.Result.Id == id); if (like != null) { //Dislike LikeRepository.Delete(like); return(Json(new { Success = true, Name = "Like" })); } // Создать лайк like = LikeRepository.Create(); // Заполнить свойства like.User = curUser; like.Result = result; // Сохранить LikeRepository.Update(like); // Вернуться к списку операций return(Json(new { Success = true, Name = "Dislike" })); }
public ActionResult Favourite() { var curUser = GetCurrentUser(); return(View(ORRepository.GetByUser(curUser))); }