private void CheckMilestoneAsync() { var localMessage = ""; var included = Milestones.Where(m => UserMilestones.Any(u => u.MilestoneID == m.ID)); var milestones = Milestones.Except(included).OrderByDescending(m => m.TargetValue); foreach (var milestone in milestones) { if ((StartWeight - CurrentWeightValue) >= milestone.TargetValue) { AchievedMilestone = milestone; CurrentTitle = string.Format(AchievedMilestone.MilestoneTitle, (StartWeight - CurrentWeightValue), App.Configuration.AppConfig.DefaultWeightVolume); localMessage = string.Format(milestone.AchievedMessage, (StartWeight - CurrentWeightValue), App.Configuration.AppConfig.DefaultWeightVolume); CurrentSubTitle = string.Format(AchievedMilestone.MilestoneSubTitle, (StartWeight - CurrentWeightValue), App.Configuration.AppConfig.DefaultWeightVolume); IsCurrentSubTitle = !string.IsNullOrEmpty(CurrentSubTitle); GoalAchieved = true; break; } } if (!string.IsNullOrEmpty(localMessage)) { SetActivityResource(showMessage: true, message: localMessage, modalWindow: true); } }
private async Task CurrentWeightChanged() { if (await Validate()) { AchievedMilestone = null; var included = Milestones.Where(m => UserMilestones.Any(u => u.MilestoneID == m.ID)); var milestones = Milestones.Except(included).OrderByDescending(m => m.TargetPercentValue); ActionType = ActionType.Submit; if ((StartWeight - CurrentWeightValue) >= WeightLossGoal) { CurrentTitle = TextResources.GoalAchieved; SetActivityResource(true, false, true, false, string.Empty, TextResources.MessageGoalAchievedWishes, string.Empty); GoalAchieved = true; return; } else { foreach (var milestone in milestones) { if ((StartWeight - CurrentWeightValue) >= ((WeightLossGoal * milestone.TargetPercentValue) / 100)) { AchievedMilestone = milestone; CurrentTitle = milestone.MilestoneTitle; SetActivityResource(true, false, true, false, string.Empty, string.Format(milestone.AchievedMessage, (StartWeight - CurrentWeightValue), App.Configuration.AppConfig.DefaultWeightVolume), string.Empty); BadgeAchievedImage = DependencyService.Get <IMessage>() .GetResource(milestone.AchievementGiftImage); CurrentTitle = AchievedMilestone.MilestoneTitle; CurrentSubTitle = AchievedMilestone.MilestoneSubTitle; IsCurrentSubTitle = CurrentSubTitle != null && CurrentSubTitle.Trim().Length > 0; GoalAchieved = true; return; } } } if (!GoalAchieved) { ActionType = ActionType.Submit; await SaveTrackerAsync(); } } }