public async Task <ActionResult <FormularioModel> > InterarFormulario(ActionResult <FormularioQuestionario> questionario, List <FormularioPergunta> perguntas, List <FormularioResposta> respostas)
        {
            FormularioModel formularioResult = new FormularioModel();

            formularioResult.Perguntas = new List <FormularioPergunta>();
            formularioResult.Respostas = new List <FormularioResposta>();

            formularioResult.Nome           = questionario.Value.Nome;
            formularioResult.IdQuestionario = questionario.Value.Id;

            foreach (var x in perguntas)
            {
                FormularioPergunta z = new FormularioPergunta();

                z.Id             = x.Id;
                z.IdQuestionario = x.IdQuestionario;
                z.Pergunta       = x.Pergunta;

                formularioResult.Perguntas.Add(z);
            }

            foreach (var x in respostas)
            {
                FormularioResposta z = new FormularioResposta();

                z.Id             = x.Id;
                z.IdQuestionario = x.IdQuestionario;
                z.Resposta       = x.Resposta;
                z.PesoResposta   = x.PesoResposta;

                formularioResult.Respostas.Add(z);
            }

            return(formularioResult);
        }
Пример #2
0
        public IActionResult ResultSet(string Cedula, string Nombre, string Apellido, int Edad,
                                       string Telefono, string Email, string EstadoCivil, string genero, bool WatchSeries,
                                       bool ListenMusic, bool ToDance, bool PlayVideos)
        {
            int n;

            int.TryParse(Edad.ToString(), out n);

            var data = new FormularioModel();


            data.Cedula   = Cedula;
            data.Nombre   = Nombre;
            data.Apellido = Apellido;

            data.Edad        = n;
            data.Telefono    = Telefono ?? "Ninguno";
            data.Email       = Email ?? "Ninguno";
            data.Genero      = genero;
            data.EstadoCivil = EstadoCivil;

            if (WatchSeries)
            {
                string a = "Ver series";
                data.Hobbys.Add(a);
            }
            if (ToDance)
            {
                string x = "Bailar";
                data.Hobbys.Add(x);
            }
            if (PlayVideos)
            {
                string y = "Video Juegos";
                data.Hobbys.Add(y);
            }
            if (ListenMusic)
            {
                string z = "Escuchar musica";
                data.Hobbys.Add(z);
            }

            return(View(data));
        }
