示例#1
0
        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
                }
            }
        }
示例#2
0
        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)
            {
            }
        }