private static async Task ImportCandidatesForBallot(Ballot senateBallot, List <ExcelCandidate> candidates, ApplicationDbContext dbContext, int countyId) { foreach (var candidate in candidates) { var candidateResult = new CandidateResult { BallotId = senateBallot.BallotId, CountyId = countyId, Division = ElectionDivision.County, BallotPosition = (int)candidate.ListPosition, Name = candidate.CandidateFirstName + " " + candidate.CandidateLastName, PartyName = candidate.PartyName }; if (countyId.IsDiaspora()) { candidateResult.Division = ElectionDivision.Diaspora; candidateResult.CountyId = null; } if (countyId == Consts.MinoritiesCountyId) { candidateResult.CountyId = null; } dbContext.CandidateResults.Add(candidateResult); } await dbContext.SaveChangesAsync(); }
public bool TryParseCandidate(string name, Stream data, out CandidateResult result, out Exception error) { FileDescriptorProto candidate; try { candidate = Serializer.Deserialize <FileDescriptorProto>(data); } catch (EndOfStreamException ex) { result = CandidateResult.Rescan; error = ex; return(false); } catch (Exception ex) { result = CandidateResult.Invalid; error = ex; return(true); } Candidates.Add(candidate); result = CandidateResult.OK; error = null; return(true); }
private static CandidateResult CreateCandidateResult(Vote vote, Ballot ballot, List <Party> parties, int?localityId, int?countyId, ElectionDivision division = ElectionDivision.Locality) { var candidateResult = new CandidateResult { BallotId = ballot.BallotId, Division = division, Votes = vote.Votes, Name = vote.Candidate, CountyId = countyId, LocalityId = localityId, Seats1 = vote.Mandates1, Seats2 = vote.Mandates2 }; var partyName = ballot.BallotType == BallotType.LocalCouncil || ballot.BallotType == BallotType.CountyCouncil ? vote.Candidate : vote.Party; if (partyName.IsNotEmpty()) { candidateResult.PartyId = parties.FirstOrDefault(p => p.Alias.ContainsString(partyName))?.Id ?? parties.FirstOrDefault(p => p.Name.ContainsString(partyName))?.Id; } candidateResult.PartyName = partyName; if (candidateResult.PartyId == null && partyName.IsNotEmpty()) { candidateResult.ShortName = partyName.GetPartyShortName(null); } return(candidateResult); }
private async Task <CandidateResult> RejectCandidate([NotNull] Candidate entity) { _logger.LogInformation(GetLogMessage($@"Rejecting Candidate: {entity.Id}")); var retVal = new CandidateResult(); entity.ObjectState = ObjectState.Modified; entity.Status = CandidateStatus.Rejected; entity.StatusTransitions.Add(new CandidateStatusTransition() { ObjectState = ObjectState.Added, Status = CandidateStatus.Rejected }); var leadResult = Repository.InsertOrUpdateGraph(entity, true); _logger.LogDebug(GetLogMessage("{0} results added"), leadResult); if (leadResult > 0) { retVal.Succeeded = true; await Task.Run(() => { RaiseEvent(new CandidateRejectedEvent { CandidateId = entity.Id }); }); } return(retVal); }
private async Task <CandidateResult> UpdateCandidate([NotNull] Candidate candidate) { _logger.LogInformation(GetLogMessage($@"Updating Candidate: {candidate.Id}")); var retVal = new CandidateResult { CandidateId = candidate.Id }; var records = await Repository.UpdateAsync(candidate, true); if (records > 0) { retVal.Succeeded = true; await Task.Run(() => { RaiseEvent(new CandidateUpdatedEvent { CandidateId = candidate.Id }); }); } return(retVal); }
public static void Swap(CandidateResult[] results, int left, int right) { CandidateResult temp = results[right]; results[right] = results[left]; results[left] = temp; }
private async Task <CandidateResult> DeleteCandidate(Guid candidateId) { _logger.LogInformation(GetLogMessage("Candidate: {0}"), candidateId); var candidate = await Repository.FirstOrDefaultAsync(x => x.Id == candidateId); candidate.IsDeleted = true; var retVal = new CandidateResult() { CandidateId = candidateId }; var records = await Repository.UpdateAsync(candidate, true); if (records > 0) { retVal.Succeeded = true; await Task.Run(() => { RaiseEvent(new CandidateDeletedEvent { CandidateId = candidateId }); }); } return(retVal); }
private static string GetCandidateName(CandidateResult c) { if (c.Party != null && c.Party.Name.ToLower() == "independent") { return(c.Name); } return(c.Party?.Name.Or(c.PartyName).Or(c.Name) ?? c.Name.Or(c.PartyName)); }
public static string GetPartyColor(this CandidateResult c) { if (c.Party != null && c.Party.Name?.ToLower() == "independent" || c.Name.ToLower() == "independent") { return(null); } return(c.Party?.Color); }
private static CandidateResult[] ResultsRecievesFirstSectionResults(CandidateResult[][] results) { CandidateResult[] firstsectionResults = new CandidateResult[results[0].Length]; for (int i = 0; i <= results[0].Length - 1; i++) { firstsectionResults[i] = results[0][i]; } return(firstsectionResults); }
public static string GetCandidateName(this CandidateResult c, Ballot ballot) { if (ballot.BallotType == BallotType.EuropeanParliament || ballot.BallotType == BallotType.Senate || ballot.BallotType == BallotType.House) { return(c.Party?.Name.Or(c.PartyName).Or(c.Name) ?? c.Name.Or(c.PartyName)); } return(c.Name.IsEmpty() ? c.PartyName : c.Name); }
private static CandidateResult[] BuildTotalResult(ResultInEachOffice[] electionResults) { CandidateResult[] total = new CandidateResult[electionResults[0].office.Length]; for (int i = 0; i < total.Length; i++) { total[i].name = electionResults[0].office[i].name; total[i].votes = 0; } return total; }
public CandidateResult ResultDetailsObject(int score, string email, String examCode, byte submitStatus) { var resultDetails = new CandidateResult() { Email = email, TotalScore = score, SubmitExam = submitStatus, TestCode = examCode }; return(resultDetails); }
private static Winner CreateWinner(int ballotId, int?countyId, CandidateResult localityWinner, Turnout turnoutForLocality, ElectionDivision division) { return(new Winner { BallotId = ballotId, CandidateId = localityWinner.Id, CountyId = countyId, Division = division, Name = localityWinner.Name, PartyId = localityWinner.PartyId, TurnoutId = turnoutForLocality?.Id }); }
private static void OrderList(CandidateResult[] finalResults) { for (int i = 1; i <= finalResults.Length - 1; i++) { CandidateResult candidate = finalResults[i]; int position = i - 1; while ((position >= 0) && (finalResults[position].votes < candidate.votes)) { Swap(finalResults, position + 1, position); position--; } finalResults[position + 1] = candidate; } }
private static void PopulateCandidateWithPartyInfo(CandidateResult candidate, Party party) { candidate.Party = party; candidate.PartyId = party.Id; if (party?.Alias != null) { candidate.Name = candidate.Name.Replace(party.Alias, ""); } if (party.Name != null) { candidate.Name = candidate.Name.Replace(party.Name, ""); } candidate.Name = candidate.Name.Trim('-', '.', ' '); }
private static Winner CreateWinner(int ballotId, CandidateResult countyWinner, ElectionMapWinner electionMapWinner, int turnoutId, int countryId, ElectionDivision division) { return(new Winner { BallotId = ballotId, CandidateId = countyWinner.Id, Name = electionMapWinner.Winner.Name, PartyId = electionMapWinner.Winner.Party?.Id, Votes = electionMapWinner.Winner.Votes, TurnoutId = turnoutId, CountryId = countryId, Division = division }); }
public void TestWith2Sections() { CandidateResult[] section1Results = new CandidateResult[] { new CandidateResult("Candidate1", 20), new CandidateResult("Candidate3", 15), new CandidateResult("Candidate2", 14), new CandidateResult("Candidate4", 12) }; CandidateResult[] section2Results = new CandidateResult[] { new CandidateResult("Candidate2", 35), new CandidateResult("Candidate3", 19), new CandidateResult("Candidate1", 17), new CandidateResult("Candidate4", 3) }; CandidateResult[][] results = new CandidateResult[][] { section1Results, section2Results }; CandidateResult[] expectedFinalResults = new CandidateResult[] { new CandidateResult("Candidate2", 49), new CandidateResult("Candidate1", 37), new CandidateResult("Candidate3", 34), new CandidateResult("Candidate4", 15) }; CandidateResult[] actualResults = OrderElectionsResultList(results); CollectionAssert.AreEqual(expectedFinalResults, actualResults); }
public void submitAllQuestions(SubmitAnswerCustomModel value, Dictionary <string, string> email) { var allQuestions = db.Questions.Where(s => s.ExamCode == value.code).ToList(); var savedQuestions = db.CandidateAnswer.Where(s => s.TestCode == value.code && s.Email == email["Email"]).ToList(); int i; if (savedQuestions.Count != 0) { for (i = 0; i < allQuestions.Count; i++) { var status = db.CandidateAnswer.Where(s => s.Id == allQuestions[i].Id).FirstOrDefault(); if (status == null) { String id = allQuestions[i].Id.ToString(); CandidateAnswer answerDetails = AnswerDetailsObject(email["Email"], value.code, id, 0, null); db.CandidateAnswer.Add(answerDetails); db.SaveChanges(); } } db.CandidateResult.Where(s => s.Email == email["Email"] && s.TestCode == value.code).ToList().ForEach(x => x.SubmitExam = 1); db.SaveChanges(); //if (allQuestions.Count == savedQuestions.Count) //{ // db.CandidateResult.Where(s => s.Email == email["Email"] && s.TestCode == value.code).ToList().ForEach(x=> x.SubmitExam = 1); // db.SaveChanges(); // return; //} } else { CandidateResult resultDetails = ResultDetailsObject(0, email["Email"], value.code, 0); db.CandidateResult.Add(resultDetails); db.SaveChanges(); for (i = 0; i < allQuestions.Count; i++) { String id = allQuestions[i].Id.ToString(); CandidateAnswer answerDetails = AnswerDetailsObject(email["Email"], value.code, id, 0, null); db.CandidateResult.Where(s => s.Email == email["Email"] && s.TestCode == value.code).ToList().ForEach(x => x.SubmitExam = 1); db.CandidateAnswer.Add(answerDetails); db.SaveChanges(); } } }
public List <CandidateResult> RetrieveWinners(List <CandidateResult> results, BallotType ballotType) { foreach (var candidateResult in results) { if (candidateResult.Party == null && candidateResult.PartyName.IsNotEmpty()) { candidateResult.Party = new Party { Name = candidateResult.PartyName } } ; } var groupedWinners = results .GroupBy(w => w.Party?.Name) .OrderByDescending(w => w.Count()) .ToList(); var candidateResults = new List <CandidateResult>(); foreach (var candidate in groupedWinners) { var electionMapWinner = candidate.FirstOrDefault(); var item = new CandidateResult { Name = candidate.Key == null ? "INDEPENDENT" : electionMapWinner?.Party.Name, Party = electionMapWinner?.Party, CountyId = electionMapWinner.CountyId }; if (ballotType == BallotType.Mayor || ballotType == BallotType.CountyCouncilPresident) { item.Votes = candidate.Count(); } else { item.Votes = candidate.Sum(c => c.Votes); } item.TotalSeats = item.SeatsGained = candidate.Sum(c => c.Seats1 + c.Seats2); candidateResults.Add(item); } return(candidateResults); } }
public static CandidateResult[] CreateElectionResultList(CandidateResult[][] results) { CandidateResult[] cumulatedResults = new CandidateResult[results[0].Length]; cumulatedResults = ResultsRecievesFirstSectionResults(results); for (int i = 1; i <= results.Length - 1; i++) { CandidateResult[] currentSection = results[i]; for (int j = 0; j <= currentSection.Length - 1; j++) { for (int h = 0; h <= cumulatedResults.Length - 1; h++) { if (String.Compare(cumulatedResults[h].candidateName, currentSection[j].candidateName) == 0) { cumulatedResults[h].votes += currentSection[j].votes; break; } } } } return(cumulatedResults); }
public ActionResult ViewResult() { CandidateResult cand = new CandidateResult(); var user = context.Users.FirstOrDefault(x => x.UserName == HttpContext.User.Identity.Name); cand.FirstName = user.FirstName; cand.LastName = user.LastName; var candidate = context.InterviewDetail.Where(x => x.Candidate.UserName == HttpContext.User.Identity.Name); cand.AverageRating = "Not Rated."; cand.Result = "No Result Found."; if (candidate.Count() > 0) { var totalRating = Convert.ToDecimal(candidate.Sum(x => x.Rating)); var counter = candidate.Count(); var ratingCount = (totalRating / counter); cand.AverageRating = ratingCount.ToString(); cand.Result = ratingCount >= 3 ? "Pass" : "Fail"; } var allUsers = context.InterviewDetail.OrderBy(l => l.InterviewDate).GroupBy(x => x.Candidate.UserName).Select(g => new { CurrentUser = g.Key, TotalRatings = g.Sum(k => k.Rating) }).OrderByDescending(y => y.TotalRatings); cand.Rank = 0; foreach (var rateduser in allUsers) { if (rateduser.CurrentUser == HttpContext.User.Identity.Name) { cand.Rank++; break; } cand.Rank++; } return(View(cand)); }
public static string GetCandidateShortName(this CandidateResult c, Ballot ballot) { try { if (ballot.BallotType == BallotType.EuropeanParliament || ballot.BallotType == BallotType.Senate || ballot.BallotType == BallotType.House) { return(c.ShortName); } if (c.Name.IsParty() || c.Name.IsEmpty()) { return(c.ShortName); } var processedName = ParseShortName(c.Name); return(processedName); } catch (Exception e) { Console.WriteLine(e); return(c.ShortName); } }
public ActionResult ViewRank() { IList <CandidateResult> candidateResults = new List <CandidateResult>(); var interviewDetails = context.InterviewDetail.ToList(); var candIds = interviewDetails.Select(y => y.Candidate.Id).ToList(); var allUsers = context.Users.Where(x => candIds.Contains(x.Id)).ToList(); var interviewDetailsGroups = interviewDetails.OrderBy(l => l.InterviewDate).GroupBy(x => x.Candidate.UserName).Select(g => new { CurrentUser = g.Key, TotalRatings = g.Sum(k => k.Rating), RoundsTaken = g.GroupBy(a => a.Round.Id).Select(r => new RoundDetails { RoundName = r.FirstOrDefault().Round.Description, TotalRound = r.Count(), TotalRating = r.Sum(t => t.Rating) }) }).OrderByDescending(y => y.TotalRatings); foreach (var user in allUsers) { CandidateResult candidateResult = new CandidateResult(); var candidate = interviewDetails.Where(x => x.Candidate.UserName == user.UserName); candidateResult.FirstName = user.FirstName; candidateResult.LastName = user.LastName; candidateResult.InterviewRounds.AddRange(interviewDetailsGroups.Where(x => x.CurrentUser == user.UserName).Select(a => a.RoundsTaken).FirstOrDefault().ToList()); candidateResult.Rank = 0; foreach (var interviewDetailsGroup in interviewDetailsGroups) { if (interviewDetailsGroup.CurrentUser == user.UserName) { candidateResult.Rank++; break; } candidateResult.Rank++; } candidateResults.Add(candidateResult); } return(View(candidateResults)); }
private CandidateResult[] SortByVotes(CandidateResult[] total) { int k = 1; while (k != 0) { k = 0; for (int i = 1; i < total.Length; i++) { if (total[0].votes < total[i].votes) Swap(ref total[i], ref total[++k]); } Swap(ref total[0], ref total[k]); } return total; }
public ResultInEachOffice(CandidateResult[] office) { this.office = office; }
private void Swap(ref CandidateResult firstCandidate, ref CandidateResult secondCandidate) { CandidateResult temp = firstCandidate; firstCandidate = secondCandidate; secondCandidate = temp; }
private async Task <CandidateResult> CreateCandidate(IOrganizationRecruiter re, Guid providerOrganizationId, CandidateInput input) { _logger.LogInformation(GetLogMessage("RE: {0}"), re.OrganizationId); var retVal = new CandidateResult(); var isExternal = providerOrganizationId != re.OrganizationId; _logger.LogDebug(GetLogMessage("External Lead: {0}"), isExternal); var recruiter = await _recruiterRepository.Queryable() .Include(x => x.Recruiter) .ThenInclude(x => x.Person) .Where(x => x.RecruiterId == re.RecruiterId && x.OrganizationId == re.OrganizationId) .FirstAsync(); var recruiterBonus = recruiter.RecruiterBonus; var recruitingAgencyBonus = 0m; var recruitingAgencyStream = 0m; var recruiterStream = recruiter.RecruiterStream; _logger.LogDebug( GetLogMessage( $@"Recruiter Found: {recruiter.Recruiter.Person.DisplayName}")); if (isExternal) { var recruitingAgreement = await _recruitingAgreements.Queryable() .Where(x => x.ProviderOrganizationId == providerOrganizationId && x.RecruitingOrganizationId == re.OrganizationId) .FirstOrDefaultAsync(); if (recruitingAgreement == null) { retVal.ErrorMessage = "Recruiting agreement doesn't exist between recruiting and provider organization"; return(retVal); } if (recruitingAgreement.Status != AgreementStatus.Approved) { retVal.ErrorMessage = "Recruiting agreement is not approved"; return(retVal); } _logger.LogTrace( GetLogMessage( $@"Recruiting Agreement found to be valid")); recruiterBonus = recruitingAgreement.RecruiterBonus; recruitingAgencyBonus = recruitingAgreement.RecruitingAgencyBonus; recruitingAgencyStream = recruitingAgreement.RecruitingAgencyStream; recruiterStream = recruitingAgreement.RecruiterStream; } var candidate = new Candidate { Iso2 = input.Iso2, ProvinceState = input.ProvinceState, RecruiterStream = recruiterStream, RecruiterBonus = recruiterBonus, RecruitingAgencyStream = recruitingAgencyStream, RecruitingAgencyBonus = recruitingAgencyBonus, ProviderOrganizationId = providerOrganizationId, RecruiterOrganizationId = re.OrganizationId, RecruiterId = re.RecruiterId, UpdatedById = _userInfo.UserId, CreatedById = _userInfo.UserId, ObjectState = ObjectState.Added, Status = CandidateStatus.New, StatusTransitions = new List <CandidateStatusTransition>() { new CandidateStatusTransition() { Status = CandidateStatus.New, ObjectState = ObjectState.Added } } }.InjectFrom(input) as Candidate; var candidateResult = Repository.Insert(candidate, true); _logger.LogDebug(GetLogMessage("{0} records updated in database."), candidateResult); if (candidateResult > 0) { retVal.Succeeded = true; retVal.CandidateId = candidate.Id; await Task.Run(() => { RaiseEvent(new CandidateCreatedEvent { CandidateId = candidate.Id }); }); } return(retVal); }
private static ElectionMapWinner CreateElectionMapWinner(int?divisionId, Ballot ballot, CandidateResult winner, Turnout turnoutForDivision) { var electionMapWinner = new ElectionMapWinner { Id = divisionId.GetValueOrDefault(), Winner = new MapWinner() }; if (ballot.BallotType != BallotType.Referendum) { electionMapWinner.Winner.Name = winner.Name; electionMapWinner.Winner.ShortName = winner.ShortName; electionMapWinner.Winner.Votes = winner.Votes; electionMapWinner.Winner.PartyColor = winner.Party?.Color ?? Consts.IndependentCandidateColor; electionMapWinner.Winner.Party = winner.Party; } else { if (string.Equals(ballot.Election.Subtitle, "Invalidat")) { electionMapWinner.Winner.Name = "NU AU VOTAT"; electionMapWinner.Winner.ShortName = "NU AU VOTAT"; electionMapWinner.Winner.Votes = turnoutForDivision.EligibleVoters - turnoutForDivision.TotalVotes; } else { if (winner.YesVotes > winner.NoVotes) { electionMapWinner.Winner.Name = "DA"; electionMapWinner.Winner.ShortName = "DA"; electionMapWinner.Winner.Votes = winner.YesVotes; } else { electionMapWinner.Winner.Name = "NU"; electionMapWinner.Winner.ShortName = "NU"; electionMapWinner.Winner.Votes = winner.NoVotes; } } } electionMapWinner.ValidVotes = turnoutForDivision.ValidVotes; return(electionMapWinner); }
private static ElectionMapWinner CreateElectionMapWinner(int id, Ballot ballot, CandidateResult winner, Turnout turnoutForCountry) { var electionMapWinner = new ElectionMapWinner { Id = id, Winner = new Winner() }; if (ballot.BallotType != BallotType.Referendum) { electionMapWinner.Winner.Name = winner.Name; electionMapWinner.Winner.ShortName = winner.ShortName; electionMapWinner.Winner.Votes = winner.Votes; electionMapWinner.Winner.PartyColor = winner.Party?.Color; } else { if (winner.ShortName == "DA") { electionMapWinner.Winner.Name = "DA"; electionMapWinner.Winner.ShortName = "DA"; electionMapWinner.Winner.Votes = winner.YesVotes; } else { electionMapWinner.Winner.Name = "NU"; electionMapWinner.Winner.ShortName = "NU"; electionMapWinner.Winner.Votes = winner.NoVotes; } } electionMapWinner.ValidVotes = turnoutForCountry.ValidVotes; return(electionMapWinner); }
private static void PopulatePartyInfo(CandidateResult candidate, Party party) { candidate.Party = party; candidate.PartyId = party.Id; }
public static ExamViewModal CalculateResultData(ExamViewModal examViewModal) { int correctAnswercount = 0; int WrongAnswerCount = 0; int NoAnswerCount = 0; foreach (QuestionViewModel qvmodel in examViewModal.QuestionSheet) { var question = QuizAPI.Repository.QuestionRepository.GetQuestion(qvmodel.QuestionId); qvmodel.CorrectAnswer = question.CorrectAnswerIndex; int knowledgeareaid = question.KnowledgeAreaId; if (qvmodel.UserAnswer.Trim() == "") { qvmodel.isCorrect = "S"; NoAnswerCount++; } else { if (qvmodel.UserAnswer.Trim() == qvmodel.CorrectAnswer.Trim()) { qvmodel.isCorrect = "Y"; correctAnswercount++; } else { qvmodel.isCorrect = "N"; WrongAnswerCount++; } } var asd = from cnt in examViewModal.ExamKnowledgeViewModals where cnt.KnowledgeAreaID == knowledgeareaid select cnt; foreach (var element in asd) { if (qvmodel.isCorrect == "Y") { element.CorrectAnswerCount = element.CorrectAnswerCount + 1; } else if (qvmodel.isCorrect == "S") { element.NoAnswerCount = element.NoAnswerCount + 1; } else if (qvmodel.isCorrect == "N") { element.WrongAnswersCount = element.WrongAnswersCount + 1; } } } examViewModal.correctAnswercount = correctAnswercount; examViewModal.WrongAnswerCount = WrongAnswerCount; examViewModal.NoAnswerCount = NoAnswerCount; examViewModal.TotalMark = correctAnswercount * examViewModal.MarkPerQstn; examViewModal.Negativemark = WrongAnswerCount * examViewModal.NegativemarkPerQstn; examViewModal.FinalMark = examViewModal.TotalMark - examViewModal.Negativemark; using (QuizContext cntxt = new QuizContext()) { CandidateResult canreslt = new CandidateResult(); canreslt.CandidateId = examViewModal.Candidateviewmodal.CandidateId; canreslt.ExamTableMainId = examViewModal.ExamTableMainId; canreslt.correctAnswercount = examViewModal.correctAnswercount; canreslt.WrongAnswerCount = examViewModal.WrongAnswerCount; canreslt.NoAnswerCount = examViewModal.NoAnswerCount; canreslt.UsedMinutes = examViewModal.UsedMinutes; canreslt.TotalQuestion = examViewModal.TotalQuestion; canreslt.TotalMark = examViewModal.TotalMark; canreslt.Negativemark = examViewModal.Negativemark; canreslt.FinalMark = examViewModal.FinalMark; canreslt.ExamDate = DateTime.Now; cntxt.CandidateResults.Add(canreslt); cntxt.SaveChanges(); foreach (ExamKnowledgeViewModal knwmdl in examViewModal.ExamKnowledgeViewModals) { CandidateResultDetail canresltdet = new CandidateResultDetail(); canresltdet.CandidateResultId = canreslt.CandidateResultId; canresltdet.KnowledgeAreaID = knwmdl.KnowledgeAreaID; canresltdet.TotalQstn = knwmdl.TotalQstn; canresltdet.WrongAnswersCount = knwmdl.WrongAnswersCount; canresltdet.NoAnswerCount = knwmdl.NoAnswerCount; canresltdet.CorrectAnswerCount = knwmdl.CorrectAnswerCount; cntxt.CandidateResultDetails.Add(canresltdet); cntxt.SaveChanges(); } } return(examViewModal); }
public void SignalingHandler(WebSocket webSocket, byte[] Incbuffer, WebSocketReceiveResult result) { var buffer = Incbuffer.Where(x => x != 0).ToArray(); var strCommand = Encoding.ASCII.GetString(buffer).Replace(@"\0", string.Empty); var objBuffer = new Tuple <byte[], int>(null, 0); try { dynamic objSocket = new ExpandoObject(); objSocket.connection = webSocket; objSocket.name = string.Empty; objSocket.otherName = string.Empty; BaseObject incType = null; CandidateObject CandidateType = null; try { //Todo : You Can Do This Part Better That This //Fix Commands With Leave Handeling v1 strCommand = StringHelper.FixCommand(strCommand); incType = SerializationHelper.Deserialize <BaseObject>(strCommand); } catch (Exception e) { Console.WriteLine(e); throw; } if (incType.type == ClsEnumeration.EnumCommandType.login.ToString()) { var loginObj = new LoginResult() { type = "login", success = "true" }; var incData = SerializationHelper.Deserialize <LoginObject>(strCommand); try { if (ClsStatics.UsersStatic.ContainsKey(incData.name)) { ClsStatics.UsersStatic.Remove(incData.name); objSocket.name = incData.name; ClsStatics.UsersStatic.Add(incData.name, objSocket); objBuffer = ObjectHelper.GetObjectBuffer(loginObj); objSocket.connection.SendAsync( new ArraySegment <byte>(objBuffer.Item1, 0, objBuffer.Item2), result.MessageType, result.EndOfMessage, CancellationToken.None); Console.WriteLine($"Send Success Login For User {incData.name}"); } else { loginObj.success = "false"; objSocket.name = incData.name; ClsStatics.UsersStatic.Add(incData.name, objSocket); objBuffer = ObjectHelper.GetObjectBuffer(loginObj); objSocket.connection.SendAsync( new ArraySegment <byte>(objBuffer.Item1, 0, objBuffer.Item2), result.MessageType, result.EndOfMessage, CancellationToken.None); Console.WriteLine($"Send Success Login For User {incData.name}"); } } catch (Exception e) { objBuffer = ObjectHelper.GetObjectBuffer(loginObj); objSocket.connection.SendAsync( new ArraySegment <byte>(objBuffer.Item1, 0, objBuffer.Item2), result.MessageType, result.EndOfMessage, CancellationToken.None); Console.WriteLine($"Send Failed Login For User {incData.name}"); } } if (incType.type == ClsEnumeration.EnumCommandType.offer.ToString()) { var incData = SerializationHelper.Deserialize <OfferObject>(strCommand); //for ex. UserA wants to call UserB //if UserB exists then send him offer details dynamic Dyncon = ClsStatics.UsersStatic[incData.name]; if (Dyncon != null) { var offResObj = new OfferResult() { type = "offer", offer = incData.offer, name = incData.Owner }; Dyncon.otherName = incData.name; objBuffer = ObjectHelper.GetObjectBuffer(offResObj); Dyncon.connection.SendAsync(new ArraySegment <byte>(objBuffer.Item1, 0, objBuffer.Item2), result.MessageType, result.EndOfMessage, CancellationToken.None); Console.WriteLine($"Sending offer from : {incData.Owner} to: {incData.name}"); } } if (incType.type == ClsEnumeration.EnumCommandType.candidate.ToString()) { lock (ClsStatics.MessageLockCandidate) { var incData = SerializationHelper.Deserialize <CandidateObject>(strCommand); dynamic Dyncon = ClsStatics.UsersStatic[incData.name]; if (Dyncon != null) { var candidateResObj = new CandidateResult() { type = "candidate", candidate = incData.candidate }; objBuffer = ObjectHelper.GetObjectBuffer(candidateResObj); Dyncon.connection.SendAsync(new ArraySegment <byte>(objBuffer.Item1, 0, objBuffer.Item2), result.MessageType, result.EndOfMessage, CancellationToken.None); Console.WriteLine("Sending candidate to:", incData.name); } } } if (incType.type == ClsEnumeration.EnumCommandType.answer.ToString()) { var incData = SerializationHelper.Deserialize <AnswerObject>(strCommand); dynamic Dyncon = ClsStatics.UsersStatic[incData.name]; Console.WriteLine($"Sending answer to: {incData.name}"); //for ex. UserB answers UserA if (Dyncon != null) { var answerObj = new AnswerObject() { type = "answer", answer = incData.answer }; objBuffer = ObjectHelper.GetObjectBuffer(answerObj); Dyncon.connection.SendAsync( new ArraySegment <byte>(objBuffer.Item1, 0, objBuffer.Item2), result.MessageType, result.EndOfMessage, CancellationToken.None); } } else if (incType.type == ClsEnumeration.EnumCommandType.leave.ToString()) { lock (ClsStatics.MessageLockCandidate) { var incData = SerializationHelper.Deserialize <LoginObject>(strCommand); dynamic Dyncon = ClsStatics.UsersStatic[incData.name]; Dyncon.otherName = null; Console.WriteLine(string.Format("Sending answer to: {0}", incData.name)); //for ex. UserB answers UserA if (Dyncon != null) { var leaveObj = new BaseObject() { type = "leave" }; objBuffer = ObjectHelper.GetObjectBuffer(leaveObj); Dyncon.connection.SendAsync( new ArraySegment <byte>(objBuffer.Item1, 0, objBuffer.Item2), result.MessageType, result.EndOfMessage, CancellationToken.None); ClsStatics.UsersStatic.Remove(incData.name); } } } } catch (Exception e) { Console.WriteLine(e); } //await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, result.Count), result.MessageType, result.EndOfMessage, CancellationToken.None); }
public async Task <CandidateResult> QualifyCandidate(IProviderAgencyOwner agencyOwner, Guid candidateId, CandidateQualifyInput input) { _logger.LogInformation(GetLogMessage("AO: {0}, CandidateId: {1}"), agencyOwner.OrganizationId, candidateId); var retVal = new CandidateResult() { CandidateId = candidateId }; var candidate = await Repository .Queryable() .ForAgencyOwner(agencyOwner) .FindById(candidateId) .FirstAsync(); if (candidate.Status != CandidateStatus.Qualified) { candidate.InjectFrom(input); candidate.ProjectManagerId = input.ProjectManagerId; candidate.ProjectManagerOrganizationId = agencyOwner.OrganizationId; candidate.ObjectState = ObjectState.Modified; candidate.UpdatedById = _userInfo.UserId; candidate.Updated = DateTimeOffset.UtcNow; candidate.Status = CandidateStatus.Qualified; candidate.StatusTransitions.Add(new CandidateStatusTransition() { ObjectState = ObjectState.Added, Status = CandidateStatus.Qualified }); var records = Repository.Update(candidate, true); _logger.LogDebug(GetLogMessage("{0} results added"), records); if (records > 0) { var individualBonusResult = await _individualBonusIntents.Create(new CreateBonusIntentOptions() { CandidateId = candidateId }); var organizationBonusResult = await _organizationBonusIntents.Create(new CreateBonusIntentOptions() { CandidateId = candidateId }); if (individualBonusResult.Succeeded && organizationBonusResult.Succeeded) { retVal.Succeeded = true; await Task.Run(() => { RaiseEvent(new CandidateQualifiedEvent { CandidateId = candidateId }); }); } retVal.Succeeded = true; await Task.Run(() => { RaiseEvent(new CandidateQualifiedEvent { CandidateId = candidateId }); }); } } else { _logger.LogDebug(GetLogMessage("Candidate is already qualified")); } return(retVal); }