public CandidateDataModel Register(CandidateRequest candidateRequest)
        {
            var response = _context.Candidates.Add(new CandidateDataModel()
            {
                FirstName      = candidateRequest.FirstName,
                LastName       = candidateRequest.LastName,
                Email          = candidateRequest.Email,
                Guid           = Guid.NewGuid().ToString(),
                CandidateTests = new List <CandidateTestModel>
                {
                    new CandidateTestModel
                    {
                        TestId = 1,
                    },
                    new CandidateTestModel
                    {
                        TestId = 2,
                    },
                    new CandidateTestModel
                    {
                        TestId = 3,
                    },
                },
            });

            _context.SaveChanges();
            return(response.Entity);
        }
        public IActionResult AddCandidate([FromBody] CandidateRequest candidateRequest)
        {
            try
            {
                var    user = HttpContext.User;
                string message;
                bool   status;
                if (user.HasClaim(linq => linq.Type == "Email"))
                {
                    int adminId = Convert.ToInt32(user.Claims.FirstOrDefault(linq => linq.Type == "AdminId").Value);
                    var data    = this.candidateBusiness.AddCandidate(candidateRequest, adminId);
                    if (data != null)
                    {
                        status  = true;
                        message = "Candidate added successfully";
                        return(this.Ok(new { status, message, data }));
                    }
                }

                status  = false;
                message = "candidate already exists";
                return(this.BadRequest(new { status, message }));
            }
            catch (Exception e)
            {
                return(this.BadRequest(e.Message));
            }
        }
