Tuple <int, int> GetViewModelYearRange(FunctionalCapacityViewModel viewModel)
        {
            var allPeriods = GetAllPeriods(viewModel);

            var yearsRangeTuple = GetYearRange(allPeriods);

            return(yearsRangeTuple);
        }
        int ValidateCurrentYear(FunctionalCapacityViewModel viewModel, int currentYear)
        {
            var range         = GetViewModelYearRange(viewModel);
            var validatedYear = currentYear;

            if (currentYear < range.Item1 || currentYear > range.Item2)
            {
                validatedYear = DateTime.Now.Year;
            }

            return(validatedYear);
        }
        void SortViewModelPeriodsInResourceOnYears(FunctionalCapacityViewModel viewModel)
        {
            var allPeriods      = GetAllPeriods(viewModel);
            var yearsRangeTuple = GetYearRange(allPeriods);

            foreach (var pair in viewModel.GroupedResources)
            {
                foreach (var resource in pair.Value)
                {
                    var dict = CreateDictWithDefaultList(yearsRangeTuple);

                    AddPeriodWithBothCapacityInDict(dict, resource.PeiodWithBothCapacityList);

                    resource.YearItemsDict = dict;
                }
            }
        }
        List <Period> GetAllPeriods(FunctionalCapacityViewModel viewModel)
        {
            var allPeriods = new List <Period>();

            foreach (var pair in viewModel.GroupedResources)
            {
                foreach (var resource in pair.Value)
                {
                    foreach (var resourceItem in resource.PeiodWithBothCapacityList)
                    {
                        allPeriods.Add(resourceItem.Period);
                    }
                }
            }

            return(allPeriods);
        }
        FunctionalCapacityViewModel GetViewModel(
            Dictionary <Resource, List <FCPeriodWithBothCapacity> > resourceWithBothPeriodCapacityDict)
        {
            var resourceWithTableDataListPreform = new List <FCResourceWithTableData>();
            var viewModel = new FunctionalCapacityViewModel();

            foreach (var resourceWithPeriodBothCapacityList in resourceWithBothPeriodCapacityDict)
            {
                resourceWithTableDataListPreform.Add(new FCResourceWithTableData()
                {
                    Resource = resourceWithPeriodBothCapacityList.Key,
                    PeiodWithBothCapacityList = resourceWithPeriodBothCapacityList.Value
                });
            }

            var groupedResources = GetSortedOnGroupsResources(resourceWithTableDataListPreform);

            viewModel.GroupedResources = groupedResources;

            return(viewModel);
        }