예제 #1
0
        protected async Task HandleSubmit()
        {
            if (RegionVMEditContext.Validate())
            {
                var districtData = await BudgetFrameService
                                   .GetAsync(x => x.RegionId == AdminRegionVM.RegionId &&
                                             x.Year == AdminRegionVM.Year);

                if (districtData != null)
                {
                    foreach (var item in AdminRegionVM.Services)
                    {
                        var budgetFrame = districtData.Where(x => x.ServiceTypeId == item.ServiceTypeId).FirstOrDefault();
                        budgetFrame.Head  = item.Head ?? 0;
                        budgetFrame.Value = item.Value ?? 0;
                        BudgetFrameService.Update(budgetFrame);
                        await BudgetFrameService
                        .SaveChangesAsync(AppUser.Instance.FullName);
                    }
                }
            }

            await InitializedAsync();

            ToggleView();

            await InvokeAsync(StateHasChanged);
        }
예제 #2
0
        protected async Task ProviderEventHandler(ChangeEventArgs args)
        {
            var existedBindings = (await ServiceDataService.GetAsync(x => 
            x.ContractNumber.Equals((string)args.Value)))
                .Select(x => x.RegionId)
                .Distinct()
                .ToList();
            var validFrames = await BudgetFrameService.GetAsync(x => 
            !existedBindings.Contains(x.RegionId) && x.Value > 0, 
            null, "Region,Service");

            AdminBindingVM.Regions = validFrames
                .Select(x => new
                {
                    x.RegionId,
                    x.Region.Name
                })
                .Distinct()
                .Select(x =>
                new DropDownData
                {
                    ValueInt = x.RegionId,
                    Text = x.Name
                })
                .ToList();

            BindingEditContext = new EditContext(AdminBindingVM);
            await InvokeAsync(StateHasChanged);
        }
예제 #3
0
        private async Task CalculateMaxValues(int regionId)
        {
            var budgetFrames = (await BudgetFrameService.GetAsync(x =>
                x.Year == AdminBindingVM.Year &&
                x.RegionId == regionId &&
                x.Head > 0,
                null,
                "Service"))
                .Select(x => new ServiceBase
                {
                    ServiceTypeId = x.ServiceTypeId,
                    ServiceTypeName = x.Service.ServiceType.Name,
                    ServicePrice = x.Service.Price,
                    ServiceDate = x.Service.ServiceTypeDate,
                    Head = x.Head,
                    Value = x.Value
                }).ToList();

            if (IsNew)
            {
                AdminBindingVM.Services = budgetFrames;
            }

            var services = await ServiceDataService.GetAsync(x =>
                x.RegionId == regionId &&
                x.Contract.Year == AdminBindingVM.Year
                );

            foreach (var item in AdminBindingVM.Services)
            {
                var serviceTypeData = services.Where(x => x.ServiceTypeId == item.ServiceTypeId).ToList();
                var budgetFramesServite = budgetFrames.Where(x => x.ServiceTypeId == item.ServiceTypeId).FirstOrDefault();

                item.MaxHead = (int)budgetFramesServite.Head - serviceTypeData.Sum(x => x.Head);
                item.MaxValue = (int)budgetFramesServite.Value - serviceTypeData.Sum(x => x.Value);

                if (IsNew)
                {
                    item.Head = 0;
                    item.Value = 0;
                }
            }
        }