public void AlwaysUsesCurrentDateFormatFromPreferences() { var dateFormat = DateFormat.FromLocalizedDateFormat("dd/mm"); var preferences = Substitute.For <IThreadSafePreferences>(); preferences.DateFormat.Returns(dateFormat); var dateFormatObserver = TestScheduler.CreateObserver <DateFormat>(); ViewModel.DateFormat.Subscribe(dateFormatObserver); CurrentPreferences.OnNext(preferences); TestScheduler.Start(); dateFormatObserver.SingleEmittedValue().Should().Be(dateFormat); }
public override void Validate(string propertyName = null) { base.Validate(propertyName); string currentProperty = nameof(CurrentPreferences); if (string.IsNullOrWhiteSpace(propertyName) || propertyName == currentProperty) { CurrentPreferences?.Validate(); if (CurrentPreferences.HasErrors) { AddError(currentProperty, "Invalid Preferences!"); } } }
public override void Validate(string propertyName = null) { base.Validate(propertyName); string currentProperty = nameof(CurrentPreferences); if (string.IsNullOrWhiteSpace(propertyName) || propertyName == currentProperty) { CurrentPreferences?.Validate(); if (CurrentPreferences.HasErrors) { AddError(currentProperty, "Invalid Preferences!"); if (CurrentPreferences.GetErrors(nameof(CurrentPreferences.DownloadSplitTime)) is List <string> downloadSplitTimeErrors && downloadSplitTimeErrors.Count > 0) { string firstError = downloadSplitTimeErrors.First(); AddError(nameof(DownloadSplitTimeHours), firstError); AddError(nameof(DownloadSplitTimeMinutes), firstError); AddError(nameof(DownloadSplitTimeSeconds), firstError); } } } }
public void ApplyPreferences() { Debug.Log("Applying preferences"); CurrentPreferences.Apply(false); }
void BindGrid() { MetaObject[] list = this.CurrentView.List(CurrentPreferences); DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("Title", typeof(string))); dt.Columns.Add(new DataColumn("Day1", typeof(float))); dt.Columns.Add(new DataColumn("Day2", typeof(float))); dt.Columns.Add(new DataColumn("Day3", typeof(float))); dt.Columns.Add(new DataColumn("Day4", typeof(float))); dt.Columns.Add(new DataColumn("Day5", typeof(float))); dt.Columns.Add(new DataColumn("Day6", typeof(float))); dt.Columns.Add(new DataColumn("Day7", typeof(float))); dt.Columns.Add(new DataColumn("DayT", typeof(float))); dt.Columns.Add(new DataColumn("StateFriendlyName", typeof(string))); foreach (MetaObject mo in list) { DataRow row = dt.NewRow(); string additionalTitle = string.Empty; if (cbShowWeekNumber.Checked && mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() != MetaViewGroupByType.Total.ToString()) { DateTime dtNew = DateTime.MinValue; try { dtNew = (DateTime)mo.Properties["Title"].Value; } catch { } if (dtNew != DateTime.MinValue) { additionalTitle = string.Format("(#{0})", Iso8601WeekNumber.GetWeekNumber((DateTime)mo.Properties["Title"].Value)); } } if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Primary.ToString()) { if (Convert.ToInt32(ddPrimary.SelectedValue, CultureInfo.InvariantCulture) != 0) { row["Title"] = String.Format("<b>{0} {1}</b>", mo.Properties["Title"].Value.ToString(), additionalTitle); } else { row["Title"] = String.Format("<b>{0} - {1} {2}</b>", ((DateTime)mo.Properties["Title"].Value).ToString("d MMM yyyy"), ((DateTime)mo.Properties["Title"].Value).AddDays(6).ToString("d MMM yyyy"), additionalTitle); } } else if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Secondary.ToString()) { if (Convert.ToInt32(ddSecondary.SelectedValue, CultureInfo.InvariantCulture) != 0) { row["Title"] = String.Format("<div style='padding-left: 25px;'>{0} {1}</div>", mo.Properties["Title"].Value.ToString(), additionalTitle); } else { row["Title"] = String.Format("<div style='padding-left: 25px;'>{0} - {1} {2}</div>", ((DateTime)mo.Properties["Title"].Value).ToString("d MMM yyyy"), ((DateTime)mo.Properties["Title"].Value).AddDays(6).ToString("d MMM yyyy"), additionalTitle); } } else if (mo.Properties["MetaViewGroupByType"] != null && mo.Properties["MetaViewGroupByType"].OriginalValue.ToString() == MetaViewGroupByType.Total.ToString()) { row["Title"] = String.Format("<div style='padding-left: 25px;'>{0} {1}</div>", mo.Properties["Title"].Value.ToString(), additionalTitle); } else { //TO DO: switch switch (this.ThirdGroupById) { case 0: { row["Title"] = String.Format("<div style='padding-left: 45px;'>{0}-{1} {2}</div>", ((DateTime)mo.Properties["StartDate"].Value).ToString("d MMM yyyy"), ((DateTime)mo.Properties["StartDate"].Value).AddDays(6).ToString("d MMM yyyy"), additionalTitle); break; } case 1: { row["Title"] = String.Format("<div style='padding-left: 45px;'>{0} {1}</div>", mo.Properties["Owner"].Value.ToString(), additionalTitle); break; } case 2: { string sTitle = (mo.Properties["Project"].Value != null) ? mo.Properties["Project"].Value.ToString() : mo.Properties["Title"].Value.ToString(); row["Title"] = String.Format("<div style='padding-left: 45px;'>{0} {1}</div>", sTitle, additionalTitle); break; } } } row["Day1"] = Convert.ToDouble(mo.Properties["Day1"].Value); row["Day2"] = Convert.ToDouble(mo.Properties["Day2"].Value); row["Day3"] = Convert.ToDouble(mo.Properties["Day3"].Value); row["Day4"] = Convert.ToDouble(mo.Properties["Day4"].Value); row["Day5"] = Convert.ToDouble(mo.Properties["Day5"].Value); row["Day6"] = Convert.ToDouble(mo.Properties["Day6"].Value); row["Day7"] = Convert.ToDouble(mo.Properties["Day7"].Value); row["DayT"] = Convert.ToDouble(mo.Properties["DayT"].Value); if (mo.Properties["StateFriendlyName"].Value != null) { row["StateFriendlyName"] = CHelper.GetResFileString(mo.Properties["StateFriendlyName"].Value.ToString()); } else { row["StateFriendlyName"] = ""; } dt.Rows.Add(row); } // Header Text for (int i = 0; i < MainGrid.Columns.Count; i++) { MetaField field = CurrentPreferences.GetVisibleMetaField()[i]; string fieldName = field.Name; // First day of week can be different, so we should specify it. if (fieldName == "Day1" || fieldName == "Day2" || fieldName == "Day3" || fieldName == "Day4" || fieldName == "Day5" || fieldName == "Day6" || fieldName == "Day7") { DateTime curDate = CHelper.GetRealWeekStartByDate(DateTime.UtcNow); if (fieldName == "Day2") { curDate = curDate.AddDays(1); } else if (fieldName == "Day3") { curDate = curDate.AddDays(2); } else if (fieldName == "Day4") { curDate = curDate.AddDays(3); } else if (fieldName == "Day5") { curDate = curDate.AddDays(4); } else if (fieldName == "Day6") { curDate = curDate.AddDays(5); } else if (fieldName == "Day7") { curDate = curDate.AddDays(6); } MainGrid.Columns[i].HeaderText = GetGlobalResourceObject("IbnFramework.TimeTracking", curDate.DayOfWeek.ToString()).ToString(); } else { MainGrid.Columns[i].HeaderText = CHelper.GetResFileString(field.FriendlyName); } } MainGrid.DataSource = dt; MainGrid.DataBind(); }