Пример #1
0
        private ProcessResult RunProcess(Stream uploadStream, string imageName)
        {
            imageName = RandomStringBuilder.ChangeNameToRandomStr(imageName);
            string uploadPath = folderPath + imagePath + imageName;

            return(SSHProcess.processor.UploadRun(uploadStream, uploadPath, pythonPath, folderPath + processPath, "--path " + imagePath + imageName));
        }
Пример #2
0
        /// <summary>
        ///     修改密码
        /// </summary>
        /// <param name="id">用户id</param>
        /// <param name="oldP">旧密码</param>
        /// <param name="newP">新密码</param>
        /// <returns></returns>
        public async Task <bool> ChangePasswordAsync(int id, string oldP, string newP)
        {
            if (string.IsNullOrWhiteSpace(oldP) || string.IsNullOrWhiteSpace(newP))
            {
                return(false);
            }
            var r0 = _con.User.Where(e => e.Id.Equals(id));

            if (await r0.CountAsync() == 0)
            {
                return(false);
            }
            var salt = await r0.Select(s => s.Salt).FirstOrDefaultAsync();

            var ovpd = Md5.GetMd5(oldP, salt);
            var r1   = r0.Where(e => e.PassWord.Equals(ovpd));

            if (await r1.CountAsync() == 0)
            {
                return(false);
            }
            var salt1 = new RandomStringBuilder().Create(6);
            var r2    = await r1.FirstOrDefaultAsync();

            r2.PassWord   = Md5.GetMd5(newP, salt1);
            r2.Salt       = salt1;
            r2.UpdateTime = DateTime.UtcNow;
            _con.User.Update(r2);
            return(await _con.SaveChangesAsync() > 0);
        }
Пример #3
0
        public static void Initialize(DanmuContext context, AppSettings appSettings)
        {
            context.Database.EnsureCreated();

            //临时执行,修改以前的数据库
            context.Database.ExecuteSqlRaw(
                "CREATE TABLE IF NOT EXISTS \"HttpClientCache\" (\"Id\" int4 NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 MINVALUE 1 MAXVALUE 2147483647 START 1 ),\"Key\" TEXT COLLATE \"pg_catalog\".\"default\" NOT NULL, \"Value\" bytea, \"TimeStamp\" int8 NOT NULL,CONSTRAINT \"PK_HttpClientCache\" PRIMARY KEY ( \"Id\" ) );");

            context.Database.ExecuteSqlRaw(
                "CREATE INDEX IF NOT EXISTS \"IX_HttpClientCache_Key\" ON \"HttpClientCache\" USING hash ( \"Key\" COLLATE \"pg_catalog\".\"default\" \"pg_catalog\".\"text_ops\" );");


            context.Database.ExecuteSqlRaw("DO $$ BEGIN IF EXISTS(SELECT * FROM information_schema.columns WHERE table_name='User' and column_name='UpDateTime') THEN ALTER TABLE \"User\" RENAME COLUMN \"UpDateTime\" TO \"UpdateTime\"; END IF; END $$;");

            if (!context.User.Any())
            {
                var admin = appSettings.Admin;
                var salt  = new RandomStringBuilder().Create(6);

                var user = new UserTable
                {
                    Name     = admin.User,
                    Salt     = salt,
                    PassWord = Md5.GetMd5(Md5.GetMd5(admin.Password), salt),
                    Role     = UserRole.SuperAdmin
                };

                context.User.AddAsync(user);
                context.SaveChanges();
            }
        }
Пример #4
0
        private ProcessResult RunProcess(Stream uploadStream, string videoName)
        {
            videoName = RandomStringBuilder.ChangeNameToRandomStr(videoName);
            string uploadPath = folderPath + videoPath + videoName;

            return(SSHProcess.processor.UploadRun(uploadStream, uploadPath, folderPath + processPath, "--video " + videoPath + videoName));
        }
