/// <summary>
        /// Save and Update AmeBlock
        /// </summary>
        /// <param name="ameBlockDetail"></param>
        /// <returns></returns>
        public int SaveAndUpdateAmeBlock(AmeBlockDTO ameBlockDetail)
        {
            ameblock ameblockEntity = new ameblock();
            AutoMapper.Mapper.Map(ameBlockDetail, ameblockEntity);

            if (ameBlockDetail.Blocks_Id > 0)
            {
                ESalesUnityContainer.Container.Resolve<IGenericRepository<ameblock>>().Update(ameblockEntity);
            }
            else
            {
                ESalesUnityContainer.Container.Resolve<IGenericRepository<ameblock>>().Save(ameblockEntity);
            }
            return ameblockEntity.Blocks_Id;
        }
    protected void grdBlock_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.Equals(Globals.GridCommandEvents.ADDNEW))
        {
            if (Page.IsValid)
            {
                GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
                AmeBlockDTO ameBlockDetails = new AmeBlockDTO();
                ameBlockDetails.Blocks_Name = ((TextBox)row.FindControl("txtNewBlock")).Text;
                ameBlockDetails.Blocks_CreatedDate = DateTime.Now;
                ameBlockDetails.Blocks_CreatedBy = GetCurrentUserId();

                //Saves Ame block details in database
                int blockId = ESalesUnityContainer.Container.Resolve<IAmeBlockService>().SaveAndUpdateAmeBlock(ameBlockDetails);
                ucMessageBoxForGrid.ShowMessage(Messages.AMEBlockSavedSuccessfully);
            }
        }
    }
    protected void grdBlock_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        if (Page.IsValid)
        {            
            AmeBlockDTO ameBlockDetails = new AmeBlockDTO();
            
            //Gets Ame block details by block id for update
            ameBlockDetails = ESalesUnityContainer.Container.Resolve<IAmeBlockService>()
                .GetAmeBlockListByBlockId(Convert.ToInt32(grdBlock.DataKeys[e.RowIndex].Value));
            
            //Initializes DTO properties with control values
            ameBlockDetails.Blocks_Name = ((TextBox)grdBlock.Rows[e.RowIndex].FindControl("txtBlock")).Text;
            ameBlockDetails.Blocks_LastUpdatedDate = DateTime.Now;
            ameBlockDetails.Blocks_CreatedBy = GetCurrentUserId();

            //Update Ame block details in database
            int ameBlockId = ESalesUnityContainer.Container.Resolve<IAmeBlockService>().SaveAndUpdateAmeBlock(ameBlockDetails);
            ucMessageBoxForGrid.ShowMessage(Messages.AMEBlockUpdatedSuccessfully);
        }
    }
 /// <summary>
 /// Get AmeBlock list by BlockId
 /// </summary>
 /// <param name="blockId"></param>
 /// <returns></returns>
 public AmeBlockDTO GetAmeBlockListByBlockId(int blockId)
 {
     AmeBlockDTO objAMEBlockDTO = new AmeBlockDTO();
     AutoMapper.Mapper.Map(ESalesUnityContainer.Container.Resolve<IGenericRepository<ameblock>>()
         .GetSingle(item => item.Blocks_Id == blockId), objAMEBlockDTO);
     return objAMEBlockDTO;
 }
        /// <summary>
        /// To check wheather a block exists or not
        /// </summary>
        /// <param name="blockId"></param>
        /// <param name="blockName"></param>
        /// <returns></returns>
        public bool AmeBlockExists(int blockId, string blockName)
        {
            AmeBlockDTO ameBlockDetails = new AmeBlockDTO();
            bool result = false;

            if (blockId == 0)
            {
                AutoMapper.Mapper.Map(ESalesUnityContainer.Container.Resolve<IGenericRepository<ameblock>>()
                    .GetSingle(item => item.Blocks_Name == blockName && item.Blocks_IsDeleted == false), ameBlockDetails);
            }
            else
            {
                AutoMapper.Mapper.Map(ESalesUnityContainer.Container.Resolve<IGenericRepository<ameblock>>()
                    .GetSingle(item => item.Blocks_Name == blockName && item.Blocks_IsDeleted == false
                        && item.Blocks_Id != blockId), ameBlockDetails);
            }

            if (ameBlockDetails.Blocks_Id > 0)
            {
                result = true;
            }
            return result;
        }