Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        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());
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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)));
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        /// <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);
            }
        }
Exemple #11
0
 public string ValidatePeer()
 {
     return(RequestHelpers.GetClientIpAddress(Request));
 }
Exemple #12
0
        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);
            }
        }