Пример #5
0
        /// <summary>
        ///     修改密码
        /// </summary>
        /// <param name="id">用户id</param>
        /// <param name="oldP">旧密码</param>
        /// <param name="newP">新密码</param>
        /// <returns></returns>
        public bool ChangePassword(int id, string oldP, string newP)
        {
            if (string.IsNullOrWhiteSpace(oldP) || string.IsNullOrWhiteSpace(newP))
            {
                return(false);
            }
            var r0 = _con.User.Where(e => e.Id.Equals(id));

            if (!r0.Any())
            {
                return(false);
            }
            var salt = r0.Select(s => s.Salt).FirstOrDefault();
            var opd  = Md5.GetMd5(oldP, salt);
            var r1   = r0.Where(e => e.PassWord.Equals(opd));

            if (!r1.Any())
            {
                return(false);
            }
            var salt1 = new RandomStringBuilder().Create(6);
            var r2    = r1.FirstOrDefault();

            if (r2 != null)
            {
                r2.Salt       = salt1;
                r2.PassWord   = Md5.GetMd5(newP, salt1);
                r2.UpdateTime = DateTime.UtcNow;
                _con.User.Update(r2);
            }

            return(_con.SaveChanges() > 0);
        }
Пример #6
0
        private ProcessResult RunProcess(Stream uploadStream, string imageName)
        {
            imageName = RandomStringBuilder.ChangeNameToRandomStr(imageName);
            string uploadPath   = folderPath + imagePath + imageName;
            string downLoadPath = folderPath + outputPath + imageName;

            return(SSHProcess.processor.UploadRunDownloadToStr(uploadStream, uploadPath, pythonPath, folderPath + processPath, "--path " + imagePath + imageName + " --output " + outputPath + imageName, downLoadPath));
        }
Пример #7
0
        private ProcessResult RunProcess(Stream uploadStream, string imageName)
        {
            imageName = RandomStringBuilder.ChangeNameToRandomStr(imageName);
            string        uploadPath    = folderPath + imagePath + imageName;
            ProcessResult processResult = new ProcessResult();

            return(SSHProcess.processor.UploadRun(uploadStream, uploadPath, Interpreter, folderPath + processPath, imagePath + imageName));
        }
Пример #8
0
        /// <summary>
        /// 32个字符组成一组随机数组
        /// </summary>
        public string generateToken()
        {
            //用三组字符串进行md5加密

            string randchar = RandomStringBuilder.Create(32);


            return(randchar);
        }
Пример #9
0
        private BinaryFile BinaryFileResponseMethod(Stream stream, string contentType)
        {
            string filename = RandomStringBuilder.RandomString(10) + MimeTypeMap.GetExtension(contentType);

            return(new BinaryFile(
                       filename,
                       BinaryResponseMethod(stream, contentType)
                       ));
        }
Пример #10
0
        public async Task <IActionResult> Post(string id, [FromBody] JsonElement value)
        {
            string       str          = JsonSerializer.Serialize(value);
            JsonResponse jsonResponse = null;

            try
            {
                jsonResponse = JsonSerializer.Deserialize <JsonResponse>(str);
            }
            catch (Exception e)
            {
                return(BadRequest());
            }
            if (jsonResponse == null)
            {
                return(BadRequest());
            }
            else if (id != jsonResponse.id)
            {
                return(NotFound());
            }
            var survey = await _context.Survey.FindAsync(id);

            if (survey == null)
            {
                return(NotFound());
            }

            Response response = new Response();
            int      index    = 0;

            response.ResponseID  = RandomStringBuilder.Create();
            response.IMEI        = jsonResponse.IMEI;
            response.Latitude    = jsonResponse.Latitude;
            response.Longitude   = jsonResponse.Longitude;
            response.RefSurveyID = jsonResponse.id;
            response.Survey      = survey;
            response.TimeStamp   = jsonResponse.time;
            foreach (string answerStr in jsonResponse.answers)
            {
                Answer answer = new Answer();
                answer.Response      = response;
                answer.RefResponseID = response.ResponseID;
                answer.QuestionNum   = index;
                answer.Content       = answerStr;
                answer.AnswerKey     = RandomStringBuilder.Create();
                _context.Add(answer);
                ++index;
            }

            _context.Add(response);
            await _context.SaveChangesAsync();

            return(Ok());
        }
