//news notification as per preferences public static async System.Threading.Tasks.Task CheckPrefAndSendNewsCard() { UPreferences UserPref = GetDataHelper.ReadPreferences(); int UPrefCount = UserPref.Preferences.Count(); Attachment card = null; for (int i = 0; i < UPrefCount; i++) { string userName = UserPref.Preferences[i].UserName; string NewsNotificationTime1 = UserPref.Preferences[i].News.NewsNotificationTime; DateTime NewsNotificationTime = DateTime.ParseExact(UserPref.Preferences[i].News.NewsNotificationTime, "H:mm tt", CultureInfo.InvariantCulture); //List<string[]> NewsCat = UserPref.preferences[i].News.Select(c => c.SelectedCategories).ToList(); DateTime currTime = DateTime.Now; if (NewsNotificationTime >= currTime.AddMinutes(-10) || NewsNotificationTime <= currTime.AddMinutes(10)) { card = Helper.CardHelper.GetNewsCard(userName); string uIn = UserPref.Preferences[i].UserInfo.Select(c => c.UniqueID).ToString(); string tenID = UserPref.Preferences[i].UserInfo.Select(c => c.UniqueID).ToString(); string serURL = UserPref.Preferences[i].UserInfo.Select(c => c.UniqueID).ToString(); await NotificationHelper.SendNotification(uIn, serURL, tenID, card); } } }
public static Preference UserPreference(string userName) { UPreferences uPrefs = GetDataHelper.ReadPreferences(); Preference uPref = uPrefs.Preferences.Where(c => c.UserName == userName).FirstOrDefault();; return(uPref); }
public static UPreferences ReadPreferences() { string file = System.Web.Hosting.HostingEnvironment.MapPath("~/TestData/") + @"/Preferences/Userpreferences.json"; UPreferences pref = new UPreferences(); string json = File.ReadAllText(file); pref = new JavaScriptSerializer().Deserialize <UPreferences>(json); return(pref); }
public static void WritePreferences(Preference newPref) { string file = System.Web.Hosting.HostingEnvironment.MapPath("~/TestData/") + @"/Preferences/Userpreferences.json"; string json = File.ReadAllText(file); int i; UPreferences uPref = new JavaScriptSerializer().Deserialize <UPreferences>(json); if (uPref == null) { uPref = new UPreferences(); // Add new record and return; uPref.Preferences = new[] { newPref }; } else { var oldPrefList = uPref.Preferences.ToList(); var oldPref = oldPrefList.FirstOrDefault(u => u.UserName == newPref.UserName); if (oldPref == null) { // TODO: update this logic var allPref = uPref.Preferences.ToList(); allPref.Add(newPref); uPref.Preferences = allPref.ToArray(); } else { //var oldPrefList = uPref.preferences.ToList(); //var oldPrefObj = oldPrefList.FirstOrDefault( ) oldPrefList.Remove(oldPref); oldPrefList.Add(newPref); //uPref.preferences = oldPrefList.ToArray(); // oldPref = newPref; uPref.Preferences = oldPrefList.ToArray(); } //var cat = uPref.preferences.Select(c => c.News).FirstOrDefault().Select(d => d.SelectedCategories).FirstOrDefault(); //List<Preference> list = uPref.preferences.ToList(); //for (i = 0; i < list.Count(); i++) //{ // if (list[i].UserName.Equals(pref.UserName)) // { // //rewrite // list[i] = pref; // break; // } //} //if (i == list.Count()) // list.Add(pref); //uPref.preferences = list.ToArray(); } var convertedJson = JsonConvert.SerializeObject(uPref, Formatting.Indented); File.WriteAllText(file, convertedJson); return; }