Ejemplo n.º 3
0
 public Candidate AddCandidate(CandidateRequest candidateRequest, int adminId)
 {
     try
     {
         var candidateData = this.dBContext.candidates.FirstOrDefault(linq => linq.CandidateFirstName == candidateRequest.CandidateFirstName);
         if (candidateData == null)
         {
             Candidate candidate = new Candidate()
             {
                 CandidateFirstName   = candidateRequest.CandidateFirstName,
                 CandidateLastName    = candidateRequest.CandidateLastName,
                 CandidatePhoneNumber = candidateRequest.CandidatePhoneNumber,
                 ConstituencyId       = candidateRequest.ConstituencyId,
                 Created  = DateTime.Now,
                 Modified = DateTime.Now,
                 PartyId  = candidateRequest.PartyId,
                 AdminId  = adminId
             };
             this.dBContext.candidates.Add(candidate);
             this.dBContext.SaveChanges();
             return(candidate);
         }
         return(null);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
 public Candidate AddCandidate(CandidateRequest candidateRequest, int adminId)
 {
     if (candidateRequest != null && adminId != 0)
     {
         return(this.candidateRepository.AddCandidate(candidateRequest, adminId));
     }
     return(null);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Time to become a candidate
        /// </summary>
        /// <param name="userToken"></param>
        public void ElectionTimeout(object userToken)
        {
            CandidateRequest req = null;

            try
            {
                lock (this.stateMachine.lock_Operations)
                {
                    if (this.TM.Election_TimerId == 0)  //Timer was switched off and we don't need to run it again
                    {
                        return;
                    }

                    this.TM.Election_TimerId = 0;

                    if (this.stateMachine.States.NodeState == eNodeState.Leader)
                    {
                        return;
                    }
                    this.stateMachine.VerbosePrint("Node {0} election timeout", this.stateMachine.NodeAddress.NodeAddressId);
                    this.stateMachine.States.NodeState  = eNodeState.Candidate;
                    this.stateMachine.LeaderNodeAddress = null;
                    this.stateMachine.VerbosePrint("Node {0} state is {1} _ElectionTimeout", this.stateMachine.NodeAddress.NodeAddressId, this.stateMachine.States.NodeState);
                    //Voting for self
                    //VotesQuantity = 1;
                    this.stateMachine.States.VotesQuantity.Clear();
                    //Increasing local term number
                    this.stateMachine.NodeTerm++;
                    req = new CandidateRequest()
                    {
                        TermId     = this.stateMachine.NodeTerm,
                        LastLogId  = this.stateMachine.NodeStateLog.StateLogId,
                        LastTermId = this.stateMachine.NodeStateLog.StateLogTerm
                    };
                    //send to all was here
                    //Setting up new Election Timer
                    EnterElectionTimeLoop();
                }
                this.stateMachine.network.SendToAll(eRaftSignalType.CandidateRequest, req, this.stateMachine.NodeAddress, entitySettings.EntityName);
            }
            catch (Exception ex)
            {
                this.stateMachine.Log.Log(new WarningLogEntry()
                {
                    Exception = ex, Method = "Raft.RaftNode.ElectionTimeout"
                });
            }
        }
Ejemplo n.º 6
0
        public ActionResult <CandidateDataModel> RegisterCandidate([FromForm] CandidateRequest candidateRequest)
        {
            var sessionIdValid = _sessionService.RequestHasValidSessionId(HttpContext);

            if (!sessionIdValid)
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var newCandidate = _candidates.Register(candidateRequest);

            return(newCandidate);
        }
Ejemplo n.º 7
0
        public async Task OnRecieve(IChannelHandlerContext context, string msgstr)
        {
            //
            if (!string.IsNullOrEmpty(msgstr))
            {
                //RaftCommand  msgObj = Newtonsoft.Json.JsonConvert.DeserializeObject<RaftCommand>(msgstr, new JsonSerializerSettings()
                //{
                //    NullValueHandling = NullValueHandling.Ignore,
                //    TypeNameHandling = TypeNameHandling.All,
                //    TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Full
                //}
                //);
                int         index  = msgstr.IndexOf(',');
                string      num    = msgstr.Substring(0, index);
                string      base64 = msgstr.Substring(index + 1);
                byte[]      data   = Convert.FromBase64String(base64);
                RaftCommand cmd    = new RaftCommand();
                cmd.Code = Convert.ToInt32(num);
                switch (cmd.Code)
                {
                case RaftCommand.Handshake:
                    cmd.Message = TcpMsgHandshake.BiserDecode(data);
                    break;

                case RaftCommand.HandshakeACK:
                    cmd.Message = TcpMsgHandshake.BiserDecode(data);
                    break;

                case RaftCommand.RaftMessage:
                    cmd.Message = TcpMsgRaft.BiserDecode(data);
                    TcpMsgRaft t = (TcpMsgRaft)cmd.Message;
                    switch (t.RaftSignalType)
                    {
                    case eRaftSignalType.LeaderHearthbeat:
                        t.orginalObject = LeaderHeartbeat.BiserDecode(t.Data);
                        break;

                    case eRaftSignalType.CandidateRequest:
                        t.orginalObject = CandidateRequest.BiserDecode(t.Data);
                        break;

                    case eRaftSignalType.StateLogEntryAccepted:
                        t.orginalObject = StateLogEntryApplied.BiserDecode(t.Data);
                        break;

                    case eRaftSignalType.StateLogEntryRequest:
                        t.orginalObject = StateLogEntryRequest.BiserDecode(t.Data);
                        break;

                    case eRaftSignalType.StateLogEntrySuggestion:
                        t.orginalObject = StateLogEntrySuggestion.BiserDecode(t.Data);
                        break;

                    case eRaftSignalType.StateLogRedirectRequest:
                        t.orginalObject = StateLogEntryRedirectRequest.BiserDecode(t.Data);
                        break;

                    case eRaftSignalType.VoteOfCandidate:
                        t.orginalObject = VoteOfCandidate.BiserDecode(t.Data);
                        break;
                    }
                    break;

                case RaftCommand.FreeMessage:
                    cmd.Message = TcpMsg.BiserDecode(data);
                    break;
                }
                this.packetParser(cmd as RaftCommand);
            }
        }