Пример #11
0
        /// <summary>
        ///     创建用户
        /// </summary>
        /// <param name="name"></param>
        /// <param name="password"></param>
        /// <param name="phoneNumber"></param>
        /// <param name="email"></param>
        /// <param name="role"></param>
        /// <returns></returns>
        public async Task <bool> InsertAsync(string name, string password, string phoneNumber = "",
                                             string email = "", UserRole role = UserRole.GeneralUser)
        {
            if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(password))
            {
                return(false);
            }
            var salt = new RandomStringBuilder().Create(6);
            var user = new UserTable
            {
                Name        = name,
                Email       = email,
                PhoneNumber = phoneNumber,
                Salt        = salt,
                PassWord    = Md5.GetMd5(password, salt),
                Role        = role
            };

            await _con.User.AddAsync(user);

            return(await _con.SaveChangesAsync() > 0);
        }
        // GET: Questions/Create
        public IActionResult Create(string id)
        {
            var result = _context.Question.Include(q => q.Survey).Where(m => m.RefSurveyID == id);

            if (result == null)
            {
                return(View());
            }
            int max = 0;

            foreach (Question question in result)
            {
                if (question.QuestionNum > max)
                {
                    max = question.QuestionNum;
                }
            }

            ViewData["QuestionNum"] = max + 1;
            ViewData["QuestionKey"] = RandomStringBuilder.Create();
            ViewData["RefSurveyID"] = id;
            return(View());
        }
Пример #13
0
        public static void Initialize(DanmuContext context, AppSettings appSettings)
        {
            context.Database.EnsureCreated();


            if (context.User.Any())
            {
                return;                     // DB has been seeded
            }
            var admin = appSettings.Admin;
            var salt  = new RandomStringBuilder().Create(6);

            var user = new UserTable
            {
                Name     = admin.User,
                Salt     = salt,
                PassWord = Md5.GetMd5(Md5.GetMd5(admin.Password), salt),
                Role     = UserRole.SuperAdmin
            };

            context.User.AddAsync(user);
            context.SaveChanges();
        }
Пример #14
0
        public async Task <IActionResult> Create([Bind("AppId,AppName,UserNameID,AlgorithmRefId,APIKey,CreateTime,LastCallTime,MonthCallCount,State,AIFunction")] App app)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrEmpty(app.AppName))
                {
                    return(NotFound());
                }
                if (app.Algorithm != null || !string.IsNullOrEmpty(app.AlgorithmRefId))
                {
                    app.AIFunction = AIFunction.Custom;
                }
                string userID = _context.Users.First(u => u.UserName == User.Identity.Name).Id;
                app.UserNameID     = userID;
                app.CreateTime     = DateTime.Now;
                app.LastCallTime   = DateTime.Now;
                app.MonthCallCount = 0;
                app.State          = true;
                string rand;
                for (rand = RandomStringBuilder.Create(36); _context.App.Any(a => a.APIKey == RandomStringBuilder.Create(36));)
                {
                    rand = RandomStringBuilder.Create(36);
                }
                app.APIKey = rand;
                _context.Add(app);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["AlgorithmId"] = app.AlgorithmRefId;
            var algorithm = await _context.Algorithm
                            .FirstOrDefaultAsync(m => m.AlgorithmId == app.AlgorithmRefId);

            ViewData["AlgorithmName"]  = algorithm.AlgorithmName;
            ViewData["AlgorithmRefId"] = new SelectList(_context.Algorithm.Where(a => a.AlgorithmId == algorithm.AlgorithmId), "AlgorithmId", "AlgorithmId");
            return(View(app));
        }
Пример #15
0
        public static void Initialize(DanmuContext context, AppSettings appSettings)
        {
            context.Database.EnsureCreated();

            //临时执行,修改以前的数据库
            context.Database.ExecuteSqlRaw("DO $$ BEGIN IF EXISTS(SELECT * FROM information_schema.columns WHERE table_name='User' and column_name='UpDateTime') THEN ALTER TABLE \"User\" RENAME COLUMN \"UpDateTime\" TO \"UpdateTime\"; END IF; END $$;");

            if (!context.User.Any())
            {
                var admin = appSettings.Admin;
                var salt  = new RandomStringBuilder().Create(6);

                var user = new UserTable
                {
                    Name     = admin.User,
                    Salt     = salt,
                    PassWord = Md5.GetMd5(Md5.GetMd5(admin.Password), salt),
                    Role     = UserRole.SuperAdmin
                };

                context.User.AddAsync(user);
                context.SaveChanges();
            }
        }
        // GET: Surveys/Create
        public IActionResult Create()
        {
            ViewData["SurveyID"] = RandomStringBuilder.Create();

            return(View());
        }
Пример #17
0
        /// <summary>
        /// 生成 ASE的密钥 16位
        /// </summary>
        private void GenerateAESKey()
        {
            string randomStr = RandomStringBuilder.Create(16).ToLower();

            outFileConfig.tsAESKey = Encoding.UTF8.GetBytes(randomStr);
        }