public OperationResult <Model.BusinessEntities.PetitionEmailVote> ConfirmEmailVoteRequest(string hash) { OperationResult <Model.BusinessEntities.PetitionEmailVote> result; try { using (var db = new EDEntities()) { var emailVote = db.PetitionEmailVotes.SingleOrDefault(p => p.Hash == hash); if (emailVote == default(PetitionEmailVote)) { result = OperationResult <Model.BusinessEntities.PetitionEmailVote> .Fail(-3, "Петиція не знайдена."); return(result); } if (emailVote.IsConfirmed) { result = OperationResult <Model.BusinessEntities.PetitionEmailVote> .Fail(-2, "Ви вже проголосували за цю петицію."); return(result); } emailVote.IsConfirmed = true; db.SaveChanges(); var emailVoteBusiness = new Model.BusinessEntities.PetitionEmailVote(emailVote); emailVoteBusiness.Petition = new Model.BusinessEntities.Petition(db.Petitions.SingleOrDefault(p => p.ID == emailVote.PetitionID)); result = OperationResult <Model.BusinessEntities.PetitionEmailVote> .Success(1, "Ви успішно проголосували за петицію.", emailVoteBusiness); } } catch (Exception ex) { result = OperationResult <Model.BusinessEntities.PetitionEmailVote> .Fail(-1, ex.Message); } return(result); }
public OperationResult <Model.BusinessEntities.PetitionEmailVote> CreateEmailVoteRequest(EmailVote vote) { OperationResult <Model.BusinessEntities.PetitionEmailVote> emailVoteRequestResult; Func <EDEntities, OperationResult <Model.BusinessEntities.PetitionEmailVote> > procedure = (db) => { OperationResult <Model.BusinessEntities.PetitionEmailVote> result; var emailVote = db.PetitionEmailVotes.SingleOrDefault(v => v.PetitionID == vote.ID && v.Email == vote.Email); if (emailVote != null) { var votedPetition = db.Petitions.SingleOrDefault(p => p.ID == vote.ID); result = emailVote.IsConfirmed ? OperationResult <Model.BusinessEntities.PetitionEmailVote> .Fail( int.Parse(PetitionVoteOperationResult.AlreadyVotedCode), PetitionVoteOperationResult.AlreadyVotedMessage) : OperationResult <Model.BusinessEntities.PetitionEmailVote> .Success( int.Parse(PetitionVoteOperationResult.WaitingConfirmationCode), string.Format(PetitionVoteOperationResult.WaitingConfirmationMessage, emailVote.Email), new Model.BusinessEntities.PetitionEmailVote(emailVote, votedPetition)); return(result); } emailVote = new PetitionEmailVote { PetitionID = vote.ID, Email = vote.Email, CreatedDate = DateTime.Now, IsConfirmed = false, Hash = HashGenerator.Generate() }; db.PetitionEmailVotes.Add(emailVote); db.SaveChanges(); var petition = new Model.BusinessEntities.Petition(db.Petitions.SingleOrDefault(p => p.ID == emailVote.PetitionID)); var clientEmailVote = new Model.BusinessEntities.PetitionEmailVote() { ID = emailVote.ID, Petition = petition, Hash = emailVote.Hash, Email = emailVote.Email, CreatedDate = emailVote.CreatedDate, IsConfirmed = emailVote.IsConfirmed }; result = OperationResult <Model.BusinessEntities.PetitionEmailVote> .Success( int.Parse(PetitionVoteOperationResult.EmailVoteRequestCreatedCode), string.Format(PetitionVoteOperationResult.EmailVoteRequestCreatedMessage, emailVote.Email), clientEmailVote); return(result); }; emailVoteRequestResult = DbExecuter.Execute(procedure); return(emailVoteRequestResult); }
public OperationResult<Model.BusinessEntities.PetitionEmailVote> ConfirmEmailVoteRequest(string hash) { OperationResult<Model.BusinessEntities.PetitionEmailVote> result; try { using (var db = new EDEntities()) { var emailVote = db.PetitionEmailVotes.SingleOrDefault(p => p.Hash == hash); if (emailVote == default(PetitionEmailVote)) { result = OperationResult<Model.BusinessEntities.PetitionEmailVote>.Fail(-3, "Петиція не знайдена."); return result; } if (emailVote.IsConfirmed) { result = OperationResult<Model.BusinessEntities.PetitionEmailVote>.Fail(-2, "Ви вже проголосували за цю петицію."); return result; } emailVote.IsConfirmed = true; db.SaveChanges(); var emailVoteBusiness = new Model.BusinessEntities.PetitionEmailVote(emailVote); emailVoteBusiness.Petition = new Model.BusinessEntities.Petition(db.Petitions.SingleOrDefault(p => p.ID == emailVote.PetitionID)); result = OperationResult<Model.BusinessEntities.PetitionEmailVote>.Success(1, "Ви успішно проголосували за петицію.", emailVoteBusiness); } } catch (Exception ex) { result = OperationResult<Model.BusinessEntities.PetitionEmailVote>.Fail(-1, ex.Message); } return result; }
public OperationResult<Model.BusinessEntities.PetitionEmailVote> CreateEmailVoteRequest(EmailVote vote) { OperationResult<Model.BusinessEntities.PetitionEmailVote> emailVoteRequestResult; Func<EDEntities, OperationResult<Model.BusinessEntities.PetitionEmailVote>> procedure = (db) => { OperationResult<Model.BusinessEntities.PetitionEmailVote> result; var emailVote = db.PetitionEmailVotes.SingleOrDefault(v => v.PetitionID == vote.ID && v.Email == vote.Email); if (emailVote != null) { var votedPetition = db.Petitions.SingleOrDefault(p => p.ID == vote.ID); result = emailVote.IsConfirmed ? OperationResult<Model.BusinessEntities.PetitionEmailVote>.Fail( int.Parse(PetitionVoteOperationResult.AlreadyVotedCode), PetitionVoteOperationResult.AlreadyVotedMessage) : OperationResult<Model.BusinessEntities.PetitionEmailVote>.Success( int.Parse(PetitionVoteOperationResult.WaitingConfirmationCode), string.Format(PetitionVoteOperationResult.WaitingConfirmationMessage, emailVote.Email), new Model.BusinessEntities.PetitionEmailVote(emailVote, votedPetition)); return result; } emailVote = new PetitionEmailVote { PetitionID = vote.ID, Email = vote.Email, CreatedDate = DateTime.Now, IsConfirmed = false, Hash = HashGenerator.Generate() }; db.PetitionEmailVotes.Add(emailVote); db.SaveChanges(); var petition = new Model.BusinessEntities.Petition(db.Petitions.SingleOrDefault(p => p.ID == emailVote.PetitionID)); var clientEmailVote = new Model.BusinessEntities.PetitionEmailVote() { ID = emailVote.ID, Petition = petition, Hash = emailVote.Hash, Email = emailVote.Email, CreatedDate = emailVote.CreatedDate, IsConfirmed = emailVote.IsConfirmed }; result = OperationResult<Model.BusinessEntities.PetitionEmailVote>.Success( int.Parse(PetitionVoteOperationResult.EmailVoteRequestCreatedCode), string.Format(PetitionVoteOperationResult.EmailVoteRequestCreatedMessage, emailVote.Email), clientEmailVote); return result; }; emailVoteRequestResult = DbExecuter.Execute(procedure); return emailVoteRequestResult; }