public static MessageListDTO SaveStaffSubscriptions(StaffSubscriptions subs) { var dto = new MessageListDTO(); var strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); using (var conn = new SqlConnection(strConn)) { conn.Open(); using (var trn = conn.BeginTransaction()) { try { var cmd = new SqlCommand("", conn) { Transaction = trn, CommandType = System.Data.CommandType.StoredProcedure, CommandText = "DeleteStaffSubscriptions" }; var param = new SqlParameter("@staffId", subs.StaffId); cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); foreach (var evnt in subs.NotificationEvents) { if (evnt.IsSubscribed) { cmd = new SqlCommand("", conn); cmd.Transaction = trn; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "AddStaffNotification"; param = new SqlParameter("@staffId", subs.StaffId); cmd.Parameters.Add(param); param = new SqlParameter("@eventId", evnt.Id); cmd.Parameters.Add(param); param = new SqlParameter("@allSites", evnt.IsAllSites); cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); } } trn.Commit(); } catch (Exception ex) { trn.Rollback(); Nlogger.LogError(ex); dto.IsSuccessful = false; dto.Dictionary.Add("StaffSubscriptions", "There was an error in SaveStaffSubscriptions"); return(dto); } } } dto.Messages.Add("Staff subscriptions were successfully saved to the database!"); dto.IsSuccessful = true; return(dto); }
public ActionResult StaffSubscribe(StaffSubscriptions subs) { if (ModelState.IsValid) { var retVal = DbNotificationsUtils.SaveStaffSubscriptions(subs); if (retVal.IsSuccessful) { return(RedirectToAction("StaffSubscriptionsConfirmation")); } else { return(View(subs)); } } return(View(subs)); }
public ActionResult StaffSubscriptionsChange([Bind(Include = "StaffId," + "StaffName,NotificationEvents")] StaffSubscriptions subs) { if (ModelState.IsValid) { var retVal = DbNotificationsUtils.SaveStaffSubscriptions(subs); if (retVal.IsSuccessful) { return(RedirectToAction("StaffSubscriptionsConfirmation")); } else { return(View(subs)); } } return(View(subs)); }
public static StaffSubscriptions GetStaffSubscriptionsChange(string staffId) { var strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); var staffSubs = new StaffSubscriptions(); string firstName = ""; string lastName = ""; using (var conn = new SqlConnection(strConn)) { try { var cmd = new SqlCommand("", conn) { CommandType = CommandType.StoredProcedure, CommandText = "GetNotificationEventsActive" }; conn.Open(); var rdr = cmd.ExecuteReader(); while (rdr.Read()) { var eVent = new NotificationEvent(); var pos = rdr.GetOrdinal("Id"); eVent.Id = rdr.GetInt32(pos); pos = rdr.GetOrdinal("Name"); eVent.Name = rdr.GetString(pos); pos = rdr.GetOrdinal("Active"); eVent.Active = rdr.GetBoolean(pos); eVent.IsSubscribed = false; staffSubs.NotificationEvents.Add(eVent); } rdr.Close(); conn.Close(); cmd = new SqlCommand("", conn) { CommandType = CommandType.StoredProcedure, CommandText = "GetStaffInfo" }; var param = new SqlParameter("@id", staffId); cmd.Parameters.Add(param); conn.Open(); rdr = cmd.ExecuteReader(); if (rdr.Read()) { int pos = rdr.GetOrdinal("ID"); staffSubs.StaffId = rdr.GetInt32(pos); pos = rdr.GetOrdinal("FirstName"); if (!rdr.IsDBNull(pos)) { firstName = rdr.GetString(pos); } pos = rdr.GetOrdinal("LastName"); if (!rdr.IsDBNull(pos)) { lastName = rdr.GetString(pos); } staffSubs.StaffName = lastName + ", " + firstName; } rdr.Close(); conn.Close(); cmd = new SqlCommand("", conn) { CommandType = CommandType.StoredProcedure, CommandText = "GetStaffNotificationEvents" }; param = new SqlParameter("@staffId", staffId); cmd.Parameters.Add(param); conn.Open(); rdr = cmd.ExecuteReader(); while (rdr.Read()) { int pos = rdr.GetOrdinal("NotificationEventId"); int Id = rdr.GetInt32(pos); pos = rdr.GetOrdinal("AllSites"); bool isAllSites = rdr.GetBoolean(pos); var notEvnt = staffSubs.NotificationEvents.Find(x => x.Id == Id); notEvnt.IsSubscribed = true; notEvnt.IsAllSites = isAllSites; } rdr.Close(); return(staffSubs); } catch (Exception ex) { Nlogger.LogError(ex); return(null); } } }