Example #1
0
        /// <summary>
        /// Returns all the invitation logs
        /// </summary>
        public InvitationLogData GetInvitationLogs(int surveyId, int pageNumber, int pageSize, out int totalRecords)
        {
            InvitationLogData dataSet = new InvitationLogData();

            //SqlParameter[] commandParameters = new SqlParameter[]
            //{ new SqlParameter("@SurveyID", surveyId),
            //    new SqlParameter("@CurrentPage", pageNumber),
            //    new SqlParameter("@PageSize", pageSize),
            //    new SqlParameter("@TotalRecords", SqlDbType.Int) };
            //commandParameters[3].Direction = ParameterDirection.Output;

            ArrayList commandParameters = new ArrayList();

            {
                commandParameters.Add(new SqlParameter("@SurveyId", surveyId).SqlValue);
                commandParameters.Add(new SqlParameter("@CurrentPage", pageNumber).SqlValue);
                commandParameters.Add(new SqlParameter("@PageSize", pageSize).SqlValue);
                commandParameters.Add(new SqlParameter("@TotalRecords", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                }.SqlValue);
            }


            DbConnection.db.LoadDataSet("vts_spInvitationLogGetAll", dataSet, new string[] { "InvitationLogs" }, commandParameters.ToArray());

            //totalRecords = int.Parse(commandParameters[3].ToString());

            totalRecords = dataSet.InvitationLogs.Rows.Count;

            return(dataSet);
        }
Example #2
0
        /// <summary>
        /// logs the exception that occured for the invitation in the db
        /// </summary>
        public void LogInvitationError(InvitationLogData invitationLog)
        {
            SqlConnection connection    = new SqlConnection(DbConnection.NewDbConnectionString);
            SqlCommand    insertCommand = new SqlCommand("vts_spInvitationLogAddNew", connection);

            insertCommand.CommandType = CommandType.StoredProcedure;

            insertCommand.Parameters.Add(new SqlParameter("@SurveyID", SqlDbType.Int, 4, "SurveyID"));
            insertCommand.Parameters.Add(new SqlParameter("@Email", SqlDbType.NVarChar, 0x9b, "Email"));
            insertCommand.Parameters.Add(new SqlParameter("@ExceptionMessage", SqlDbType.NVarChar, 0x400, "ExceptionMessage"));
            insertCommand.Parameters.Add(new SqlParameter("@ExceptionType", SqlDbType.NVarChar, 0xff, "ExceptionType"));
            insertCommand.Parameters.Add(new SqlParameter("@ErrorDate", SqlDbType.DateTime, 8, "ErrorDate"));
            insertCommand.Parameters.Add(new SqlParameter("@InvitationLogId", SqlDbType.Int, 4, "InvitationLogId"));
            insertCommand.Parameters["@InvitationLogId"].Direction = ParameterDirection.Output;
            insertCommand.Parameters.Add(new SqlParameter("@EmailId", SqlDbType.Int, 4, "EmailId"));
            insertCommand.Parameters["@EmailId"].Direction = ParameterDirection.Output;

            DbConnection.db.UpdateDataSet(invitationLog, "InvitationLogs", insertCommand, new SqlCommand(), new SqlCommand(), UpdateBehavior.Transactional);
        }
 /// <summary>
 /// logs the exception that occured for the invitation in the db
 /// </summary>
 public void LogInvitationError(InvitationLogData invitationLog)
 {
     VoterFactory.Create().LogInvitationError(invitationLog);
 }
Example #4
0
        /// <summary>
        /// description: ......
        /// </summary>
        /// <param name="sessionId">description .....</param>
        /// <param name="surveyId">description ....</param>
        /// <param name="anonymousEntries">description ..</param>
        /// <param name="mailingEmails">description .......</param>
        /// <param name="message">description ......</param>
        public void MailIt(string sessionId, int surveyId, bool anonymousEntries, string mailingEmails, EmailingMessage message)
        {
            IEmailing mailService   = EmailingFactory.Create();
            string    guid          = null,
                      taggedMessage = message.Body,
                      email;

            string[] mailingList = mailingEmails.Split(',');

            SyncDataStore.SetRecords(sessionId + ":" + "Progress", 0);
            SyncDataStore.SetRecords(sessionId + ":" + "FailedEmails", 0);

            int failedEmails = 0;

            // Send the invitation email to the list
            for (int i = 0; i < mailingList.Length; i++)
            {
                email = mailingList[i].Trim();
                guid  = null;
                try
                {
                    guid            = new Voter().GenerateVoterInvitationUId(surveyId, email, anonymousEntries);
                    message.Body    = message.Body.Replace("[--invitationid-]", guid);
                    message.ToEmail = email;
                    mailService.SendEmail(message);
                    message.Body = taggedMessage;
                }
                catch (Exception ex)
                {
                    try
                    {
                        if (guid != null)
                        {
                            // rollback db state if an email has been saved
                            new Voter().DeleteVoterInvitation(surveyId, email);
                        }

                        InvitationLogData invitationLogs = new InvitationLogData();
                        InvitationLogData.InvitationLogsRow invitationLog = invitationLogs.InvitationLogs.NewInvitationLogsRow();
                        invitationLog.ExceptionMessage = (ex.InnerException != null && ex.InnerException.InnerException != null) ?
                                                         ex.InnerException.InnerException.Message : ex.Message.ToString();
                        invitationLog.ExceptionType = (ex.InnerException != null && ex.InnerException.InnerException != null) ?
                                                      ex.InnerException.InnerException.GetType().ToString() : ex.GetType().ToString();
                        invitationLog.SurveyId  = surveyId;
                        invitationLog.Email     = email;
                        invitationLog.ErrorDate = DateTime.Now;
                        invitationLogs.InvitationLogs.AddInvitationLogsRow(invitationLog);

                        // Log error in the database
                        new Voter().LogInvitationError(invitationLogs);
                        failedEmails++;
                    }
                    catch (Exception e)
                    {
                        SyncDataStore.SetRecords(sessionId + ":" + "Error", e);
                    }
                }

                SyncDataStore.UpdateRecords(sessionId + ":" + "Progress", (i * 100) / mailingList.Length);
                SyncDataStore.UpdateRecords(sessionId + ":" + "FailedEmails", failedEmails);
            }
        }