Beispiel #1
0
        public List <string> GetUsersToNotify(int ticketId, IList <EmailTemplateSendToBrief> sendTo)
        {
            var ticket = _ticketRepository.GetTicketById(ticketId);
            var result = new List <string>();

            foreach (var sendToBrief in sendTo)
            {
                var sendToId = (EmailSendToId)sendToBrief.EmailSendToId;

                switch (sendToId)
                {
                case EmailSendToId.Customer:

                    var customerContacts = _customerRepository.GetCustomerContactsByCustomerId(ticket.Customer.Id);
                    result.AddRange(customerContacts.Select(c => c.EMail).ToList());

                    break;

                case EmailSendToId.Staff:

                    var userDepartments = _userDepartmentRepository.GetListByDepartmentId(ticket.DepartmentId.Value);
                    result.AddRange(userDepartments.Where(ud => ud.DepartmentRole?.Id == DepartmentRoleId.Staff).Select(ud => ud.User.Email).ToList());

                    break;

                case EmailSendToId.DepartmentManager:

                    userDepartments = _userDepartmentRepository.GetListByDepartmentId(ticket.DepartmentId.Value);
                    result.AddRange(userDepartments.Where(ud => ud.DepartmentRole?.Id == DepartmentRoleId.DepartmentManager).Select(ud => ud.User.Email).ToList());

                    break;

                case EmailSendToId.Adminstrator:

                    var users = _userRepository.GetUsersByRole(TicRoles.Admin).Select(u => u.Email).ToList();
                    result.AddRange(users);

                    break;
                }
            }

            result = result.Distinct().ToList();

            return(result);
        }
 public JsonResult ListForDepartment(int id)
 {
     return(Json(_userDepartmentRepository.GetListByDepartmentId(id), JsonRequestBehavior.AllowGet));
 }