using Ism.ShoppingCart.DataLayer;
using Ism.ShoppingCart.DataLayer.Contracts;
using Ism.ShoppingCart.Domain;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ism.ShoppingCart.DataLayer
{
public class CartDAO : ICartDAO
{
private ISM_DBEntities db = new ISM_DBEntities();
MapperConfiguration cartitemmapper = new MapperConfiguration(config => config.CreateMap<CartItemModel, CartItem>());
private IMapper icartitemmapper;
MapperConfiguration modeltocartmapper = new MapperConfiguration(config => config.CreateMap<CartModel, Cart>());
private IMapper imodeltocartmapper;
public void CreatCart(CartModel model)
{
imodeltocartmapper = modeltocartmapper.CreateMapper();
Cart cart = imodeltocartmapper.Map<CartModel, Cart>(model);
db.Carts.Add(cart);
db.SaveChanges();
}
public void InsertCartItems(CartItemModel model)
{
icartitemmapper = cartitemmapper.CreateMapper();
CartItem cartitem = icartitemmapper.Map<CartItemModel, CartItem>(model);
db.CartItems.Add(cartitem);
db.SaveChanges();
}
public void DeleteCartItem(int? Id)
{
CartItem cartItem = db.CartItems.Find(Id);
db.CartItems.Remove(cartItem);
db.SaveChanges();
}
public List<CartViewModel> GetCartItemByCartID(Guid cartID)
{
List<CartViewModel> itemList = new List<CartViewModel>();
List<CartItem> listitems = db.CartItems.Where(x => x.CartID == cartID).ToList();
foreach (var item in listitems)
{
CartViewModel obj = new CartViewModel();
obj.CartID = item.CartID;
obj.ID = item.ID;
obj.ItemID = item.ItemID;
obj.ItemName = item.Item.ItemName;
obj.Price = item.Item.Price;
obj.Qty = item.Qty;
itemList.Add(obj);
}
return itemList;
}
public void CancelOrder(Guid cartID)
{
List<CartItem> cartItem = db.CartItems.Where(x => x.CartID == cartID).ToList();
foreach (var item in cartItem)
{
db.CartItems.Remove(item);
db.SaveChanges();
}
Cart cart = db.Carts.Find(cartID);
db.Carts.Remove(cart);
db.SaveChanges();
}
public void ConfirmOrder(Guid cartID)
{
Cart cart = db.Carts.Find(cartID);
cart.Status="1";
using (var context = new ISM_DBEntities())
{
using (DbContextTransaction transaction = context.Database.BeginTransaction())
{
try
{
db.Entry(cart).State = EntityState.Modified;
db.SaveChanges();
List<CartItem> cartItem = db.CartItems.Where(x => x.CartID == cartID).ToList();
foreach (var item in cartItem)
{
Item itemobj = db.Items.Where(x => x.ID == item.ItemID).FirstOrDefault();
itemobj.Qty = itemobj.Qty - item.Qty;
db.Entry(itemobj).State = EntityState.Modified;
db.SaveChanges();
}
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
}
}
}
}
using Ism.ShoppingCart.DataLayer.Contracts;
using Ism.ShoppingCart.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
namespace Ism.ShoppingCart.DataLayer
{
public class ItemDAO : IItemDAO
{
private ISM_DBEntities db = new ISM_DBEntities();
MapperConfiguration mapper = new MapperConfiguration(config => config.CreateMap<Item, ItemModel>());
private IMapper imapper;
MapperConfiguration categorymapper = new MapperConfiguration(config => config.CreateMap<Category, CategoryModel>());
private IMapper icategorymapper;
public List<ItemModel> GetAllItems(int? id)
{
imapper = mapper.CreateMapper();
List<ItemModel> lst = new List<ItemModel>();
if (id != null)
{
lst = imapper.Map<List<Item>, List<ItemModel>>(db.Items.Where(x => x.CategoryID == id).ToList());
}
else
{
lst = imapper.Map<List<Item>, List<ItemModel>>(db.Items.ToList());
}
return lst;
}
public ItemModel GetItemByID(int? Id)
{
imapper = mapper.CreateMapper();
ItemModel item = imapper.Map<Item, ItemModel>(db.Items.Find(Id));
return item;
}
public List<CategoryModel> GetCategories()
{
icategorymapper = categorymapper.CreateMapper();
return icategorymapper.Map<List<Category>, List<CategoryModel>>(db.Categories.ToList());
}
}
}
No comments:
Post a Comment