public static void CheckForAll(string email)
        {
            using (var db = new LanguageExchangeModel())
            {
                var user = db.UserAccounts.Where(u => u.UserEmail == email).FirstOrDefault();
                if (user == null)
                {
                    return;
                }
                var userId = user.UserIdNumber;
                var pref = db.UserPreferences.Where(i => i.UserId == userId).FirstOrDefault();
                if (pref == null)
                {
                    pref = new UserPreferences();
                    pref.UserPreferencesName = user.UserFirstName + " " + user.UserLastName;
                    pref.UserId = userId;
                    pref.UserDescription = "Something interesting about me!";
                    pref.LastLogin = DateTime.Now;
                    db.UserPreferences.Add(pref);
                }
                var calendar = db.AppointmentCalendars.Where(c => c.UserId == userId).FirstOrDefault();
                if (calendar == null)
                {
                    calendar = new AppointmentCalendar();
                    calendar.UserId = userId;
                    db.AppointmentCalendars.Add(calendar);
                }

                var inbox = db.EmailInboxes.Where(i => i.UserId == userId).FirstOrDefault();
                if (inbox == null)
                {
                    inbox = new EmailInbox();
                    inbox.UserId = userId;
                    db.EmailInboxes.Add(inbox);
                }

                var tracking = db.UserTrackingDetails.Where(t => t.UserId == userId).FirstOrDefault();
                if (tracking == null)
                {
                    tracking = new UserTrackingDetails();
                    tracking.UserId = userId;
                    db.UserTrackingDetails.Add(tracking);
                }
                db.SaveChanges();
            }
            
        }
        public static IEnumerable<Messages> ShowInboxMessages (string email)
        {
            var db = new LanguageExchangeModel();
            var user = db.UserAccounts.Where(u => u.UserEmail == email).FirstOrDefault();
            var userId = user.UserIdNumber;
            var inbox = db.EmailInboxes.Where(i => i.UserId == userId).FirstOrDefault();
            if (inbox == null)
            {
                inbox = new EmailInbox();
                inbox.UserId = userId;
                
            }
            var messages = inbox.Messages.Where(m => m.InboxId2 == userId);
            if (messages == null)
            {
                var message = new Messages();
                message.InboxId1 = 1;
                message.InboxId2 = userId;
                message.MessageHeader = "Welcome to Xchange!";
                message.MessageContent = "Welcome to Xchange! We're glad you're here. Fill out your profile details and search for other language learners to get started.";
                message.MessageTimeStamp = DateTime.Now;
                message.MessageTo = user.UserFirstName;
                message.MessageFrom = "Xchange Team";

                inbox.Messages.Add(message);
                
                db.Messages.Add(message);

                db.SaveChanges();
            }
            var sortedMessages = messages.OrderByDescending(x => x.MessageTimeStamp);

            return sortedMessages;
        }
        public static void CreateMessage(int id, string email, Messages UpdatedMessage)
        {
            var db = new LanguageExchangeModel();

            var userFrom = db.UserAccounts.Where(u => u.UserEmail == email).FirstOrDefault();
            var userFromId = userFrom.UserIdNumber;
            var userTo = db.UserAccounts.Where(u => u.UserIdNumber == id).FirstOrDefault();
            var userToId = userTo.UserIdNumber;
            var user2email = userTo.UserEmail;
            var inboxFrom = db.EmailInboxes.Where(i => i.UserId == userFromId).FirstOrDefault();
            if (inboxFrom == null)
            {
                inboxFrom = new EmailInbox();
                inboxFrom.UserId = userFromId;
                db.EmailInboxes.Add(inboxFrom);
                db.SaveChanges();
            }
            var inboxTo = db.EmailInboxes.Where(i => i.UserId == userToId).FirstOrDefault();
            if (inboxTo == null)
            {
                inboxTo = new EmailInbox();
                inboxTo.UserId = userToId;
                db.EmailInboxes.Add(inboxTo);
                db.SaveChanges();
            }
            var message = new Messages();
            message.InboxId1 = userFromId;
            message.InboxId2 = userToId;
            var userFromPrefs = db.UserPreferences.Where(p => p.UserId == userFromId).FirstOrDefault();
            if (userFromPrefs == null)
            {
                message.MessageFrom = userFrom.UserFirstName;
            }
            message.MessageFrom = userFromPrefs.UserPreferencesName;
            var userToPrefs = db.UserPreferences.Where(p => p.UserId == userToId).FirstOrDefault();
            if (userToPrefs == null)
            {
                message.MessageTo = userTo.UserFirstName;
            }
            message.MessageTo = userToPrefs.UserPreferencesName;
            message.MessageHeader = UpdatedMessage.MessageHeader;
            message.MessageContent = UpdatedMessage.MessageContent;
            message.MessageTimeStamp = DateTime.Now;
         
            inboxFrom.Messages.Add(message);
            inboxTo.Messages.Add(message);
            db.Messages.Add(message);

            SystemEmail("You have a new message on Xchange (http://languagexchange.azurewebsites.net/). Login to view.", user2email);

            db.SaveChanges();

            
        }
 public static EmailInbox ShowEmailInbox(string email)
 {
     var db = new LanguageExchangeModel();
     var user = db.UserAccounts.Where(u => u.UserEmail == email).FirstOrDefault();
     var userId = user.UserIdNumber;
     var inbox = db.EmailInboxes.Where(i => i.UserId == userId).FirstOrDefault();
     if (inbox == null)
     {
         inbox = new EmailInbox();
         inbox.UserId = userId;
         db.EmailInboxes.Add(inbox);
         db.SaveChanges();
     }
     return inbox;
 }