public HttpResponseMessage ReportError(Watson data) { if (data == null) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent("No Watson data provided") }); } try { data.MachineName = RequestHelpers.GetClientIpAddress(Request); data.DateSubmitted = DateTime.Now; _context.AddError(data); } catch (Exception e) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(e.Message) }); } return(new HttpResponseMessage(HttpStatusCode.OK)); }
public HttpResponseMessage RegisterUser(string email) { if (string.IsNullOrEmpty(email)) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent("No email address provided") }); } try { var ipAddress = RequestHelpers.GetClientIpAddress(Request); _context.AddUser(new UserRegister { Email = email, IPAddress = ipAddress }); } catch (Exception e) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(e.Message) }); } return(new HttpResponseMessage(HttpStatusCode.OK)); }
public HttpResponseMessage ReportUsage(Usage data) { if (data == null) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent("No usage data provided") }); } try { data.IPAddress = RequestHelpers.GetClientIpAddress(Request); _context.AddUsage(data); } catch (Exception e) { throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(e.Message) }); } return(new HttpResponseMessage(HttpStatusCode.OK)); }
public ActionResult DistrictAdmin() { Trace.Assert(Context.PersonId.HasValue); Trace.Assert(Context.SchoolYearId.HasValue); var distictAdmin = SchoolLocator.PersonService.GetPersonDetails(Context.PersonId.Value); var district = PrepareCommonViewData(); ViewData[ViewConstants.ROLE_NAME] = CoreRoles.DISTRICT_ADMIN_ROLE.LoweredName; PrepareJsonData(PersonViewData.Create(distictAdmin), ViewConstants.CURRENT_PERSON); var gradeLevel = SchoolLocator.GradeLevelService.GetGradeLevels(); PrepareJsonData(GradeLevelViewData.Create(gradeLevel), ViewConstants.GRADE_LEVELS); PrepareJsonData(AttendanceReasonDetailsViewData.Create(SchoolLocator.AttendanceReasonService.GetAll()), ViewConstants.ATTENDANCE_REASONS); var sy = SchoolLocator.SchoolYearService.GetCurrentSchoolYear(); PrepareJsonData(SchoolYearViewData.Create(sy), ViewConstants.SCHOOL_YEAR); PrepareJsonData(SchoolLocator.SchoolYearService.GetYears(), ViewConstants.YEARS); var announcementAttributes = SchoolLocator.AnnouncementAttributeService.GetList(true); PrepareJsonData(AnnouncementAttributeViewData.Create(announcementAttributes), ViewConstants.ANNOUNCEMENT_ATTRIBUTES); var gradingPeriods = SchoolLocator.GradingPeriodService.GetGradingPeriodsDetails(Context.SchoolYearId.Value); var currentGradingPeriod = SchoolLocator.GradingPeriodService.GetGradingPeriodDetails(Context.SchoolYearId.Value, Context.NowSchoolYearTime.Date); PrepareJsonData(GradingPeriodViewData.Create(gradingPeriods), ViewConstants.GRADING_PERIODS); PrepareJsonData(ShortGradingPeriodViewData.Create(currentGradingPeriod), ViewConstants.GRADING_PERIOD); var mps = SchoolLocator.MarkingPeriodService.GetMarkingPeriods(sy.Id); PrepareJsonData(MarkingPeriodViewData.Create(mps), ViewConstants.MARKING_PERIODS); var schoolOption = SchoolLocator.SchoolService.GetSchoolOption(); PrepareJsonData(SchoolOptionViewData.Create(schoolOption), ViewConstants.SCHOOL_OPTIONS); var alternateScore = SchoolLocator.AlternateScoreService.GetAlternateScores(); PrepareJsonData(AlternateScoreViewData.Create(alternateScore), ViewConstants.ALTERNATE_SCORES); var gradingComments = SchoolLocator.GradingCommentService.GetGradingComments(); PrepareJsonData(GradingCommentViewData.Create(gradingComments), ViewConstants.GRADING_COMMMENTS); ViewData[ViewConstants.REPORT_CARDS_ENABLED] = MasterLocator.DistrictService.IsReportCardsEnabled(); var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifyDistrictAdmin(distictAdmin.Email, "", "", district.Name, null, Context.DistrictTimeZone, Context.Role.Name, ip, Context.SCEnabled); return(View()); }
public ActionResult Developer(Guid?currentApplicationId, bool?isPwdReset) { if (isPwdReset.HasValue && isPwdReset.Value) { ViewData[ViewConstants.REDIRECT_URL_KEY] = UrlsConstants.DEV_RESET_PASSWORD_URL; } var developer = MasterLocator.DeveloperService.GetById(MasterLocator.Context.UserId); PrepareJsonData(DeveloperViewData.Create(developer), ViewConstants.CURRENT_PERSON); var applications = MasterLocator.ApplicationService.GetApplicationsWithLive(developer.Id, null, null); ViewData[ViewConstants.AZURE_PICTURE_URL] = PictureService.GetPicturesRelativeAddress(); ViewData[ViewConstants.DEMO_AZURE_PICTURE_URL] = PictureService.GeDemoPicturesRelativeAddress(); ViewData[ViewConstants.SERVER_TIME] = Context.NowSchoolTime.ToString(DATE_TIME_FORMAT); ViewData[ViewConstants.SCHOOL_YEAR_SERVER_TIME] = Context.NowSchoolYearTime.ToString(DATE_TIME_FORMAT); ViewData[ViewConstants.NEEDS_TOUR] = false; ViewData[ViewConstants.ROLE_NAME] = Context.Role.LoweredName; ViewData[ViewConstants.CURRENT_USER_ROLE_ID] = Context.RoleId; ViewData[ViewConstants.STUDENT_ROLE] = CoreRoles.STUDENT_ROLE.Name; ViewData[ViewConstants.TEACHER_ROLE] = CoreRoles.TEACHER_ROLE.Name; ViewData[ViewConstants.DISTRICT_ADMIN_ROLE] = CoreRoles.DISTRICT_ADMIN_ROLE.Name; ViewData[ViewConstants.DISTRICT_ID] = Context.UserId.ToString(); ViewData[ViewConstants.DEMO_PICTURE_DISTRICT_REF] = DEMO_PICTURE_DISTRICT_REF; ViewData[ViewConstants.IS_DEMO_DISTRICT] = true; if (Context.DistrictId.HasValue) { var district = DemoDistrictService.CreateDemoDistrict(Context.DistrictId.Value); var school = DemoSchoolService.CreateMasterSchool(Context.DistrictId.Value); school.District = district; PrepareJsonData(ShortSchoolViewData.Create(school), ViewConstants.SCHOOL); } PrepareJsonData(BaseApplicationViewData.Create(applications), ViewConstants.APPLICATIONS); if (applications.Count > 0) { var app = currentApplicationId.HasValue ? applications.First(x => x.Id == currentApplicationId) : applications.Last(); app = MasterLocator.ApplicationService.GetApplicationById(app.Id); var res = ApplicationController.PrepareAppInfo(MasterLocator, app, true, true); PrepareJsonData(res, ViewConstants.DEFAULT_APPLICATION, 6); } var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifyDeveloper(developer.Email, developer.DisplayName, DateTime.UtcNow, "UTC", ip); return(View()); }
public ActionResult SysAdmin(bool?isPwdReset) { if (isPwdReset.HasValue && isPwdReset.Value) { ViewData[ViewConstants.REDIRECT_URL_KEY] = UrlsConstants.RESET_PASSWORD_URL; } var sysUser = MasterLocator.UserService.GetById(Context.UserId); ViewData[ViewConstants.AZURE_PICTURE_URL] = PictureService.GetPicturesRelativeAddress(); ViewData[ViewConstants.DEMO_AZURE_PICTURE_URL] = PictureService.GeDemoPicturesRelativeAddress(); PrepareJsonData(SysAdminViewData.Create(sysUser), ViewConstants.CURRENT_PERSON); ViewData[ViewConstants.SERVER_TIME] = Context.NowSchoolTime.ToString(DATE_TIME_FORMAT); var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifySysAdmin(sysUser.Login, "", "", null, ip); ViewData[ViewConstants.ROLE_NAME] = CoreRoles.SUPER_ADMIN_ROLE.LoweredName; ViewData[ViewConstants.ASSESSMENT_APLICATION_ID] = MasterLocator.ApplicationService.GetAssessmentId(); return(View()); }
public void Write(string accion, string mensaje) { var _lei = new LogEventInfo(LogLevel.Info, _logger.Name, _logger.Name); _lei.Properties.Add("accion", accion); if (_application.IsAuthenticated()) { var personaId = _application.GetCurrentUser().PersonaId; if (personaId.HasValue) { var persona = _iPersonaService.Get((int)personaId); _lei.Properties.Add("indentificacion", persona.Identificacion); } else { _lei.Properties.Add("indentificacion", "AN"); } } else { _lei.Properties.Add("indentificacion", "AN"); } //Almacenar IP if (HttpContext.Current != null && HttpContext.Current.Request != null) { string ipAddress = RequestHelpers.GetClientIpAddress(new HttpRequestWrapper(HttpContext.Current.Request)); _lei.Properties.Add("ip", ipAddress); } else { _lei.Properties.Add("ip", string.Empty); } _lei.Message = mensaje; _logger.Log(_lei); }
public ActionResult UpdateInfo(Guid developerId, string name, string websiteLink, string email) { var user = MasterLocator.UserService.GetByLogin(email); if (user != null && user.Id != Context.UserId) { return(Json(new ChalkableException("User email already exists"))); } var res = MasterLocator.DeveloperService.Edit(developerId, name, email, websiteLink, null); MasterLocator.UserTrackingService.ChangedEmail(Context.Login, email); if (Context.Role.LoweredName == CoreRoles.DEVELOPER_ROLE.LoweredName) { var timeZoneId = Context.DistrictTimeZone; var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifyDeveloper(res.Email, res.DisplayName, String.IsNullOrEmpty(timeZoneId) ? DateTime.UtcNow : DateTime.UtcNow.ConvertFromUtc(timeZoneId), timeZoneId, ip); } return(Json(DeveloperViewData.Create(res))); }
private void PrepareStudentJsonData() { Trace.Assert(Context.PersonId.HasValue); var startupData = SchoolLocator.SchoolService.GetStartupData(); var district = PrepareCommonViewDataForSchoolPerson(startupData); var person = startupData.Person; var personView = PersonInfoViewData.Create(person); ProcessFirstLogin(person); ProcessActive(person, personView); PrepareJsonData(personView, ViewConstants.CURRENT_PERSON); var dayTypes = SchoolLocator.DayTypeService.GetDayTypes(startupData.Classes.SelectMany(x => x.ClassPeriods, (a, b) => b.DayTypeRef).ToList()); var classesVD = ClassComplexViewData.Create(startupData.Classes, startupData.Rooms, dayTypes).ToList(); PrepareJsonData(classesVD, ViewConstants.CLASSES); var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifyStudent(Context.Login, person.FirstName, person.LastName, district.Name, "", person.FirstLoginDate, Context.DistrictTimeZone, ip, Context.SCEnabled); }
/// <summary> /// Autentificar usuario /// </summary> /// <param name="usuario"></param> /// <param name="ipClient"></param> /// <param name="codigoRol"></param> /// <returns></returns> private JsonResult AutentificarUsuario(Usuario usuario, string ipClient, string codigoRol) { try { //TODO. JSA. Revisar el flujo si al momento de seleccionar un rol, este es externo, Por lo tanto no lo va tener asociado //al usuario. (Fallas Seguridad) //opcion 1. Sincrionizar rol_usuario, (externoas y internos) //opcion 2. Pasar informacion en el model de la vista tipo (externo y interno), si es un rol externo pasar si verificacion o //recuperar de una sesion los roles externos del usuario JsonResult result; Rol rol = _rolService.GetList().Where(c => c.Codigo == codigoRol).FirstOrDefault(); if (rol == null) { string error = string.Format("No existe el rol con el codigo {0}", codigoRol); result = StatusResponseHelper.JsonNoAutenticado(error, false); return(result); } if (!rol.EsExterno) { rol = usuario.Roles.Where(c => c.Codigo == codigoRol).SingleOrDefault(); if (rol == null) { string error = string.Format("El usuario {0}, no tiene asociado el rol con el codigo {1}", usuario.Cuenta, codigoRol); result = StatusResponseHelper.JsonNoAutenticado(error, false); return(result); } } //Autentificar usuario //Obtener la direccion IP del cliente string ipAddress = ipClient; if (string.IsNullOrWhiteSpace(ipAddress)) { ipAddress = RequestHelpers.GetClientIpAddress(this.HttpContext.Request); } var claveEncriptar = AppSettings.Get <string>(ConstantesWebConfig.CLAVE_ENCRYPTACION); var minutosExpiracionToken = Convert.ToInt32(AppSettings.Get <string>(ConstantesWebConfig.TOKEN_TIEMPOSESION)); InitializeUserAccessServiciosWeb initializeUserAccessServiciosWeb = new InitializeUserAccessServiciosWeb(); initializeUserAccessServiciosWeb.usuario = usuario; initializeUserAccessServiciosWeb.rol = rol; initializeUserAccessServiciosWeb.ipAddress = ipAddress; _accessService.InitializeUserAccess(initializeUserAccessServiciosWeb); var sesion = _application.GetCurrentSession(); var token = Token.GenerateToken(Base64.Encode(claveEncriptar), usuario.Id, rol.Id, sesion.Id, minutosExpiracionToken); //FormsAuthentication.SetAuthCookie(usuario.Cuenta, false); var mensaje = string.Format("El usuario {0}, ingresa de forma exitosa al sistema", usuario); //Registro Auditoria - Hora de inicio de sesión en el sistema. logAuditoria.Write(FUNCIONALIDAD_GESTION_USUARIOS.ACCION_LOGIN, mensaje); //Direccionar a la URL segun la configuración del ROL, o direccionar a URL Default //string URL = FormsAuthentication.DefaultUrl; //if (!string.IsNullOrWhiteSpace(rol.Url)) //{ // URL = rol.Url; //} /*var miFarmacia = _iFarmaciaService.GetMisFarmacias().Select(mf => mf.Farmacia).FirstOrDefault(); * String fileBase64 = miFarmacia == null || miFarmacia.Logo == null || (!rol.Codigo.Equals(ConstantesRoles.ROL_FARMACEUTICO_PROPIETARIO) && !rol.Codigo.Equals(ConstantesRoles.ROL_FARMACEUTICO2)) ? || null : DataUrl.FromFileTypeAndBytes(miFarmacia.FileTypeLogo, miFarmacia.Logo);*/ var rolView = new { codigoRol = rol.Codigo, rolNombre = rol.Nombre, rolEsadministrador = rol.EsAdministrador }; var usuarioView = new { usuId = usuario.Id, version = usuario.VersionRegistro, usuNombres = usuario.Nombres, usuApellidos = usuario.Apellidos, usuIdentificacion = usuario.PersonaId, usuDireccion = "", usuUsuario = usuario.Cuenta, usuClave = "", usuCorreo = usuario.Correo, usuEstado = usuario.Estado, //ImagenPerfil = fileBase64 }; result = new JsonResult { Data = new { mensaje, rol = rolView, usuario = usuarioView, miToken = token, autenticado = true }, //ContentType = contentType, //ContentEncoding = contentEncoding, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; return(result); } catch (Exception ex) { var result = ManejadorExcepciones.HandleException(ex); //TODO: DEPENDENCIAS DE REINICIAR. MEJOR GUARDAR EN SESSION LA IDENTIDAD FormsAuthentication.SignOut(); Session.Clear(); var result1 = StatusResponseHelper.JsonErrorServidor(result.Message, true); return(result1); } }
public string ValidatePeer() { return(RequestHelpers.GetClientIpAddress(Request)); }
private void PrepareTeacherJsonData() { var startProcessingTime = DateTime.Now.TimeOfDay; var timeCallBuilder = new StringBuilder(); Trace.Assert(Context.PersonId.HasValue); var startupData = ProcessMethodAndCallTime(() => SchoolLocator.SchoolService.GetStartupData(), timeCallBuilder, "Retrieving StartUpData "); var district = ProcessMethodAndCallTime(() => PrepareCommonViewDataForSchoolPerson(startupData), timeCallBuilder, "PrepareCommonSchoolPersonData"); var person = startupData.Person; ProcessMethodAndCallTime(() => ProcessFirstLogin(person), timeCallBuilder, "ProcessFirstLogin"); var personView = PersonInfoViewData.Create(person); ProcessMethodAndCallTime(() => ProcessActive(person, personView), timeCallBuilder, "ProcessActive"); PrepareJsonData(personView, ViewConstants.CURRENT_PERSON); if (!CanTeacherViewChalkable()) { return; } var classes = startupData.Classes; var classNames = classes.Select(x => x.Name).ToList(); var schoolOption = startupData.SchoolOption; PrepareJsonData(SchoolOptionViewData.Create(schoolOption), ViewConstants.SCHOOL_OPTIONS); var dayTypes = SchoolLocator.DayTypeService.GetDayTypes(classes.SelectMany(x => x.ClassPeriods, (a, b) => b.DayTypeRef).ToList()); var classesList = ClassComplexViewData.Create(classes, startupData.Rooms, dayTypes).ToList(); PrepareJsonData(classesList, ViewConstants.CLASSES); var gradeLevel = SchoolLocator.GradeLevelService.GetGradeLevels(); PrepareJsonData(GradeLevelViewData.Create(gradeLevel), ViewConstants.GRADE_LEVELS); ProcessMethodAndCallTime(() => PrepareClassesAdvancedData(startupData), timeCallBuilder, "Retrieving Activity Category from Inow"); PrepareClassesAdvancedData(startupData); PrepareJsonData(GradingCommentViewData.Create(startupData.GradingComments), ViewConstants.GRADING_COMMMENTS); PrepareJsonData(AttendanceReasonDetailsViewData.Create(startupData.AttendanceReasons), ViewConstants.ATTENDANCE_REASONS); var announcementAttributes = ProcessMethodAndCallTime(() => SchoolLocator.AnnouncementAttributeService.GetList(true), timeCallBuilder, "Retrieving AnnouncementAttribute"); PrepareJsonData(AnnouncementAttributeViewData.Create(announcementAttributes), ViewConstants.ANNOUNCEMENT_ATTRIBUTES); var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifyTeacher(Context.Login, person.FirstName, person.LastName, district.Name, classNames, person.FirstLoginDate, Context.DistrictTimeZone, ip, Context.SCEnabled); var time = DateTime.Now.TimeOfDay - startProcessingTime; if (time.Seconds > 5) { var message = $"Timeout Error. Teacher.aspx performance time issue. Processing Time {time} \n"; var ex = new ChalkableException(message + timeCallBuilder); SendErrorToRaygun(ex, "Teacher SisUserLogin Performance Issue ", SchoolLocator.Context); } }