public void PostAnnouncement([FromBody] dynamic announcement) { ReviveCommunicationsDBEntities3 db = new ReviveCommunicationsDBEntities3(); db.Configuration.ProxyCreationEnabled = false; DbContextTransaction transaction = db.Database.BeginTransaction(); if (announcement != null) //if object not null { try { Announcement dynamicAnnouncement = new Announcement(); //create new announcement based on Object received ////dynamicAnnouncement.AnnouncementDate = DateTime.Today; dynamicAnnouncement.AnnouncementSenderID = announcement.PersonID; dynamicAnnouncement.AnnouncementDetail = announcement.AnnouncementDetail; dynamicAnnouncement.AnnouncementDate = DateTime.Today.ToString("yyyy-MM-dd"); db.Announcements.Add(dynamicAnnouncement); // add Announcement to database db.SaveChanges(); //save string d = announcement.AnnouncementDetail; //write new announcement detail to string Announcement created = db.Announcements.Where(x => x.AnnouncementDetail == d).FirstOrDefault(); //retrieve created announcement foreach (dynamic p in announcement.SelectedReceivers)// foreach person in receiver list { //create new Person_Announcement entry Person_Announcement dynamicPerson_Announcement = new Person_Announcement(); dynamicPerson_Announcement.PersonID = p.PersonID; dynamicPerson_Announcement.AnnouncementID = created.AnnouncementID; db.Person_Announcement.Add(dynamicPerson_Announcement);// Add to data base } int id = db.Announcements.OrderByDescending(x => x.AnnouncementID).Select(x => x.AnnouncementID).FirstOrDefault(); Audit_Trail auditLog = new Audit_Trail(); auditLog.PersonID = announcement.PersonID; auditLog.EventDescription = "Posted announcement with ID: " + id; auditLog.EventDateTime = DateTime.Now; db.Audit_Trail.Add(auditLog); db.SaveChanges();//save transaction.Commit(); } catch (Exception e) { transaction.Rollback(); dynamic toReturn = new ExpandoObject(); toReturn = e.Message + e.InnerException;// else error } } }
public void dismissAnnouncement([FromBody] Announcement announcement) { ReviveCommunicationsDBEntities3 db = new ReviveCommunicationsDBEntities3(); db.Configuration.ProxyCreationEnabled = false; Person_Announcement thisAnn = db.Person_Announcement.Where(x => x.AnnouncementID == announcement.AnnouncementID).FirstOrDefault(); try { thisAnn.AnnouncementStatus = true; db.SaveChanges(); } catch (Exception e) { } }