public IActionResult PostServiceToOrder([FromBody] PostServiceToOrderVM serviceToOrderVM) { //separar los id de los servicios en diferentes elementos dentro de una lista List <string> result = serviceToOrderVM.serviceId.Split(',').ToList(); //iterar la lista de ids de servicios foreach (var item in result) { //declarar un nuevo OrderDetails var od = new OrderDetails(); od.Order = new Order(); //declarar una orden local igual a la orden con el id que biene desde la peticion var orderLocal = _context.Order .FirstOrDefault(od => od.Id == serviceToOrderVM.OrderId); //se asigna al nuevo orderDetails la orden //orderLocal.LstOrderDetails.Add(od); od.Order = orderLocal; //se asigna el servicio con el id del servicio que se esta iterando actualmente od.Service = _context.ServiceModel.FirstOrDefault(s => s.ID.ToString() == item); //se le signa un costo en 0 od.Cost = 0; //se declara una cotizacion var quotationLocal = new Quotation(); //se le asigna el modelo de order details a esta nueva cotizacion quotationLocal.OrderDetailsModel = od; //se inicializa la lista de taras quotationLocal.Tasks = new List <TaskModel>(); //Se agrega la entidad al contexto _context.OrderDetails.Add(od); //_context.Order.Update(orderLocal); _context.Quotation.Add(quotationLocal); try { _context.SaveChanges(); } catch (Exception ex) { } } //var a = _pmovm; ////return LocalRedirect("/Identity/Account/Login?id=") return(Ok()); }
public IActionResult PostServiceToOrder([FromBody] PostServiceToOrderVM serviceToOrderVM) { List <string> serviceIdList = serviceToOrderVM.serviceId.Split(',').ToList(); foreach (var serviceId in serviceIdList) { var od = new OrderDetails(); od.Order = new Order(); var orderLocal = _queries.GetOrderByOrderId(serviceToOrderVM.OrderId); od.Order = orderLocal; Guid id = Guid.Parse(serviceId); od.Service = _queries.GetServiceFirstOrDefault(id); od.Cost = 0; var quotationLocal = new Quotation(); quotationLocal.OrderDetails = od; quotationLocal.Tasks = new List <TaskModel>(); od.Status = SD.EstadoSinCotizar; _orderDetailsRepository.Add(od); _quoationRepository.Add(quotationLocal); try { _queries.SaveChanges(); } catch (Exception ex) { } } return(Ok()); }