/// <summary> /// Get email task collection filter by status. /// </summary> /// <param name="status">The filter status value.</param> /// <returns></returns> public IEnumerable <EmailTaskViewModel> GetEmailTaskList(string status) { var result = new List <EmailTaskViewModel>(); var emailtask = _unitOfWork.GetRepository <EmailTask>().Get(x => x.Status == status); var emailTaskIds = emailtask.Select(x => x.Id).ToArray(); var emailtaskcontent = _unitOfWork.GetRepository <EmailTaskContent>().Get(x => emailTaskIds.Contains(x.EmailTaskId)); var emailtaskReceiver = _unitOfWork.GetRepository <EmailTaskReceiver>().Get(x => emailTaskIds.Contains(x.EmailTaskId)); foreach (var task in emailtask) { var item = new EmailTaskViewModel { Id = task.Id, DocNo = task.DocNo, Subject = task.Subject, TaskBy = task.TaskBy, TaskCode = task.TaskCode, TaskDate = task.TaskDate }; item.Content = emailtaskcontent.FirstOrDefault(x => x.EmailTaskId == task.Id).Content ?? string.Empty; item.Receivers = MappingEmailReceiver(emailtaskReceiver.Where(x => x.EmailTaskId == task.Id)); result.Add(item); } return(result); }
/// <summary> /// Save email task. /// </summary> /// <param name="model">The email task information.</param> /// <returns>email task identity.</returns> private int SaveEmailTask(EmailTaskViewModel model) { var emailtask = this.InitialEmailTask(model); _unitOfWork.GetRepository <EmailTask>().Add(emailtask); _unitOfWork.Complete(); return(emailtask.Id); }
/// <summary> /// Save email task action. /// </summary> /// <param name="model">The email task information.</param> public void Save(EmailTaskViewModel model) { using (var scope = new TransactionScope()) { int emailTaskId = this.SaveEmailTask(model); this.SaveEmailTaskContent(emailTaskId, model.Content); this.SaveEmailTaskReceiver(emailTaskId, model.Receivers); _unitOfWork.Complete(scope); } }
/// <summary> /// Initial email task entity model. /// </summary> /// <param name="model">The email task view model.</param> /// <returns></returns> private EmailTask InitialEmailTask(EmailTaskViewModel model) { return(new EmailTask { DocNo = model.DocNo, TaskBy = _token.AdUser, TaskCode = model.TaskCode, TaskDate = DateTime.Now, Subject = model.Subject, Status = model.Status }); }