public IEnumerable <ValidationResult> CanAddGoal(GroupGoal newGoal, IGroupUpdateService groupUpdateService)
        {
            GroupGoal goal;

            if (newGoal.GroupGoalId == 0)
            {
                goal = GroupGoalRepository.Get(g => (g.GroupId == newGoal.GroupId) && (g.GoalName == newGoal.GoalName));
            }
            else
            {
                goal = GroupGoalRepository.Get(g => (g.GroupId == newGoal.GroupId) && (g.GoalName == newGoal.GoalName) && g.GroupGoalId != newGoal.GroupGoalId);
            }
            if (goal != null)
            {
                yield return(new ValidationResult("GoalName", Resources.GoalExists));
            }
            if (newGoal.StartDate.Subtract(newGoal.EndDate).TotalSeconds > 0)
            {
                yield return(new ValidationResult("EndDate", Resources.EndDate));
            }
            int flag   = 0;
            int status = 0;

            if (newGoal.GroupGoalId != 0)
            {
                var Updates = groupUpdateService.GetUpdatesByGoal(newGoal.GroupGoalId).OrderByDescending(g => g.UpdateDate).ToList();

                if (Updates.Count() > 0)
                {
                    if (Updates[0].UpdateDate.Subtract(newGoal.EndDate).TotalSeconds > 0)
                    {
                        flag = 1;
                    }
                    if (newGoal.StartDate.Subtract(Updates[0].UpdateDate).TotalSeconds > 0)
                    {
                        status = 1;
                    }
                    if (flag == 1)
                    {
                        yield return(new ValidationResult("EndDate", Resources.EndDateNotValid + " " + Updates[0].UpdateDate.ToString("dd-MMM-yyyy")));
                    }
                    else if (status == 1)
                    {
                        yield return(new ValidationResult("StartDate", Resources.StartDate + " " + Updates[0].UpdateDate.ToString("dd-MMM-yyyy")));
                    }
                }
            }
        }