Пример #3
0
        async protected static void Execute(InteraccionModel <InteraccionBusiness> interaccion)
        {
            _isExecuting = true;
            try
            {
                string caption = "Acceso a la edición del formulario";

                if (interaccion.Motivo == null || interaccion.Negocio == null)
                {
                    string msg = "Para proceder a completar el formulario,\r\ndebe seleccionar un motivo y negocio (negocio por segmento).";
                    CRMMessageBox.Show(msg, caption, MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }


                FormularioModel frm = InteraccionBusiness.GetFormularioXSeleccion(interaccion.Motivo, interaccion.Negocio);

                if (frm == null)
                {
                    string msg = "El grupo de motivo, segmento y negocio seleccionado\r\nno posee formulario asociado.";
                    CRMMessageBox.Show(msg, caption, MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                // Es formulario nuevo?
                if (interaccion.Formulario_CodigoSAP == null || interaccion.Formulario_CodigoSAP != frm.CodigoSAP)
                {
                    // Set el nuevo formulario
                    interaccion.Formulario = frm;
                }

                App.Locator.FormularioViewModelStatic.FormularioActual = FormularioModel <FormularioCheckListBusiness> .Create(interaccion.Formulario);

                NavigationHelper.Navigate <FormularioView>();
            }
            catch (Exception ex)
            {
                App.CurrentLoggingContext.LogException(ex);
            }
            finally
            {
                _isExecuting = false;
            }
        }
Пример #4
0
        public static PreguntaFormularioModelCollection GetPreguntas(FormularioModel formulario)
        {
            //Query subSupQuery = new Query();
            //subSupQuery.Distinct = true;
            //subSupQuery.Select("pf.idPregunta");
            //subSupQuery.From("PreguntaFormulario", "pf");
            //subSupQuery.Where(new AttributeTest("pf.idFormulario", idFormulario, AttributeTest.EQUAL));

            //AttributeTest filterTest = new AttributeTest();
            //filterTest.Attribute = "idPregunta";
            //filterTest.Value = subSupQuery;
            //filterTest.Operator = AttributeTest.IN;

            //SortCriteria sort = new SortCriteria();
            //sort.Add("idPregunta", (int)SortOrderType.Ascending);

            //Query filterQuery = new Query();
            //filterQuery.Where(filterTest);
            //filterQuery.SortCriteria = sort;

            // Pregunta.FindWithQuery(filterQuery)

            AttributeTest filterTest = new AttributeTest();

            filterTest.Attribute = "idFormulario";
            filterTest.Value     = formulario.IdFormulario;
            filterTest.Operator  = AttributeTest.EQUAL;

            SortCriteria sort = new SortCriteria();

            sort.Add("idPregunta", (int)SortOrderType.Ascending);

            Query filterQuery = new Query();

            filterQuery.Where(filterTest);
            filterQuery.SortCriteria = sort;

            return(new PreguntaFormularioModelCollection(PreguntaFormulario.FindWithQuery(filterQuery)));
        }
Пример #5
0
        public static FormularioModel GetFormularioXSeleccion(MotivoModel motivo, NegocioModel negocio)
        {
            Query supQuery = new Query();

            CompositeTest where = new CompositeTest();
            where.SetOperator(CompositeTest.AND);
            where.Add(new AttributeTest("idMotivo", motivo.IdMotivo, AttributeTest.EQUAL));
            where.Add(new AttributeTest("idNegocio", negocio.IdNegocio, AttributeTest.EQUAL));

            supQuery.Where(where);

            GenericList <SeleccionFormulario> seleccionFormulario = SeleccionFormulario.FindWithQuery(supQuery);

            if (seleccionFormulario.Size() > 0)
            {
                return(FormularioModel.Create(seleccionFormulario[0].Formulario));
            }
            else
            {
                return(null);
            }
        }
        public static PreguntaFormularioModelCollection GetPreguntas(FormularioModel formulario)
        {
            //Query subSupQuery = new Query();
            //subSupQuery.Distinct = true;
            //subSupQuery.Select("pf.idPregunta");
            //subSupQuery.From("PreguntaFormulario", "pf");
            //subSupQuery.Where(new AttributeTest("pf.idFormulario", idFormulario, AttributeTest.EQUAL));

            //AttributeTest filterTest = new AttributeTest();
            //filterTest.Attribute = "idPregunta";
            //filterTest.Value = subSupQuery;
            //filterTest.Operator = AttributeTest.IN;

            //SortCriteria sort = new SortCriteria();
            //sort.Add("idPregunta", (int)SortOrderType.Ascending);

            //Query filterQuery = new Query();
            //filterQuery.Where(filterTest);
            //filterQuery.SortCriteria = sort;

            // Pregunta.FindWithQuery(filterQuery)

            AttributeTest filterTest = new AttributeTest();
            filterTest.Attribute = "idFormulario";
            filterTest.Value = formulario.IdFormulario;
            filterTest.Operator = AttributeTest.EQUAL;

            SortCriteria sort = new SortCriteria();
            sort.Add("idPregunta", (int)SortOrderType.Ascending);

            Query filterQuery = new Query();
            filterQuery.Where(filterTest);
            filterQuery.SortCriteria = sort;

            return new PreguntaFormularioModelCollection(PreguntaFormulario.FindWithQuery(filterQuery));
        }
Пример #7
0
        private void loadFormularios()
        {
            DispatcherHelper.UIDispatcher.Invoke(() =>
            {
                Formularios.Clear();
                var interaccion = App.Locator.InteraccionViewModelStatic.InteraccionActual;
                switch ((Enums.eFormulario)FormularioActual.IdFormulario)
                {
                case Enums.eFormulario.CHECK_COMERCIAL:
                case Enums.eFormulario.CHECK_COMERCIAL_RETAIL:
                case Enums.eFormulario.CHECK_VISITA_RETAIL:
                case Enums.eFormulario.CHECK_VISITA_INTEGRAL:
                case Enums.eFormulario.CHECK_VISITA_ESPECIALISTA:
                case Enums.eFormulario.PLAN_VENTA:
                    var frm = FormularioModel <FormularioCheckListBusiness> .Create(interaccion.Formulario);
                    App.Locator.FormularioCheckListViewModelStatic.FormIsReadOnly    = this.FormIsReadOnly;
                    App.Locator.FormularioCheckListViewModelStatic.FormularioActual  = frm;
                    App.Locator.FormularioCheckListViewModelStatic.InteraccionActual = interaccion;
                    Formularios.Add(new FormularioCheckListView());
                    break;

                case Enums.eFormulario.MERCADO:
                    if (interaccion.FormularioMercado == null)
                    {
                        interaccion.FormularioMercado             = new FormularioMercadoModel();
                        interaccion.FormularioMercado.Interaccion = (InteraccionModel)interaccion;
                    }

                    App.Locator.FormularioMercadoViewModelStatic.FormIsReadOnly          = this.FormIsReadOnly;
                    App.Locator.FormularioMercadoViewModelStatic.FormularioMercadoActual = interaccion.FormularioMercado;
                    Formularios.Add(new FormularioMercadoView());
                    break;

                case Enums.eFormulario.PRECIOS:
                    if (interaccion.FormularioPrecios == null)
                    {
                        interaccion.FormularioPrecios             = new FormularioPreciosModel();
                        interaccion.FormularioPrecios.Interaccion = (InteraccionModel)interaccion;
                    }

                    App.Locator.FormularioPreciosViewModelStatic.FormIsReadOnly          = this.FormIsReadOnly;
                    App.Locator.FormularioPreciosViewModelStatic.FormularioPreciosActual = interaccion.FormularioPrecios;
                    Formularios.Add(new FormularioPreciosView());
                    break;

                case Enums.eFormulario.TRANSPORTE:
                    if (interaccion.FormularioTransporte == null)
                    {
                        interaccion.FormularioTransporte             = new FormularioTransporteModel();
                        interaccion.FormularioTransporte.Interaccion = (InteraccionModel)interaccion;
                    }

                    App.Locator.FormularioTransporteViewModelStatic.FormIsReadOnly             = this.FormIsReadOnly;
                    App.Locator.FormularioTransporteViewModelStatic.FormularioTransporteActual = interaccion.FormularioTransporte;
                    Formularios.Add(new FormularioTransporteView());
                    break;

                default:
                    break;
                }
            });
        }
        public object Post(FormularioModel model)
        {
            tbCuestionario cuestionarioResult = null;

            try
            {
                //Asigno nulos a las listas de paciente y cuestionario ya que modifican la salidan y nunca
                //Se utilizan como entrada
                model.Paciente.tbCuestionario             = null;
                model.Cuestionario.tbCuestionarioPregunta = null;

                //Inserto el request
                ServiceRequestBusiness serviceRequestBusiness = new ServiceRequestBusiness();
                tbRequest request = new tbRequest();

                Func <tbRequest, bool> predicado = p => p.req_codigo == model.CodigoRequest;
                request = ((List <tbRequest>)serviceRequestBusiness.Read(predicado)).FirstOrDefault();

                if (request != null)
                {
                    if (request.req_body_response != null)
                    {
                        model = JsonConvert.DeserializeObject <FormularioModel>(request.req_body_response);
                        log.Info("Retorno el modelo almacenado en DB_DACS: " + JsonConvert.SerializeObject(model));
                        return(Request.CreateResponse(HttpStatusCode.Created, model));
                    }
                    else
                    {
                        //Tengo que procesar todo nuevemente
                        model = JsonConvert.DeserializeObject <FormularioModel>(request.req_body_request);
                        cuestionarioResult = InsertFormulario(model);
                    }
                }
                else
                {
                    //Insert bd local
                    request = new tbRequest()
                    {
                        req_fecha_request  = DateTime.Now,
                        req_fecha_response = null,
                        req_body_request   = JsonConvert.SerializeObject(model),
                        req_estado         = false,
                        req_codigo         = model.CodigoRequest
                    };
                    //Creo objeto en base local
                    serviceRequestBusiness.Create(request);

                    cuestionarioResult = InsertFormulario(model);
                }

                if (cuestionarioResult != null)
                {
                    //Actualizo tabla request
                    request.req_fecha_response = DateTime.Now;
                    request.req_body_response  = JsonConvert.SerializeObject(model);
                    request.req_estado         = true;
                    serviceRequestBusiness.Update(request);

                    //Actualizo el modelo con los datos del paciente almacenado
                    model.Paciente.pac_dni = (this.ObtenerPaciente(model.Paciente.pac_dni)).pac_dni;

                    //Actualizo el modelo con los datos del cuestionario insertado
                    var cuestionarioResponse = (tbCuestionario)cuestionarioResult;
                    model.Cuestionario.cue_id = cuestionarioResponse.cue_id;
                    model.Cuestionario.pac_id = model.Paciente.pac_id;
                    model.ListaCuestionarioPregunta.ForEach(x => x.cue_id = cuestionarioResponse.cue_id);

                    return(Request.CreateResponse(HttpStatusCode.Created, model));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, "No se inserto registros."));
                }
            }
            catch (Exception ex)
            {
                log.Error("Mensaje de Error: " + ex.Message);
                if (ex.InnerException != null)
                {
                    log.Error("Inner exception: " + ex.InnerException.Message);
                }
                throw ex;
            }
        }
        private tbCuestionario InsertFormulario(FormularioModel model)
        {
            try
            {
                tbCuestionario cuestionario = new tbCuestionario();

                //Cargo los datos del cuestionario
                cuestionario.cue_fecha       = model.Cuestionario.cue_fecha;
                cuestionario.cue_diagnostico = model.Cuestionario.cue_diagnostico;
                cuestionario.cue_latitud     = model.Cuestionario.cue_latitud.Replace(',', '.');
                cuestionario.cue_longitud    = model.Cuestionario.cue_longitud.Replace(',', '.');

                //Asigno al cuestionario los datos del paciente
                if (model.Paciente.pac_dni != 0)
                {
                    //Agrego el paciente al cuestionario, obtengo el dni si existe y sino cargo los datos para insertar
                    tbPaciente paciente = this.ObtenerPaciente(model.Paciente.pac_dni);
                    if (paciente != null)
                    {
                        cuestionario.pac_id = paciente.pac_id;
                    }
                    else
                    {
                        cuestionario.tbPaciente = new tbPaciente
                        {
                            pac_dni      = model.Paciente.pac_dni,
                            pac_nombre   = model.Paciente.pac_nombre,
                            pac_apellido = model.Paciente.pac_apellido,
                            pac_genero   = model.Paciente.pac_genero
                        };
                    }
                }

                //Asigno las respuestas al cuestionario
                if (model.ListaCuestionarioPregunta.Count() > 1)
                {
                    cuestionario.tbCuestionarioPregunta = new List <tbCuestionarioPregunta>();
                    tbCuestionarioPregunta cuestionarioPregunta;

                    foreach (var obj in model.ListaCuestionarioPregunta)
                    {
                        cuestionarioPregunta = new tbCuestionarioPregunta()
                        {
                            pre_id         = obj.pre_id,
                            cpr_respuesta  = obj.cpr_respuesta,
                            cpr_comentario = obj.cpr_comentario
                        };
                        cuestionario.tbCuestionarioPregunta.Add(cuestionarioPregunta);
                    }
                }

                ServiceCuestionarioBusiness servicioCuestionarioBusiness = new ServiceCuestionarioBusiness();
                var result = servicioCuestionarioBusiness.Create(cuestionario);
                return((tbCuestionario)result);
            }
            catch (Exception ex)
            {
                log.Error("Mensaje de Error: " + ex.Message);
                if (ex.InnerException != null)
                {
                    log.Error("Inner exception: " + ex.InnerException.Message);
                }
                throw ex;
            }
        }