async private Task Initialize(Repository repo, form summaryForm, int year)
        {
            var region = await repo.GetRegion(Authentication.Credentials.RegionId);
            _formula = await repo.GetFormulasBySummaryForm(summaryForm.form_id);
            this.IsAvailable = (_formula != null);
            if (this.IsAvailable)
            {
                _region = region;
                _summaryForm = summaryForm;
                _regularForm = _formula.regular_form;
                _year = year;

                var municipalityList = await repo.GetMunicipalities();
                var municipalitiesHaveFormData = await repo.GetMunicipalitiesHaveFormData(_regularForm.form_id, _year);
                var municipalitiesHaveFormDataIdList = municipalitiesHaveFormData
                    .Select(t => t.municipality_id)
                    .ToList();
                foreach (var munit in municipalityList)
                {
                    var hasForm = municipalitiesHaveFormDataIdList.Contains(munit.municipality_id);
                    munit.SetAttachedProperty("bHasForm", hasForm);
                }
                this.municipalityBindingSource.DataSource = municipalityList;
            }
        }
        async private Task InitializeAdmin(Repository repo, form summaryForm, int year)
        {
            _formula = await repo.GetFormulasBySummaryForm(summaryForm.form_id);
            this.IsAvailable = (_formula != null);
            if (this.IsAvailable)
            {
                _summaryForm = summaryForm;
                _regularForm = _formula.regular_form;
                _year = year;
                var eduList = await repo.GetEdusHaveFormData(_regularForm.form_id, _year);

                this.eduBindingSource.DataSource = eduList;
            }
        }
        async private Task InitializeMunicipality(Repository repo, form summaryForm, int year)
        {
            var munit = await repo.GetMunicipality(Authentication.Credentials.MunitId);
            _formula = await repo.GetFormulasBySummaryForm(summaryForm.form_id);
            this.IsAvailable = (_formula != null);
            if (this.IsAvailable)
            {
                _municipality = munit;
                _summaryForm = summaryForm;
                _regularForm = _formula.regular_form;
                _year = year;

                var eduList = await repo.GetEdus(munit.municipality_id);
                var eduHasFormIdList = (await repo.GetEdusHaveFormData(_regularForm.form_id, _year))
                    .Select(t => t.edu_id);
                foreach (var edu in eduList)
                {
                    var hasForm = eduHasFormIdList.Contains(edu.edu_id);
                    edu.SetAttachedProperty("bHasForm", hasForm);
                }
                this.eduBindingSource.DataSource = eduList;
            }
        }