/// <summary>
        /// Will save the details of authorized representative 
        /// </summary>
        /// <param name="authRepDetails"></param>
        public int SaveAndUpdateAuthRepDetailsForCustomer(AuthRepDTO authRepDetails)
        {
            int authRepId = 0;
            authrepdetail authrepdetailEntity = new authrepdetail();
            AutoMapper.Mapper.Map(authRepDetails, authrepdetailEntity);

            if (authRepDetails.AuthRep_Id == 0)
            {
                ESalesUnityContainer.Container.Resolve<IGenericRepository<authrepdetail>>().Save(authrepdetailEntity);
            }
            else
            {
                ESalesUnityContainer.Container.Resolve<IGenericRepository<authrepdetail>>().Update(authrepdetailEntity);
            }

            authRepId = authrepdetailEntity.AuthRep_Id;

            //return the details
            return authRepId;
        }
     private void Fixupauthrepdetail(authrepdetail previousValue)
     {
         if (previousValue != null && previousValue.authrepdocdetails.Contains(this))
         {
             previousValue.authrepdocdetails.Remove(this);
         }
 
         if (authrepdetail != null)
         {
             if (!authrepdetail.authrepdocdetails.Contains(this))
             {
                 authrepdetail.authrepdocdetails.Add(this);
             }
             if (AuthRep_Doc_AuthId != authrepdetail.AuthRep_Id)
             {
                 AuthRep_Doc_AuthId = authrepdetail.AuthRep_Id;
             }
         }
     }
        /// <summary>
        /// Delete Auth Rep
        /// </summary>
        /// <param name="truckDetails"></param>
        public void DeleteAuthRep(AuthRepDTO authRepDetails)
        {
            using (TransactionScope transactionScope = new TransactionScope())
            {
                IList<AuthRepDocDetailDTO> lstAuthRepDocDetails = GetAuthRepDocDetailsByAuthRepId(authRepDetails.AuthRep_Id);

                (from authRepDocDetail in lstAuthRepDocDetails select authRepDocDetail).Update(
                    authRepDocDetail => authRepDocDetail.AuthRep_Doc_IsDeleted = true);

                foreach (var authRepDocs in lstAuthRepDocDetails)
                {
                    DeleteAuthRepDocDetails(authRepDocs);
                }

                authrepdetail authRepEntity = new authrepdetail();
                AutoMapper.Mapper.Map(authRepDetails, authRepEntity);

                ESalesUnityContainer.Container.Resolve<IGenericRepository<authrepdetail>>().Update(authRepEntity);

                transactionScope.Complete();
            }
        }
        /// <summary>
        /// Update Caution List For AuthRep
        /// </summary>
        /// <param name="authRepDetails"></param>
        /// <returns></returns>
        public int UpdateCautionListForAuthRep(AuthRepDTO authRepDetails)
        {
            authrepdetail authrepdetailEntity = new authrepdetail();
            AutoMapper.Mapper.Map(authRepDetails, authrepdetailEntity);

            ESalesUnityContainer.Container.Resolve<IGenericRepository<authrepdetail>>().Update(authrepdetailEntity);

            //return value
            return authrepdetailEntity.AuthRep_Id;
        }