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); }
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); }
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; } } }