Я хочу уведомить пользователя, когда ему / ей был назначен билет по почте. Администратор в основном видит открытые заявки и раскрывающийся список, содержащий пользователей. После назначения билета пользователь должен получить уведомление на свой почтовый ящик.
Я пробовал следующее, но продолжаю сталкиваться с ошибкой:
Значение не может быть нулевым. Имя параметра: адреса
в параметре Mail.To
.
Код, отвечающий за назначение, следующий:
public async Task<ActionResult> AssignRoles(AssignRolesModel ObjAssign, Registration registration)
{
try
{
if (ObjAssign.ListofUser == null)
{
TempData["MessageErrorRoles"] = "No Tickets to assign";
ObjAssign.ListofAdmins = _IAssignRoles.ListofAdmins();
ObjAssign.ListofUser = _IAssignRoles.ListofUser();
return View(ObjAssign);
}
var SelectedCount = (from User in ObjAssign.ListofUser
where User.SelectedUsers == true
select User).Count();
if (SelectedCount == 0)
{
TempData["MessageErrorRoles"] = "You have not Selected any Ticket to Assign";
ObjAssign.ListofAdmins = _IAssignRoles.ListofAdmins();
ObjAssign.ListofUser = _IAssignRoles.GetListofUnAssignedUsers();
return View(ObjAssign);
}
if (ModelState.IsValid)
{
ObjAssign.CreatedBy = Convert.ToInt32(Session["SuperAdmin"]);
_IAssignRoles.SaveAssignedRoles(ObjAssign);
}
ObjAssign = new AssignRolesModel
{
ListofAdmins = _IAssignRoles.ListofAdmins(),
ListofUser = _IAssignRoles.GetListofUnAssignedUsers()
};
MailMessage mail = new MailMessage();
mail.To.Add(registration.EmailID);
mail.Subject = "Help Desk";
mail.IsBodyHtml = true;
using (var smtp = new SmtpClient())
{
await smtp.SendMailAsync(mail);
smtp.UseDefaultCredentials = false;
}
TempData["MessageRoles"] = "Ticket Assigned Successfully!";
return RedirectToAction("AssignRoles");
}
catch (Exception)
{
throw;
}
}
Я использую интерфейсы, так что ниже код для SaveAssignedRoles
:
public bool SaveAssignedRoles(AssignRolesModel AssignRolesModel)
{
bool result;
try
{
for (int i = 0; i < AssignRolesModel.ListofUser.Count(); i++)
{
if (AssignRolesModel.ListofUser[i].SelectedUsers)
{
AssignedRoles AssignedRoles = new AssignedRoles
{
AssignedRolesID = 0,
AssignToAdmin = AssignRolesModel.RegistrationID,
CreatedOn = DateTime.Now,
CreatedBy = AssignRolesModel.CreatedBy,
Status = "A",
RegistrationID = AssignRolesModel.ListofUser[i].RegistrationID,
// RegID = AssignRolesModel.ListofAdmins[i].RegistrationID
};
DB.AssignedRoles.Add(AssignedRoles);
DB.SaveChanges();
}
}
result = true;
}
catch (Exception)
{
throw;
}
return result;
}