public JsonResult Form(VoteForm form) { form.UserID = UserSession.UserID; var score = Facade <UserActionFacade>().Voting(form); return(Json(score, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> Index(VoteForm voteForm) { if (_phoneNumberModelService.GetPhoneNumberModels().Where(phone => phone.PhoneNumber == voteForm.PhoneNumber).ToList().Count != 0) { ModelState.AddModelError("Телефонный номер", "Голос с использованием такого номера уже есть!"); } if (voteForm.Place == null) { ModelState.AddModelError("Место для голосования", "Пожалуйста, выберите место для голосования."); } if (ModelState.IsValid) { TargetModel target = _targetModelService.GetTargetModel(Convert.ToInt32(voteForm.Target)); VotePlaceModel place = _votePlaceModelService.GetVotePlaceModel(Convert.ToInt32(voteForm.Place)); VoteProcessModel process = _voteProcessModelService.GetVoteProcessModels().ToList().Last(); PhoneNumberModel phoneNumber; if (HttpContext.User.Identity.IsAuthenticated) { ApplicationUser user = await _userManager.GetUserAsync(User); phoneNumber = new PhoneNumberModel() { PhoneNumber = user.PhoneNumber }; } else { phoneNumber = new PhoneNumberModel() { PhoneNumber = voteForm.PhoneNumber }; } _voteModelService.InsertVoteModel( new VoteModel() { CreatedAt = DateTime.Now, TargetId = target, VotePlaceId = place, PhoneNumberId = phoneNumber, VoteProcessId = process }); _logger.LogInformation($"{voteForm.PhoneNumber} voted"); await _hubContext.Clients.All.SendAsync("Stat", "update"); return(RedirectToAction(nameof(VoteSuccess))); } else { return(await Index()); } }
public int Voting(VoteForm form) { form.ByUserID = form.UserID; // byUserID has to be the UserID using (var uow = UnitOfWorkFactory.Create <NovelContext>()) { var service = new UserActionService(uow); var id = service.Voting(form); var vote = service.SummarizeVote(form); return(vote); } }
public ActionResult Vote(string UserId, string Question, string Vote) { VoteForm vote = new VoteForm { UserId = UserId, Question = Question, Vote = Vote }; var castVote = new VoteLogic(); castVote.CastVote(vote); return(RedirectToAction("Vote")); }
public int Voting(VoteForm form) { var tUserVote = Table <UserVote>(); var userVote = tUserVote.GetOrAdd(w => w.UserID == form.UserID && w.SourceID == form.SourceID && w.SourceTable == form.SourceTable); MapProperty(form, userVote); UpdateAuditFields(userVote, form.ByUserID); userVote.Vote = form.Vote; // update when Vote is 0 // save SaveChanges(); return(userVote.ID); }
public int SummarizeVote(VoteForm form) { var tUserVote = View <UserVote>(); var tSummarize = Table <Summarize>(); var summarize = tSummarize.GetOrAdd(w => w.SourceID == form.SourceID && w.SourceTable == form.SourceTable); MapProperty(form, summarize); UpdateAuditFields(summarize, form.ByUserID); summarize.VoteUp = tUserVote.Where(w => w.SourceID == form.SourceID && w.SourceTable == form.SourceTable).Count(s => s.Vote == 1); summarize.VoteDown = tUserVote.Where(w => w.SourceID == form.SourceID && w.SourceTable == form.SourceTable).Count(s => s.Vote == -1); // save SaveChanges(); return(summarize.VoteUp - summarize.VoteDown); }
public async Task <ActionResult> Index() { SelectList places = GetVotePlacesForSelect("Region"); SelectList targets = new SelectList(_targetModelService.GetTargetModels(), "Id", "Name"); ViewBag.Places = places; ViewBag.Targets = targets; var voteForm = new VoteForm(); if (HttpContext.User.Identity.IsAuthenticated) { ApplicationUser user = await _userManager.GetUserAsync(User); voteForm.PhoneNumber = user.PhoneNumber; } return(View(voteForm)); }