private void CheckAndSend() { try { if (comp == null) { return; } DateTime now = DateTime.Now; DateTime check1 = comp.GetDateParam(Constants.PDB_COMP_DEADLINE_CHANGE); DateTime check2 = comp.GetDateParam(Constants.PDB_COMP_DEADLINE); string sNotif, sNotifCheck; if (now > check1) { sNotif = "Добрый день.\r\nСегодня в 24.00 по московскому времени заканчивается прием изменений. " + "Пожалуйста, во избежании недоразумений проверьте список заявленных участников (см. во вложении)\r\n" + "С Уважением, Администратор системы"; sNotifCheck = Constants.NOTIF_LAST_CHANGE; } else if (now > check2) { sNotif = "Добрый день.\r\nСегодня в 24.00 по Московскому времени заканчивается прием заявок. " + "Пожалуйста, во избежании недоразумений проверьте список заявленных участников (см. во вложении)\r\n" + "С Уважением, Администратор системы"; sNotifCheck = Constants.NOTIF_DEADLINE; } else { return; } var urList = comp.ONLuserRoles.Where(u => u.role_id == Constants.ROLE_USER).ToArray(); foreach (var r in urList) { try { var uToCheck = dc.ONLuserRoles.First(rt => rt.iid == r.iid); if (uToCheck.notifSent != null && uToCheck.notifSent.IndexOf(sNotifCheck) > -1) { continue; } if (uToCheck.notifSent == null) { uToCheck.notifSent = sNotifCheck; } else { uToCheck.notifSent += sNotifCheck; } dc.SaveChanges(); if (String.IsNullOrEmpty(uToCheck.ONLuser.email)) { continue; } if (uToCheck.ONLuser.team_id == null) { continue; } int teamID = uToCheck.ONLuser.team_id.Value; SendClimbersListForTeam(uToCheck.ONLuser.email, teamID, "Список участников", sNotif); } catch { } } } catch { } }