示例#1
0
        public ActionResult Index()
        {
            var model = new SolicitarCitaModel();

            //Obtener usuario
            var usuario = this.ObtenerUsuarioPorUserName(this.UserName);

            //Setear datos de usuario en modelo
            model.AsignarUsuarioResponseModel(usuario);

            //Obtener parámetros => Tipos de especialidad
            var especialidades = this.ObtenerParametroPorCategoria(SystemConstants.PARAM_CAT_ESPEC);

            //Setear elementos en el modelo
            model.Servicios = especialidades.Select(p => new KeyValuePair <string, string>(p.ValorPrincipal, p.ValorSecundario)).ToList();

            //Obtener parámetros => Tipos de identificacion
            var tiposIdent = this.ObtenerParametroPorCategoria(SystemConstants.PARAM_CAT_TIPO_ID);

            //Setear elementos en el modelo
            model.TiposDocumento = tiposIdent.Select(p => new KeyValuePair <string, string>(p.ValorPrincipal, p.ValorSecundario)).ToList();

            //Obtener ubicaciones (entidades)
            var entidades = this.ObtenerEntidades();

            //Setear elementos en el modelo
            model.Entidades = entidades.Select(p => new KeyValuePair <string, string>(p.Id.ToString(), p.Descripcion)).ToList();

            //Definir listado de horas
            model.Horas = this.ObtenerListaHoras(30);

            //Retornar vista con modelo
            return(View(model));
        }
示例#2
0
        public async Task <ActionResult> Solicitar(SolicitarCitaModel model)
        {
            try
            {
                await this.SolicitarCita(model);

                return(new HttpStatusCodeResult((int)HttpStatusCode.OK, Messages.MSG_CITA_CREACION_EXITO));
            }
            catch (Exception ex)
            {
                return(this.HandleException(ex));
            }
        }
示例#3
0
        protected async Task <bool> SolicitarCita(SolicitarCitaModel model)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                //Setear el header de autorizacion
                httpClient.DefaultRequestHeaders.Add(WebConstants.HEADER_AUTH_AUTHORIZATION, this.BearerToken);

                //Obtener URL que consume el API
                var crearCitaUrl = this.ConstruirPostUrl(WebConstants.API_RESOURCE_CITAS, WebConstants.API_OPERATION_CREATE);

                //Generar date de cita a partir del modelo
                var hora = DateTime.Now.Date.AddHours(7).AddMinutes(30 * Convert.ToInt32(model.HoraCita)).ToString(CommonConstants.TIME_FORMAT_24_HOURS);

                //Construir fecha cita
                var fechaCita = StringExtensions.ParseDateAndTime(model.FechaCita, hora, CommonConstants.DATE_FORMAT_YEAR_FULL, CommonConstants.TIME_FORMAT_24_HOURS);

                //Obtener parametro de especialidad
                var tipoCitaParam = this.ObtenerParametroPorCategoria(SystemConstants.PARAM_CAT_ESPEC).FirstOrDefault(c => c.ValorPrincipal.Equals(model.Servicio));

                //Crear objeto request
                var citaRequest = new CitaModelRequest
                {
                    Paciente   = this.UserName,
                    CodigoCita = tipoCitaParam.Codigo,
                    ValorCita  = tipoCitaParam.ValorPrincipal,
                    FechaCita  = fechaCita,
                    Sitio      = model.Entidad,
                };

                //Parsear el contenido
                StringContent content = new StringContent(JsonConvert.SerializeObject(citaRequest), Encoding.UTF8, "application/json");

                //Efectuar el request al API
                HttpResponseMessage result = await httpClient.PostAsync(crearCitaUrl, content);

                //Leer el contenido de la respuesta
                string resultContent = result.Content.ReadAsStringAsync().Result;

                //Verificar respuesta del API
                this.VerifyApiResponse(result, resultContent);

                //Parsear elementos
                return(true);
            }
        }