using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ChudoObuv.Models;
namespace ChudoObuv.Logic
{
///
/// Текущий пользователь и формируемый (еще не подтвержденный) заказ.
///
public static class Session
{
public static User CurrentUser { get; private set; }
///
/// Клиент, для которого формируется заказ: сам пользователь или клиент, выбранный менеджером.
///
public static User OrderClient { get; private set; }
public static List Cart { get; } = new List();
public static bool IsAuthorized => CurrentUser != null;
public static void Login(User user)
{
CurrentUser = user;
OrderClient = user;
Cart.Clear();
}
public static void Logout()
{
CurrentUser = null;
OrderClient = null;
Cart.Clear();
}
public static void StartOrderFor(User client)
{
OrderClient = client;
Cart.Clear();
}
public static void CancelOrder()
{
Cart.Clear();
OrderClient = CurrentUser;
}
///
/// Сколько пар данной товарной позиции уже лежит в формируемом заказе.
///
public static int GetQuantityInCart(int stockItemId)
{
return Cart.Where(item => item.StockItemId == stockItemId).Sum(item => item.Quantity);
}
public static void AddToCart(OrderItem newItem)
{
OrderItem existing = Cart.FirstOrDefault(item => item.StockItemId == newItem.StockItemId);
if (existing != null)
{
existing.Quantity += newItem.Quantity;
}
else
{
Cart.Add(newItem);
}
}
}
}