public ActionResult Delete(int id) { UserBag bag = db.UserBags.Find(id); db.UserBags.Remove(bag); db.SaveChanges(); return(RedirectToAction("Index")); }
public void Add_DuplicateItem_ThrowsDuplicateItemException() { // arrange var userBag = new UserBag(); var baggedItem = CreateBaggedItem(1); // act userBag.AddItem(baggedItem); // assert Assert.Throws <DuplicateItemException>(() => userBag.AddItem(baggedItem)); }
public void Add_Items_AreContained() { // arrange var userBag = new UserBag(); var baggedItems = CreateListOfBaggedItems(); // act userBag.AddItems(baggedItems); // assert Assert.AreEqual(baggedItems, userBag.Items); }
public void Add_DuplicateItems_ContinueWithoutAdding() { // arrange var userBag = new UserBag(); var baggedItems = new[] { CreateBaggedItem(1), CreateBaggedItem(1) }; // act userBag.AddItems(baggedItems); // assert Assert.AreEqual(1, userBag.Items.Count); }
public void Add_Items_ComputeTotalPrice(float[] prices, int[] quantities, float expected) { // arrange var userBag = new UserBag(); var baggedItems = prices.Select((price, i) => CreateBaggedItem(i, price, quantities[i])); userBag.AddItems(baggedItems); // act var totalPrice = userBag.ComputeTotalPrice(); // assert Assert.AreEqual(totalPrice, expected); }
/// <summary> /// 取得背包列表 /// </summary> /// <param name="userId"></param> /// <returns></returns> public UserBag GetBagList(int userId) { UserBag userBag = new UserBag(); var checkUser = _context.User.Where(x => x.Id == userId); if (checkUser == null) { return(userBag); } userBag.userId = userId; var userProduct = _context.UserProduct.Include(x => x.Product).Where(x => x.UserId == userId).ToList(); userBag.BagItem = _mapper.Map <List <UserProduct>, List <BagItem> >(userProduct); return(userBag); }
public OutputDtoQueryUserBaggedItem GetByUserId(int userId) { var baggedItems = _baggedItemRepository.GetByUserId(userId); var userBag = new UserBag(); userBag.AddItems(baggedItems); var bagOwner = _userRepository.GetById(userId); var dtoBaggedItems = userBag.Items .Select(baggedItem => new OutputDtoQueryUserBaggedItem.BaggedItem { Id = baggedItem.Id, AddedAt = baggedItem.AddedAt, Quantity = baggedItem.Quantity, Size = baggedItem.Size, BagItem = new OutputDtoQueryUserBaggedItem.BaggedItem.Item { Id = baggedItem.AddedItem.Id, Label = baggedItem.AddedItem.Label, Price = baggedItem.AddedItem.Price * baggedItem.Quantity, ImageItem = baggedItem.AddedItem.ImageItem, DescriptionItem = baggedItem.AddedItem.DescriptionItem } }); return(new OutputDtoQueryUserBaggedItem { BagOwner = new OutputDtoQueryUserBaggedItem.User { Id = bagOwner.Id, Firstname = bagOwner.Firstname, Lastname = bagOwner.Lastname }, TotalPrice = userBag.ComputeTotalPrice(), Items = dtoBaggedItems }); }
public ActionResult Create(int product_id, int product_img_id, string product_pivot_id, int product_count) { UserBag new_bag = new UserBag(); new_bag.user_bag_user_id = LoginRegisterController.log_user.user_id; new_bag.user_bag_product_id = product_id; new_bag.user_bag_product_img_id = product_img_id; if (product_pivot_id == "") { new_bag.user_bag_product_pivot_id = null; } else { int y = Convert.ToInt32(product_pivot_id); var x = db.ProductPivotSizes.Where(s => s.product_pivot_img_id == product_img_id && s.product_pivot_size_id == y).First().product_pivot_id; new_bag.user_bag_product_pivot_id = x; } new_bag.user_bag_product_count = product_count; db.UserBags.Add(new_bag); db.SaveChanges(); return(RedirectToAction("Index")); }
// Helper static methods (DTO instances) public static OutputDtoQueryUserBaggedItem CreateOutputDtoQueryUserBaggedItem(int i, int listSize) { var userBag = new UserBag(); userBag.AddItems(CreateListOfBaggedItems(listSize)); var dtoBaggedItems = userBag.Items .Select(baggedItem => new OutputDtoQueryUserBaggedItem.BaggedItem { Id = baggedItem.Id, AddedAt = baggedItem.AddedAt, Quantity = baggedItem.Quantity, Size = baggedItem.Size, BagItem = new OutputDtoQueryUserBaggedItem.BaggedItem.Item { Id = baggedItem.AddedItem.Id, Label = baggedItem.AddedItem.Label, Price = baggedItem.AddedItem.Price * baggedItem.Quantity, ImageItem = baggedItem.AddedItem.ImageItem, DescriptionItem = baggedItem.AddedItem.DescriptionItem } }); var bagOwner = CreateUser(1); return(new OutputDtoQueryUserBaggedItem { BagOwner = new OutputDtoQueryUserBaggedItem.User { Id = bagOwner.Id, Firstname = bagOwner.Firstname, Lastname = bagOwner.Lastname }, TotalPrice = userBag.ComputeTotalPrice(), Items = dtoBaggedItems }); }
public UserBag showProfile(int?id) { using (var db = DatabaseFactory.OpenDbConnection()) { if (id == null) { id = NimbusUser.UserId; } var user = db.SelectParam <User>(usr => usr.Id == id).FirstOrDefault(); if (user == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } UserBag userBag = new UserBag(); userBag.Id = user.Id; userBag.About = user.About; userBag.AvatarUrl = user.AvatarUrl; userBag.BirthDate = user.BirthDate; userBag.City = user.City; userBag.Country = user.Country; userBag.Experience = user.Experience; userBag.FirstName = user.FirstName; userBag.Interest = user.Interest; userBag.LastName = user.LastName; userBag.Occupation = user.Occupation; userBag.IsUserFacebook = user.Password.StartsWith("nsp") ? false : true; userBag.State = user.State; userBag.Age = (int)Math.Floor((DateTime.Now.Subtract(user.BirthDate).Days) / 365.25); var roles = db.Where <Channel>(c => c.Visible == true && c.OrganizationId == NimbusOrganization.Id) .Select(c => db.Where <Role>(rl => rl.UserId == id && rl.ChannelId == c.Id && (rl.IsOwner == true || rl.ChannelMagager == true || rl.MessageManager == true || rl.ModeratorManager == true || rl.TopicManager == true || rl.UserManager == true)).FirstOrDefault()).Where(r => r != null); int pointsChn = 0; int hundredFollowers = 0; int pointsTpc = 0; int fiftyFollowers = 0; int pointsCmt = 0; if (roles.Count() > 0) { pointsChn = roles.Select(c => c.UserId == id && c.IsOwner == true).Count() * 50; pointsChn = pointsChn + (roles.Where(c => c.IsOwner == false && c.UserId == id && c.Accepted == true) .Select(c => c.ChannelMagager == true || c.MessageManager == true || c.ModeratorManager == true || c.TopicManager == true || c.UserManager == true) .Count() * 25); pointsTpc = roles.Sum(r => db.Where <Topic>(t => t.AuthorId == r.UserId && t.ChannelId == r.ChannelId && t.Visibility == true).Count()); pointsCmt = db.Where <Comment>(c => c.UserId == id && c.Visible == true).Count(); } pointsCmt = pointsCmt * 1; pointsTpc = pointsTpc * 30; fiftyFollowers = db.SqlScalar <int>(@"SELECT COUNT(*) AS [value] FROM [Channel] AS [CH] WHERE ((( SELECT COUNT(*) FROM [ChannelUser] AS [CS] WHERE ([CS].[ChannelId] = [CH].[Id]) AND ([CS].[Follow] = 1) AND ([CS].[Accepted] = 1) AND ([CS].[Visible] = 1) )) > 50) AND ([CH].[OwnerId] = @OwnerId) AND ([CH].[Visible] = 1)", new { OwnerId = id }); hundredFollowers = db.SqlScalar <int>(@"SELECT COUNT(*) AS [value] FROM [Channel] AS [CH] WHERE ((( SELECT COUNT(*) FROM [ChannelUser] AS [CS] WHERE ([CS].[ChannelId] = [CH].[Id]) AND ([CS].[Follow] = 1) AND ([CS].[Accepted] = 1) AND ([CS].[Visible] = 1) )) > 100) AND ([CH].[OwnerId] = @OwnerId) AND ([CH].[Visible] = 1)", new { OwnerId = id }); if (fiftyFollowers > 0) { fiftyFollowers = fiftyFollowers * 50; } if (hundredFollowers > 0) { hundredFollowers = hundredFollowers * 100; } userBag.PointsForChannel = pointsChn; userBag.PointsForComment = pointsCmt; userBag.PontsForTopic = pointsTpc; userBag.Interaction = pointsTpc + pointsCmt + pointsChn + fiftyFollowers + hundredFollowers + 100; //100 = pq o usuário se cadastrou no nimbus //throw http exception if (userBag == null) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "this item does not exist")); } user.Password = ""; return(userBag); } }
public static async Task ChangeWealth(long uid, int propId, int propNum, string reason, Room room = null) { //Log.Debug("ChangeWealth: uid = " + uid + " propId = " + propId + "propNum = " + propNum); try { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); switch (propId) { // 金币 case 1: { List <PlayerBaseInfo> playerBaseInfos = await proxyComponent.QueryJson <PlayerBaseInfo>($"{{_id:{uid}}}"); playerBaseInfos[0].GoldNum += propNum; if (playerBaseInfos[0].GoldNum < 0) { playerBaseInfos[0].GoldNum = 0; } bool isSendReliefGold = false; // 救济金 if (playerBaseInfos[0].GoldNum < 2000) { List <Log_ReliefGold> log_reliefGolds = await proxyComponent.QueryJson <Log_ReliefGold>($"{{CreateTime:/^{DateTime.Now.GetCurrentDay()}/,Uid:{uid}}}"); if (log_reliefGolds.Count < 3) { isSendReliefGold = true; int gold = 20000; playerBaseInfos[0].GoldNum += gold; Log_ReliefGold log_ReliefGold = ComponentFactory.CreateWithId <Log_ReliefGold>(IdGenerater.GenerateId()); log_ReliefGold.Uid = uid; log_ReliefGold.reward = "1:" + gold; await proxyComponent.Save(log_ReliefGold); // 通知玩家 { Actor_ReliefGold actor = new Actor_ReliefGold(); if (log_reliefGolds.Count == 0) { actor.Reward = "今日第一次赠送金币:" + gold; } else if (log_reliefGolds.Count == 1) { actor.Reward = "今日第二次赠送金币:" + gold; } else if (log_reliefGolds.Count == 2) { actor.Reward = "今日最后一次赠送金币:" + gold; } if (room != null) { Gamer gamer = room.Get(uid); room.GamerBroadcast(gamer, actor); } } } } await proxyComponent.Save(playerBaseInfos[0]); if (!isSendReliefGold) { await RecordWeekRankLog(uid, propNum, 0); } } break; // 元宝 case 2: { List <PlayerBaseInfo> playerBaseInfos = await proxyComponent.QueryJson <PlayerBaseInfo>($"{{_id:{uid}}}"); playerBaseInfos[0].WingNum += propNum; if (playerBaseInfos[0].WingNum < 0) { playerBaseInfos[0].WingNum = 0; } await proxyComponent.Save(playerBaseInfos[0]); } break; // 话费 case 3: { List <PlayerBaseInfo> playerBaseInfos = await proxyComponent.QueryJson <PlayerBaseInfo>($"{{_id:{uid}}}"); playerBaseInfos[0].HuaFeiNum += propNum; if (playerBaseInfos[0].HuaFeiNum < 0) { playerBaseInfos[0].HuaFeiNum = 0; } await proxyComponent.Save(playerBaseInfos[0]); } break; //积分 case 4: { List <PlayerBaseInfo> playerBaseInfos = await proxyComponent.QueryJson <PlayerBaseInfo>($"{{_id:{uid}}}"); playerBaseInfos[0].Score += propNum; await proxyComponent.Save(playerBaseInfos[0]); } break; // 其他道具 default: { List <UserBag> userBags = await proxyComponent.QueryJson <UserBag>($"{{UId:{uid},BagId:{propId}}}"); if (userBags.Count == 0) { UserBag itemInfo = ComponentFactory.CreateWithId <UserBag>(IdGenerater.GenerateId()); itemInfo.BagId = propId; itemInfo.UId = uid; itemInfo.Count = propNum; await proxyComponent.Save(itemInfo); } else { userBags[0].Count += propNum; if (userBags[0].Count < 0) { userBags[0].Count = 0; } await proxyComponent.Save(userBags[0]); } } break; } await Log_ChangeWealth(uid, propId, propNum, reason); } catch (Exception ex) { Log.Error(ex); } }