Пример #1
0
        public JsonResult Form(VoteForm form)
        {
            form.UserID = UserSession.UserID;
            var score = Facade <UserActionFacade>().Voting(form);

            return(Json(score, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        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());
            }
        }
Пример #3
0
        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"));
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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));
        }