Exemple #1
0
        public static void CreateEvent(string calendarName, string id, string title, DateTime date, int status, long ownerId)
        {
            int calID = CalendarId(calendarName);

            if (SimilarEventExists(calID, title, date))
            {
                // MLW TODO remove these
                SMap.GetLogger().Trace("An event already exists for " + calendarName + "; Name:" + title + "; ID=" + id + "; " + date.ToString());
                return;
            }
            else
            {
                SMap.GetLogger().Trace("Adding a new event for " + calendarName + "; Name:" + title + "; ID=" + id + "; " + date.ToString());
            }

            CalendarEvent.NameFromEventId(id);

            DnDSignUpEntities entities = new DnDSignUpEntities();

            Event e = new Event();
            e.EventId = id;
            e.Title = title;
            e.AllDay = true;
            e.CalendarId = calID;
            e.StartTime = date;
            e.EndTime = date;
            e.Status = status;
            e.OwnerId = ownerId;

            entities.Events.Add(e);
            entities.SaveChanges();
        }
Exemple #2
0
        /// <summary>
        /// Get the single event corresponding to this calendar and event id.
        /// Throws InvalidOperationException if not exactly 1 such event exists.
        /// </summary>
        public static Event GetEvent(string calendarName, string eventID)
        {
            int calendarId = CalendarId(calendarName);
            DnDSignUpEntities entities = new DnDSignUpEntities();
            DbSet<Event> events = entities.Events;

            Event existingEvent = events.Single(anevent => anevent.EventId == eventID
                                              && anevent.CalendarId == calendarId);

            return existingEvent;
        }
Exemple #3
0
        public static void DeleteEvent(string calendarName, string id)
        {
            int currentCalendarId = CalendarId(calendarName);

            DnDSignUpEntities entities = new DnDSignUpEntities();

            Event e = entities.Events.Single(x => x.CalendarId == currentCalendarId && x.EventId == id);
            if (e != null)
            {
                entities.Events.Remove(e);
                entities.SaveChanges();
            }
        }
Exemple #4
0
        // MLW TODO begin and end times so not all are acquired...
        public static List<CalendarEvent> GetEventsInCalendar(string calendarName)
        {
            var eventList = new List<CalendarEvent>();

            int calendarId = CalendarId(calendarName);

            DnDSignUpEntities entities = new DnDSignUpEntities();

            DbSet<RegisteredUser> regUsers = entities.RegisteredUsers;
            DbSet<Event> dbEvents = entities.Events;
            DbSet<PlayerGroup> groups = entities.PlayerGroups;

            var calEvents =
                from dbEvent in dbEvents
                join user in regUsers
                    on dbEvent.OwnerId equals user.FacebookID
                where dbEvent.CalendarId == calendarId
                select new
                {
                    newEvent = dbEvent,
                    spouseId = user.SpouseOf,
                    isPlayer = user.Player
                };

            foreach (var calEvent in calEvents)
            {
                eventList.Add(new CalendarEvent(calEvent.newEvent, calEvent.spouseId/*, calEvent.isPlayer*/));
            }

            return eventList;
        }
Exemple #5
0
        /// <summary>
        /// A similar event is defined by one that has the same title, calendar, day.
        /// </summary>
        private static bool SimilarEventExists(int calendarID, string title, DateTime start)
        {
            DnDSignUpEntities entities = new DnDSignUpEntities();
            DbSet<Event> events = entities.Events;
            //MLW TODO make ownerID instead when first name is no longer sufficient.
            bool bExists = events.Any(anevent => anevent.Title == title
                                              && anevent.CalendarId == calendarID
                                              && anevent.StartTime == start);

            return bExists;
        }
Exemple #6
0
        internal static bool UserExists(long facebookId)
        {
            DnDSignUpEntities entities = new DnDSignUpEntities();

            RegisteredUser user = entities.RegisteredUsers.SingleOrDefault(u => u.FacebookID == facebookId);

            if (user != null)
                return true;
            else
                return false;
        }
Exemple #7
0
        internal static void UpdateUsersFacebookInfo(FacebookInfo info)
        {
            DnDSignUpEntities entities = new DnDSignUpEntities();
            FacebookInfo fi = entities.FacebookInfoes.SingleOrDefault(u => u.FacebookId == info.FacebookId);

            if (fi != null)
                entities.FacebookInfoes.Remove(fi);

            entities.FacebookInfoes.Add(info);

            entities.SaveChanges();
        }
Exemple #8
0
        /// <summary>
        /// Get all users for the calendarID (corresponds to player group) for which Player==true
        /// </summary>
        internal static List<User> Players(int calendarID)
        {
            List<User> players = new List<User>();

             DnDSignUpEntities entities = new DnDSignUpEntities();

             //IEnumerable<RegisteredUser> users = entities.RegisteredUsers.Where(u => u.Player == true);

             DbSet<RegisteredUser> regUsers = entities.RegisteredUsers;
             DbSet<PlayerGroup> groups = entities.PlayerGroups;

             var dbUsers =
                from dbUser in regUsers
                join aGroup in groups
                on dbUser.FacebookID equals aGroup.RegisteredUser
                where dbUser.Player == true
                && aGroup.GroupID == calendarID
                select new
                {
                    FacebookID = dbUser.FacebookID,
                    SpouseOf = dbUser.SpouseOf
                };

             foreach (var dbUser in dbUsers)
             {
                 User user = new User();
                 user.Spouse = new Spouse();
                 user.FBID = dbUser.FacebookID;
                 user.FbInfo = GetFacebookInfo(dbUser.FacebookID);
                 user.IsPlayer = true;
                 if (user.FbInfo != null)
                     user.Name = user.FbInfo.First;//MLW TODO check for null
                 user.Spouse.fbInfo = GetFacebookInfo(dbUser.SpouseOf);
                 user.Spouse.FBID = dbUser.SpouseOf == null ? User.FBID_Def : (long)dbUser.SpouseOf;

                 players.Add(user);
             }

             return players;
        }
