Thursday, February 1, 2018

How to Use AutoMapper

using AutoMapper;
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

BulkInsert

public void InsertCaller()         {             DataSet ds = new DataSet();             ds.ReadXml("D:\\Sample\\Items");     ...