public IActionResult Post(AddedHistory addedHistory) { string userEmail = HttpContext.User.Identity.Name; List <Cart> userCart = new List <Cart>(); userCart = db.Carts.Where(c => c.UserId == userEmail).ToList(); List <History> userHistory = new List <History>(); userHistory = db.Histories.Where(h => h.UserId == userEmail).ToList(); db.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; if ((userCart != null) && (userHistory != null)) { var req = JsonConvert.DeserializeObject <List <AddedHistoryItem> >(addedHistory.List); List <ListItem> response = new List <ListItem>(); foreach (var item in req) { Cake cake = db.Catalog.FirstOrDefault(c => c.Id == item.Id); ListItem tempCake = new ListItem { Cake = cake, Count = item.Count }; db.Histories.Add(new History { UserId = userEmail, CakeId = item.Id, Count = item.Count }); db.SaveChanges(); response.Add(tempCake); } foreach (var c in userCart) { for (int i = 0; i < c.Count; i++) { CookingCake cookingCake = new CookingCake { CakeId = c.CakeId }; db.CookingList.Add(cookingCake); } } db.SaveChanges(); foreach (var c in userCart) { db.Carts.Remove(c); } db.SaveChanges(); return(Ok(response)); } return(NotFound()); }
public void AddBattleHistory(UserProfile user, HISTORY_TYPE type) { var str = DateTime.Now.ToString("MM/dd HH:mm") + Environment.NewLine; switch (type) { case HISTORY_TYPE.WIN_OFFLINE: str += $"{user.DisplayName}を撃退" + Environment.NewLine; str += $"「{user.LoseComment}」" + Environment.NewLine; break; case HISTORY_TYPE.LOSE_OFFLINE: str += $"{user.DisplayName}から襲撃" + Environment.NewLine; str += $"「{user.WinComment}」" + Environment.NewLine; break; case HISTORY_TYPE.WIN: str += $"{user.DisplayName}を撃破" + Environment.NewLine; str += $"「{user.LoseComment}」" + Environment.NewLine; ContinuousWin++; ContinuousLose = 0; break; case HISTORY_TYPE.LOSE: str += $"{user.DisplayName}に敗退" + Environment.NewLine; str += $"「{user.WinComment}」" + Environment.NewLine; ContinuousWin = 0; ContinuousLose++; break; } History.Insert(0, str); if (History.Count >= MAX_HISTOTY) { History.RemoveAt(MAX_HISTOTY - 1); } AddedHistory.Add(str); if (AddedHistory.Count >= MAX_HISTOTY) { AddedHistory.RemoveAt(0); } }