public BoardExamsCustom CallingPacient(BoardExamsCustom data) { MessageCustom _Message = new MessageCustom(); List <Dropdownlist> ListaCetegorias = new SystemParameterBL().GetParametroByGrupoId(116); var ListaExamenesPrevios = new SystemParameterBL().GetParametroByGrupoId(306).Find(p => p.Value2 == data.CategoryId); if (ListaExamenesPrevios != null) { var consultorioPrevio = int.Parse(ListaExamenesPrevios.Field); if (consultorioPrevio == -1) { var examenesNoCulminados = new ServiceBl().GetServiceComponentsCulminados(data.ServiceId); if (examenesNoCulminados == null) { _Message.Error = true; _Message.Status = 400; _Message.Message = "Sucedio un error generando las consultas, por favor refresque y vuelva a intentar."; data.Message = _Message; return(data); } var exam = examenesNoCulminados.FindAll(p => p.i_CategoryId != data.CategoryId); if (exam.Count != 0) { _Message.Error = true; _Message.Status = 200; _Message.Message = "Este paciente debe primero CULIMINAR TODOS los examenes anteriores."; data.Message = _Message; return(data); } } var listaExamenesProtocolo = new ServiceBl().GetServiceComponents(data.ServiceId).Find(p => p.i_CategoryId == consultorioPrevio); if (listaExamenesProtocolo == null) { _Message.Error = true; _Message.Status = 400; _Message.Message = "Sucedio un error generando las consultas, por favor refresque y vuelva a intentar."; data.Message = _Message; return(data); } if (listaExamenesProtocolo != null) { var examenesNoCulminados = new ServiceBl().GetServiceComponentsCulminados(data.ServiceId); if (examenesNoCulminados == null) { _Message.Error = true; _Message.Status = 400; _Message.Message = "Sucedio un error generando las consultas, por favor refresque y vuelva a intentar."; data.Message = _Message; return(data); } var result = examenesNoCulminados.Find(p => p.i_CategoryId == consultorioPrevio); if (result != null) { _Message.Error = true; _Message.Status = 200; int field = int.Parse(ListaExamenesPrevios.Field); _Message.Message = "Este paciente debe primero CULIMINAR el examen " + ListaCetegorias.Find(p => p.Id == field).Value; data.Message = _Message; return(data); } } } if (data.Piso != -1) { var ResultPiso = new ServiceBl().PermitirLlamar(data.ServiceId, data.Piso); if (!ResultPiso) { _Message.Error = true; _Message.Status = 200; _Message.Message = "El Paciente tiene consultorios por culminar, antes de ser llamado por este. Verifíquelo en unos minutos"; data.Message = _Message; return(data); } } if (data.ServiceStatusId == (int)ServiceStatus.EsperandoAptitud) { _Message.Error = true; _Message.Status = 200; _Message.Message = "Este paciente ya tiene el servicio en espera de Aptitud, no puede ser llamado."; data.Message = _Message; return(data); } var oServiceComponentList = new ServiceBl().GetServiceComponentByCategoryId(data.CategoryId, data.ServiceId); List <string> _ServiceComponentId = new List <string>(); foreach (var item in oServiceComponentList) { _ServiceComponentId.Add(item.v_ServiceComponentId); } bool resultOff = new ServiceDal().UpdateServiceComponentOfficeLlamando(_ServiceComponentId, data.Oficina); if (!resultOff) { _Message.Error = true; _Message.Status = 500; _Message.Message = "Sucedio un error actualizando la llamada, vuelva a intentar por favor."; data.Message = _Message; return(data); } _Message.Error = false; _Message.Status = 200; data.Message = _Message; return(data); }