Beispiel #1
0
        private async Task <AdmSchoolGroup> UpdateAdmSchoolGroup(PutAdmSchoolGroupRequest request)
        {
            var group = await _repository.FindAsync <AdmSchoolGroup>(request.AdmSchoolGroupID);

            if (group == null)
            {
                return(await CreateAdmSchoolGroup(request));
            }

            group.Name        = request.Name.Trim();
            group.Description = request.Description?.Trim() ?? "";
            group.IsCEPGroup  = request.IsCEPGroup;

            //the logic is to rewrite the adm sites collection with incoming one
            //it is very tangled logic for this action in the old code which gives no additional profit, just useless...
            group.AdmSites.Clear();

            foreach (var groupSite in request.AdmSchoolGroupSites.Where(x => x.IsSelected))
            {
                var admSite = await _repository.FindAsync <AdmSite>(groupSite.AdmSiteID);

                if (admSite != null)
                {
                    group.AdmSites.Add(admSite);
                }
            }

            return(group);
        }
Beispiel #2
0
        private async Task Validate(PutAdmSchoolGroupRequest request)
        {
            if (string.IsNullOrWhiteSpace(request.Name))
            {
                Debug.WriteLine("PutAdmSchoolGroupRequest is invalid: empty Name field");
                throw new InvalidOperationException("Name should not be empty");
            }

            var isUniqueName = await IsUniqueGroupName(new GetIsUniqueGroupNameRequest
            {
                Id   = request.AdmSchoolGroupID,
                Name = request.Name
            });

            if (!isUniqueName)
            {
                Debug.WriteLine("PutAdmSchoolGroupRequest is invalid: Name already exists");
                throw new InvalidOperationException("Name should be unique");
            }
        }
Beispiel #3
0
        private async Task <AdmSchoolGroup> CreateAdmSchoolGroup(PutAdmSchoolGroupRequest request)
        {
            var admSchoolGroup = new AdmSchoolGroup
            {
                Name        = request.Name.Trim(),
                Description = request.Description?.Trim() ?? "",
                IsCEPGroup  = request.IsCEPGroup
            };

            foreach (var groupSite in request.AdmSchoolGroupSites.Where(x => x.IsSelected))
            {
                var admSite = await _repository.FindAsync <AdmSite>(groupSite.AdmSiteID);

                if (admSite != null)
                {
                    admSchoolGroup.AdmSites.Add(admSite);
                }
            }

            await _repository.CreateAsync(admSchoolGroup);

            return(admSchoolGroup);
        }
Beispiel #4
0
        public async Task <int> SaveAdmSchoolGroup(PutAdmSchoolGroupRequest request)
        {
            await Validate(request);

            AdmSchoolGroup admSchoolGroup;

            if (request.AdmSchoolGroupID == 0)
            {
                admSchoolGroup = await CreateAdmSchoolGroup(request);
            }
            else
            {
                admSchoolGroup = await UpdateAdmSchoolGroup(request);
            }

            _repository.SaveChanges();

            if (request.IsCEPGroup)
            {
                await PopulateAccCEPRates(admSchoolGroup.AdmSchoolGroupID);
            }

            return(admSchoolGroup.AdmSchoolGroupID);
        }
Beispiel #5
0
 public async Task <ActionResult <int> > PutAdmSchoolGroup(PutAdmSchoolGroupRequest request)
 {
     _logger.LogInformation($"{nameof(SchoolGroupsController)}.{nameof(PutAdmSchoolGroup)} params: ({JsonConvert.SerializeObject(request, Formatting.Indented)})");
     return(await _logic.SaveAdmSchoolGroup(request));
 }