Exemple #9
0
        internal static string HighestEventId(int calendarID)
        {
            string maxID = "";
            DnDSignUpEntities entities = new DnDSignUpEntities();

            if (entities.Events.Count(x => x.CalendarId == calendarID) > 0)
            {
                maxID = entities.Events.OrderByDescending(x => x.EventId).Where(x => x.CalendarId == calendarID).First().EventId;
                maxID = maxID.Substring(maxID.LastIndexOf("_") + 1);
            }
            else
                maxID = "1";

            return maxID;
        }
Exemple #10
0
        internal static User GetUser(long facebookID)
        {
            DnDSignUpEntities entities = new DnDSignUpEntities();

            RegisteredUser regUser = entities.RegisteredUsers.SingleOrDefault(x => x.FacebookID == facebookID);

            if (regUser == null) return null;

            User user = new User();
            user.Spouse = new Spouse();
            user.FBID = regUser.FacebookID;
            user.IsPlayer = regUser.Player;
            user.FbInfo = GetFacebookInfo(regUser.FacebookID);
            if (user.FbInfo != null)
                user.Name = user.FbInfo.First;  //MLW TODO check for null
            user.Spouse.fbInfo = GetFacebookInfo(regUser.SpouseOf);
            user.Spouse.FBID = regUser.SpouseOf == null ? User.FBID_Def : (long)regUser.SpouseOf;

            return user;
        }
Exemple #11
0
        internal static FacebookInfo GetFacebookInfo(long? facebookID)
        {
            if (facebookID == null)
                 return null;

             DnDSignUpEntities entities = new DnDSignUpEntities();

             FacebookInfo fbInfo = entities.FacebookInfoes.SingleOrDefault(x => x.FacebookId == facebookID);

             return fbInfo;
        }
Exemple #12
0
        //public static Player GetUser(long facebookId)
        //{
        //    DnDSignUpEntities entities = new DnDSignUpEntities();
        //    return (Player)entities.FacebookUsers.SingleOrDefault(u => u.FacebookId == facebookId);
        //}
        //public static Player Get(string facebookName)
        //{
        //    DnDSignUpEntities entities = new DnDSignUpEntities();
        //    return (Player)entities.FacebookUsers.SingleOrDefault(u => u.Name == facebookName);
        //}
        /// <summary>
        /// Get the first name of the user for the corresponding Facebook ID
        /// </summary>
        internal static string FirstNameFromId(long facebookId)
        {
            DnDSignUpEntities entities = new DnDSignUpEntities();

            FacebookInfo fi = entities.FacebookInfoes.SingleOrDefault(u => u.FacebookId == facebookId);
            if (fi == null)
                return "";
            return fi.First;
        }
Exemple #13
0
        internal static string CalendarName(int calendarID)
        {
            DnDSignUpEntities entities = new DnDSignUpEntities();

            string calendarName = entities.Calendars.Single(x => x.Id == calendarID).Name.Trim();

            return calendarName;
        }
Exemple #14
0
        internal static int CalendarId(string calendarName)
        {
            int id;
            DnDSignUpEntities entities = new DnDSignUpEntities();

            id = entities.Calendars.Single(x => x.Name == calendarName).Id;

            return id;
        }
Exemple #15
0
        public static void UpdateEvent(string calendarName, CalendarEvent oEvent)
        {
            int currentCalendarId = CalendarId(calendarName);

            DnDSignUpEntities entities = new DnDSignUpEntities();

            // MLW TODO first name change
            Event e = entities.Events.Single(x => x.CalendarId == currentCalendarId && x.EventId == oEvent.ID);
            if (e != null)
            {
                e.EventId = oEvent.ID;
                e.Title = oEvent.Title;
                e.AllDay = oEvent.IsAllDay;
                e.CalendarId = currentCalendarId;
                e.StartTime = oEvent.StartDateTime;
                e.EndTime = oEvent.EndDateTime;
                e.Status = oEvent.Status;
                e.OwnerId = oEvent.OwnerId;

                DbEntityEntry entry = entities.Entry(e);
                entry.State = EntityState.Modified;
                entities.SaveChanges();
            }
        }
Exemple #16
0
        public static IQueryable<SiteLog> GetLogAtLevels(string[] levels, int maxRows = 50, bool bDesc = false)
        {
            DnDSignUpEntities entities = new DnDSignUpEntities();

             //var predicate = PredicateBuilder.False<SiteLog>();

             //foreach (string lvl in levels)
             //{
             //    string temp = lvl;
             //    predicate = predicate.Or(b => b.Level.Equals(temp));
             //}

             //if (bDesc)
             //    return entities.SiteLogs.AsExpandable().Where(predicate).OrderByDescending(b => b.TimeStamp).Take(maxRows);
             //else
             //    return entities.SiteLogs.AsExpandable().Where(predicate).OrderBy(b => b.TimeStamp).Take(maxRows);
             if (bDesc)
                 return entities.SiteLogs.OrderByDescending(b => b.TimeStamp).Take(maxRows);
             else
                 return entities.SiteLogs.OrderBy(b => b.TimeStamp).Take(maxRows);
        }