示例#1
0
        public async Task <SaveYearEndProcessSetupResponse> SaveYearEndProcessSetup(SaveYearEndProcessSetupRequest request)
        {
            var      newOptions = new AdmYearEndProcessOptions();
            DateTime today      = _repository.GetSchoolNow(request.AdmUserId);

            if (request.DefaultTempStatusExpDate == null)
            {
                request.DefaultTempStatusExpDate = today.ToUsDateString();
            }

            var options =
                await _repository.GetListAsync <AdmYearEndProcessOptions>(o => o.OptionsForTheYear == request.OptionsForTheYear);

            if (options.Any())
            {
                newOptions = await _repository.FindAsync <AdmYearEndProcessOptions>(request.OptionsForTheYear);

                _autoMapper.Map(request, newOptions);
                InitNewOption(request, newOptions, today);
                newOptions = _repository.Update(newOptions);
            }
            else
            {
                _autoMapper.Map(request, newOptions);
                InitNewOption(request, newOptions, today);
                newOptions = _repository.Create <AdmYearEndProcessOptions>(newOptions);
            }

            await UpdateSchoolDates(request.DefaultStartDate, request.DefaultEndDate, request.DefaultTempStatusExpDate);

            var farOptions = (await _repository.GetListAsync <FarOption>()).FirstOrDefault();

            if (farOptions != null)
            {
                farOptions.StartingAppNumber = request.StartingAppNumber;
                farOptions = await _repository.UpdateAsync(farOptions);
            }

            return(_autoMapper.Map <SaveYearEndProcessSetupResponse>(request));
        }