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)); }
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)); } }
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); } }