public async Task <bool> UpdateUserFeature(Guid userId, int featureId, int newDetailId) { var userFeature = await GetUserFeature(userId, featureId); if (userFeature == null) { userFeature = new UserFeature() { UserId = userId, FeatureId = featureId, FeatureDetailId = newDetailId }; _context.UserFeatures.Add(userFeature); } else { userFeature.FeatureDetailId = newDetailId; _context.UserFeatures.Update(userFeature); } try { await Save(); return(true); } catch (Exception) { return(false); } }
public ActionResult ItemFeature(int ItemID, UserFeature itemFeatureObj) { if (ModelState.IsValid) { using (db) { UserAccount listedByUsr = db.UserAccounts.Where(u => u.UserName.Equals(User.Identity.Name.ToString())).FirstOrDefault(); bool obj = db.UserFeatures.Any(x => x.ItemID == ItemID); if (obj == false) { itemFeatureObj.ItemID = ItemID; itemFeatureObj.UserID = listedByUsr.UserID; db.UserFeatures.Add(itemFeatureObj); } else { UserFeature a = db.UserFeatures.Where(x => x.ItemID == ItemID).FirstOrDefault(); db.UserFeatures.Remove(a); } db.SaveChanges(); ModelState.Clear(); return(RedirectToAction("ItemDetails", "Item", new { ItemID = ItemID })); } } return(View(itemFeatureObj)); }
public async Task <bool> CreateUserFeature(Guid userId, int featureId, int detailId) { var userFeature = await GetUserFeature(userId, detailId); if (userFeature != null) { _context.UserFeatures.Remove(userFeature); } var newUserFeature = new UserFeature() { FeatureId = featureId, FeatureDetailId = detailId, UserId = userId }; _context.UserFeatures.Add(newUserFeature); try { await Save(); return(true); } catch (Exception) { return(false); } }
public async Task <IActionResult> Create([Bind("Id,UserId,FeatureId")] UserFeature userFeature) { if (ModelState.IsValid) { _context.Add(userFeature); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["FeatureId"] = new SelectList(_context.Features, "Id", "Title", userFeature.FeatureId); return(View(userFeature)); }
private string GetUserDataJson(SqlConnection Conn, string Key) { string JsonString = ""; UserEntity u = new UserEntity(); string strSql = "select * from VIEW_Org_User where UserNumber = @UserNumber"; SqlParameter[] sqlParams = new SqlParameter[] { new SqlParameter("UserNumber", Key) }; DataTable dtUser = TF.DB.DBUtility.SqlHelper.ExecuteDataset(Conn, CommandType.Text, strSql, sqlParams).Tables[0]; for (int i = 0; i < dtUser.Rows.Count; i++) { User tempUser = new User(); tempUser.UserGUID = TF.DB.DBConvert.ToString(dtUser.Rows[i]["UserGUID"]); tempUser.UserNumber = TF.DB.DBConvert.ToString(dtUser.Rows[i]["UserNumber"]); tempUser.UserName = TF.DB.DBConvert.ToString(dtUser.Rows[i]["UserName"]); tempUser.NameJP = TF.DB.DBConvert.ToString(dtUser.Rows[i]["NameJP"]); tempUser.TelNumber = TF.DB.DBConvert.ToString(dtUser.Rows[i]["TelNumber"]); tempUser.PostID = TF.DB.DBConvert.ToString(dtUser.Rows[i]["PostID"]); tempUser.PostName = TF.DB.DBConvert.ToString(dtUser.Rows[i]["PostName"]); tempUser.DeptID = TF.DB.DBConvert.ToString(dtUser.Rows[i]["DeptID"]); tempUser.DeptName = TF.DB.DBConvert.ToString(dtUser.Rows[i]["DeptName"]); tempUser.DeptFullName = TF.DB.DBConvert.ToString(dtUser.Rows[i]["DeptFullName"]); u.UserInfo.Add(tempUser); } ; strSql = "select * from TAB_Org_User_Feature where UserNumber = @UserNumber order by FeatureType,FeatureIndex"; sqlParams = new SqlParameter[] { new SqlParameter("UserNumber", Key) }; DataTable dtFeature = TF.DB.DBUtility.SqlHelper.ExecuteDataset(Conn, CommandType.Text, strSql, sqlParams).Tables[0]; for (int i = 0; i < dtFeature.Rows.Count; i++) { UserFeature tempFeature = new UserFeature(); tempFeature.UserNumber = TF.DB.DBConvert.ToString(dtFeature.Rows[i]["UserNumber"]); if (!DBNull.Value.Equals(dtFeature.Rows[i]["FeatureContent"])) { tempFeature.FeatureContent = Convert.ToBase64String((byte[])dtFeature.Rows[i]["FeatureContent"]); } tempFeature.FeatureIndex = TF.DB.DBConvert.ToInt32(dtFeature.Rows[i]["FeatureIndex"]); tempFeature.FeatureType = TF.DB.DBConvert.ToInt32(dtFeature.Rows[i]["FeatureType"]); u.UserFeatures.Add(tempFeature); } JsonString = Newtonsoft.Json.JsonConvert.SerializeObject(u); return(JsonString); }
private async Task GenData(AppUser user) { var random = new Random(); var features = await _context.Features.Include(x => x.FeatureDetails).ToListAsync(); var userFeatures = new List <UserFeature>(); var searchFeatures = new List <SearchFeature>(); foreach (var item in features) { var featureDetailId = item.FeatureDetails.ToList()[random.Next(item.FeatureDetails.Count)].Id; var uf = new UserFeature() { FeatureDetailId = featureDetailId, UserId = user.Id, FeatureId = item.Id }; userFeatures.Add(uf); if (item.IsSearchFeature) { featureDetailId = item.FeatureDetails.ToList()[random.Next(item.FeatureDetails.Count)].Id; var searchfeature = new SearchFeature() { FeatureDetailId = featureDetailId, UserId = user.Id, FeatureId = item.Id }; searchFeatures.Add(searchfeature); } } _context.UserFeatures.AddRange(userFeatures); _context.SearchFeatures.AddRange(searchFeatures); await _context.SaveChangesAsync(); }
public void Run() { using (AliRecommend2DataEntities db = new AliRecommend2DataEntities()) { ((IObjectContextAdapter)db).ObjectContext.CommandTimeout = 600; long startTime = DateTime.Now.Ticks; var data = db.T_UserAction.Where(d => d.actiondate >= StartDate && d.actiondate < PredictDate).ToList(); Console.WriteLine("数据库数据读取完毕,正在进行处理中..."); FeatureCollection features = new FeatureCollection(); features.UpdateOnlineItemSet(db); Console.WriteLine("正在读取正例数据..."); features.UpdatePositiveSet(db, PredictDate); var categories = data.GroupBy(d => d.category); Console.WriteLine("正在添加类别特征..."); foreach (var categoryData in categories) { CategoryFeature categoryFeature = new CategoryFeature(categoryData.Key, PredictDate); categoryFeature.Update(categoryData); features.AddCategoryFeature(categoryFeature); } var items = data.GroupBy(d => d.itemid); Console.WriteLine("正在添加商品特征..."); //按商品分组,itemData是每个商品的所有记录 foreach (var itemData in items) { ItemFeature itemFeature = new ItemFeature(itemData.Key, PredictDate); itemFeature.Update(itemData); itemFeature.IsOnline = features.CheckIsOnline(itemFeature.Id); //向ItemFeature绑定CategoryFeature itemFeature.CategoryFeature = features.CategoryFeatureDict[itemFeature.CategoryId]; features.AddItemFeature(itemFeature); } var users = data.GroupBy(d => d.userid); Console.WriteLine("正在添加用户相关特征..."); foreach (var userData in users) { UserFeature userFeature = new UserFeature(userData.Key, PredictDate); userFeature.Update(userData); features.AddUserFeature(userFeature); var userCategories = userData.GroupBy(d => d.category); foreach (var userCategoryData in userCategories) { UserCategoryFeature userCategoryFeature = new UserCategoryFeature(userCategoryData.Key, PredictDate); userCategoryFeature.Update(userCategoryData); userFeature.UserCategorieDict.Add(userCategoryFeature.CategoryId, userCategoryFeature); features.AddUserCategoryFeature(userCategoryFeature); } var userItems = userData.GroupBy(d => d.itemid); foreach (var userItemData in userItems) { UserItemFeature userItemFeature = new UserItemFeature(userFeature, userItemData.Key); userItemFeature.Update(userItemData); //是否是正例 userItemFeature.Label = features.CheckIsPositive(userItemFeature.UserId, userItemFeature.ItemId); //向UserItemFeature 绑定ItemFeature userItemFeature.ItemFeature = features.ItemFeatureDict[userItemFeature.ItemId]; //向UserItemFeature绑定UserCategoryFeature userItemFeature.UserCategoryFeature = userItemFeature.UserFeature.UserCategorieDict[userItemFeature.ItemFeature.CategoryId]; features.AddUserItemFeature(userItemFeature); } } if (Global.Normalized) { features.Normalize(); } string dirname = Global.GetDirectoryName(); if (Directory.Exists(dirname) == false) { Directory.CreateDirectory(dirname); } string filename = dirname + Global.GetFileName(PredictDate); features.Write(filename); Console.WriteLine("运行完毕,耗时{0}s", (DateTime.Now.Ticks - startTime) / 10000000); Console.WriteLine("{0} 输出完毕。", filename); } //Console.ReadKey(); }
public PermitAttribute(UserFeature feature, Permissions permissions) { this.feature = feature; this.permissions = permissions; }