public OperationResult Vote(ClientPetitionVote petitionVote, string certificateSerialNumber) { var vote = new PetitionVote() { PetitionID = petitionVote.PetitionID, Certificate = new Certificate() { SerialNumber = certificateSerialNumber }, SignedData = petitionVote.SignedData, SignedHash = petitionVote.Signature }; OperationResult result; using (var db = new EDEntities()) { var certificate = db.Certificates.SingleOrDefault(c => c.SerialNumber == vote.Certificate.SerialNumber); if (certificate == null) { result = OperationResult.Fail(-4, "Certificate is not registered."); return(result); } vote.CertificateID = certificate.ID; vote.PersonID = certificate.PersonID; vote.CreatedDate = DateTime.Now; vote.Petition = null; vote.Certificate = null; vote.Person = null; ////var votes = (from p in db.PetitionVotes //// where p.PetitionID == vote.PetitionID //// && (p.PersonID == vote.PersonID || p.CertificateID == vote.CertificateID || p.Certificate.SerialNumber == vote.Certificate.SerialNumber) //// select p); //var votes = db.PetitionVotes.Where(p => // p.PetitionID == vote.PetitionID && // (p.PersonID == vote.PersonID || p.CertificateID == vote.CertificateID || // p.Certificate.SerialNumber == vote.Certificate.SerialNumber)); //if (votes.Any()) //{ // result = OperationResult.Fail(-5, "You already voted for this petition."); // return result; //} db.PetitionVotes.Add(vote); db.SaveChanges(); result = OperationResult.Success(1, "Agreement vote has been registered."); } return(result); }
public OperationResult Vote(ClientPetitionVote petitionVote, string certificateSerialNumber) { var vote = new PetitionVote() { PetitionID = petitionVote.PetitionID, Certificate = new Certificate() { SerialNumber = certificateSerialNumber }, SignedData = petitionVote.SignedData, SignedHash = petitionVote.Signature }; OperationResult result; using (var db = new EDEntities()) { var certificate = db.Certificates.SingleOrDefault(c => c.SerialNumber == vote.Certificate.SerialNumber); if (certificate == null) { result = OperationResult.Fail(-4, "Certificate is not registered."); return result; } vote.CertificateID = certificate.ID; vote.PersonID = certificate.PersonID; vote.CreatedDate = DateTime.Now; vote.Petition = null; vote.Certificate = null; vote.Person = null; ////var votes = (from p in db.PetitionVotes //// where p.PetitionID == vote.PetitionID //// && (p.PersonID == vote.PersonID || p.CertificateID == vote.CertificateID || p.Certificate.SerialNumber == vote.Certificate.SerialNumber) //// select p); //var votes = db.PetitionVotes.Where(p => // p.PetitionID == vote.PetitionID && // (p.PersonID == vote.PersonID || p.CertificateID == vote.CertificateID || // p.Certificate.SerialNumber == vote.Certificate.SerialNumber)); //if (votes.Any()) //{ // result = OperationResult.Fail(-5, "You already voted for this petition."); // return result; //} db.PetitionVotes.Add(vote); db.SaveChanges(); result = OperationResult.Success(1, "Agreement vote has been registered."); } return result; }