/// <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; } }