public async Task <IActionResult> Create(AddServiceVM addServiceVM) { Service service = new Service(); FacSer_List facSer_List = new FacSer_List(); if (ModelState.IsValid) { service = addServiceVM.Service; _context.Add(service); await _context.SaveChangesAsync(); foreach (var item in addServiceVM.FFacilities) { if (item.Flag) { facSer_List.Fac_ID = item.Fac_ID; facSer_List.Service_ID = addServiceVM.Service.Service_ID; _context.Add(facSer_List); } } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(service)); }
private void LoadServiceToOrderVM(Guid orderDetailsId) { _AddServiceVM = new AddServiceVM(orderDetailsId); _AddServiceVM.OrderDetailsLocal = _queries.GetOrderDetailsIncludeOrderServiceApplicationUserFirstOrDefaultOrderDetailsIdEqualsOrderDetailsId(orderDetailsId); _AddServiceVM.OrderDetailsList = _queries.GetLstOrderDetailsIncludeOrderServiceApplicationUserWhereOrderIdAndApplicationUserId(_AddServiceVM.OrderDetailsLocal.OrderId, _AddServiceVM.OrderDetailsLocal.Service.UserId); }
public async Task OnGetAsync(Guid orderDetailsId) { //se inicializa el modelo y se le asigna el atributo orderDetailsID _AddServiceVM = new AddServiceVM(orderDetailsId); //se buscan todas las detalles de orden que tengan el mismo id de la orden que el recibido en el parametro y sean del mismo usuario var orderDetailsLocal = _context.OrderDetails .Include(od => od.Order) .Include(od => od.Service) .ThenInclude(s => s.ApplicationUser) .FirstOrDefault(od => od.Id == orderDetailsId); _AddServiceVM.OrderDetailsList = _context.OrderDetails .Include(od => od.Order) .Include(od => od.Service) .ThenInclude(s => s.ApplicationUser) .Where(orderDtls => orderDtls.Order.Id == orderDetailsLocal.Order.Id && orderDtls.Service.ApplicationUser == orderDetailsLocal.Service.ApplicationUser) .ToList(); //si hay mas de 0 servicios en la cuenta se inicializa el atributo orderId con el id de la orden del primer //registro de la lista de orderDetails if (_AddServiceVM.OrderDetailsList.Count > 0) { _AddServiceVM.OrderId = _AddServiceVM.OrderDetailsList[0].Order.Id; } //_AddServiceVM.lstServicios = _context.ServiceModel // .Include(s => s.ApplicationUser) // .Where(s => s.ApplicationUser.Id == _AddServiceVM.OrderDetailsList[0].Service.ApplicationUser.Id).ToList(); // lista de ID de servicios del mismo usuario List <Guid> lstServiceDelmismoUsuario = _context.ServiceModel .Include(c => c.ApplicationUser) .Where(c => c.ApplicationUser == _AddServiceVM.OrderDetailsList[0].Service.ApplicationUser) .Select(c => c.ID) .ToList(); //lista de servicios con cotizacion List <Guid> lstServiciosConCotizacion = new List <Guid>(); //por cada orderDetails se agrega el id del servicio a la lista de servicios con cotizacion foreach (var item in _AddServiceVM.OrderDetailsList) { lstServiciosConCotizacion.Add(item.Service.ID); } //de la lista de servicios del mismo usuario se excluyen aquellos registros que ya tengan un OrderDetails lstServiceDelmismoUsuario = lstServiceDelmismoUsuario.FindAll(x => !lstServiciosConCotizacion.Contains(x)); //por cada servicio del mismo usuario que sobre despues de excluir los que ya tienen un orderDetails //se agrega un modelo de servicio a una lista del viewModel foreach (var item in lstServiceDelmismoUsuario) { var serviceModel = _context.ServiceModel .Include(s => s.ApplicationUser) .FirstOrDefault(s => s.ID == item); _AddServiceVM.lstServicios.Add(serviceModel); } }
// GET: Services/Create public IActionResult Create() { var fac = _context.Facility.ToList(); List <FFacility> ff = new List <FFacility>(); foreach (var item in fac) { FFacility ffitem = new FFacility { Fac_ID = item.Fac_ID, Fac_Name = item.Fac_Name, Flag = false }; ff.Add(ffitem); } object obj = new AddServiceVM { FFacilities = ff, }; return(View(obj)); }