Ejemplo n.º 1
0
        /// <summary>
        /// Updates the Email status
        /// </summary>
        /// <param name="email">Email row</param>
        /// <param name="status">New Status</param>
        public CS_Email UpdateStatusEmail(CS_Email email, Globals.EmailService.Status status)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                email.Status = (short)status;
                email.StatusDate = DateTime.Now;

                CS_Email emailReturn = _emailRepository.Update(email);

                Globals.CallCriteria.CallCriteriaEmailStatus callCriteriaStatus = Globals.CallCriteria.CallCriteriaEmailStatus.Sent;
                switch (status)
                {
                    case Globals.EmailService.Status.Pending:
                        callCriteriaStatus = Globals.CallCriteria.CallCriteriaEmailStatus.Pending;
                        break;
                    case Globals.EmailService.Status.Sent:
                        callCriteriaStatus = Globals.CallCriteria.CallCriteriaEmailStatus.Sent;
                        break;
                    case Globals.EmailService.Status.Error:
                        callCriteriaStatus = Globals.CallCriteria.CallCriteriaEmailStatus.Error;
                        break;
                    case Globals.EmailService.Status.ConfirmationReceived:
                        callCriteriaStatus = Globals.CallCriteria.CallCriteriaEmailStatus.ConfirmationReceived;
                        break;
                    case Globals.EmailService.Status.ConfirmedAndRead:
                        callCriteriaStatus = Globals.CallCriteria.CallCriteriaEmailStatus.ReadConfirmationReceived;
                        break;
                    default:
                        callCriteriaStatus = Globals.CallCriteria.CallCriteriaEmailStatus.Sent;
                        break;
                }

                CallLogModel model = new CallLogModel(_unitOfWork);

                model.UpdateEmailStatusByEmailId(emailReturn.ID, callCriteriaStatus);

                scope.Complete();

                return emailReturn;
            }
        }