public bool CheckReminder(int expirationItemId, int addReminder)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         ExpirationItem i = db.ExpirationItems.FirstOrDefault(j => j.Id == expirationItemId);
         if (i.ExpirationDate.AddDays(-addReminder) < DateTime.Today)
         {
             return(false);
         }
         return(true);
     }
 }
 public int AddItem(int userid, string name, int category, int reminder, DateTime?issuedate, DateTime expiredate, string notes)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         ExpirationItem i = new ExpirationItem();
         i.Name           = name;
         i.Notes          = notes;
         i.ExpirationDate = expiredate;
         i.CategoryId     = category;
         i.UserId         = userid;
         i.IssueDate      = issuedate;
         db.ExpirationItems.InsertOnSubmit(i);
         db.SubmitChanges();
         AddReminder(userid, i.Id, reminder, expiredate);
         AddAction(userid, "Add Expiration Item " + i.Name + " " + i.Category.Name, DateTime.Now);
         return(i.Id);
     }
 }
 public int GetEMTCredits(int userid)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         int total = 0;
         IEnumerable <Course> courses = db.Courses.Where(i => i.UserId == userid);
         ExpirationItem       item    = db.ExpirationItems.Where(i => i.CategoryId == 2 && i.UserId == userid).OrderByDescending(j => j.ExpirationDate).FirstOrDefault();
         if (item != null)
         {
             foreach (Course c in courses)
             {
                 if (c.Date > item.IssueDate && c.Date < item.ExpirationDate)
                 {
                     total += c.Credits;
                 }
             }
         }
         return(total);
     }
 }
 public int GetStatus(int companyid, int userid)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         var items           = db.OrgRequiredItems.Where(i => i.OrgId == companyid);
         var expirationItems = db.ExpirationItems.Where(o => o.UserId == userid);
         int number          = expirationItems.Count();
         if (number <= 2)
         {
             return(1);
         }
         List <ExpirationItem> eitems = new List <ExpirationItem>();
         foreach (OrgRequiredItem o in items)
         {
             ExpirationItem e = expirationItems.FirstOrDefault(i => i.CategoryId == o.CatId);
             if (e != null)
             {
                 eitems.Add(e);
             }
         }
         if (eitems.Count < 3)
         {
             return(1);
         }
         if (eitems.Count >= 3)
         {
             foreach (ExpirationItem e in eitems)
             {
                 if (e.ExpirationDate < DateTime.Now)
                 {
                     return(4);
                 }
                 if (e.ExpirationDate <= DateTime.Now.AddDays(30) && e.ExpirationDate > DateTime.Now)
                 {
                     return(3);
                 }
             }
         }
         return(2);
     }
 }
 public int UpdateItem(int userid, string EIname, int EIcategory, DateTime?EIissuedate, DateTime EIexpiredate, string EInotes, int EIitemid)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         ExpirationItem n = db.ExpirationItems.FirstOrDefault(i => i.Id == EIitemid);
         n.Name = EIname;
         n.Id   = EIitemid;
         if (EInotes != null)
         {
             n.Notes = EInotes;
         }
         n.CategoryId = EIcategory;
         if (EIissuedate != null)
         {
             n.IssueDate = EIissuedate;
         }
         n.ExpirationDate = EIexpiredate;
         db.SubmitChanges();
         AddAction(n.UserId, "Update Expiration Item " + n.Name, DateTime.Now);
         return(n.Id);
     }
 }
        public IEnumerable <ExpirationItem> GetRequiredItems(int userid, int orgid)
        {
            using (DataLayerDataContext db = new DataLayerDataContext())
            {
                var items           = db.OrgRequiredItems.Where(i => i.OrgId == orgid);
                var expirationItems = db.ExpirationItems.Where(o => o.UserId == userid);
                var loadOptions     = new DataLoadOptions();
                loadOptions.LoadWith <ExpirationItem>(p => p.Category);
                db.LoadOptions = loadOptions;
                List <ExpirationItem> eitems = new List <ExpirationItem>();
                foreach (OrgRequiredItem o in items)
                {
                    ExpirationItem e = expirationItems.FirstOrDefault(i => i.CategoryId == o.CatId);
                    if (e != null)
                    {
                        eitems.Add(e);
                    }
                }

                return(eitems);
            }
        }
        public void DeleteEItem(int itemid)
        {
            using (DataLayerDataContext db = new DataLayerDataContext())
            {
                foreach (Reminder r in db.Reminders.Where(i => i.ExpirationItemId == itemid))
                {
                    db.Reminders.DeleteOnSubmit(r);
                }
                foreach (Image i in db.Images.Where(i => i.ExpirationItemId == itemid))
                {
                    db.Images.DeleteOnSubmit(i);
                }

                foreach (ItemShareWithCompany g in db.ItemShareWithCompanies.Where(j => j.ExpirationItemId == itemid))
                {
                    db.ItemShareWithCompanies.DeleteOnSubmit(g);
                }

                ExpirationItem e = db.ExpirationItems.FirstOrDefault(i => i.Id == itemid);
                db.ExpirationItems.DeleteOnSubmit(e);
                db.SubmitChanges();
                AddAction(e.UserId, "Delete Expiration Item " + e.Name, DateTime.Now);
            }
        }