Пример #1
0
        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());
        }
Пример #2
0
        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);
            }
        }