public async Task <ResponseAC> AddInternetDevice(InternetDeviceAC internetDeviceAC, long userId, string loginUserName)
        {
            ResponseAC responeAC = new ResponseAC();

            if (!await _dbTeleBilling_V01Context.MstInternetdevicedetail.AnyAsync(x => x.Name.ToLower().Trim() == internetDeviceAC.Name.ToLower().Trim() && !x.IsDelete))
            {
                MstInternetdevicedetail mstInternetDeviceDetail = new MstInternetdevicedetail();
                mstInternetDeviceDetail.Name          = internetDeviceAC.Name.Trim();
                mstInternetDeviceDetail.CreatedBy     = userId;
                mstInternetDeviceDetail.CreatedDate   = DateTime.Now;
                mstInternetDeviceDetail.TransactionId = _iLogManagement.GenerateTeleBillingTransctionID();

                await _dbTeleBilling_V01Context.AddAsync(mstInternetDeviceDetail);

                await _dbTeleBilling_V01Context.SaveChangesAsync();

                responeAC.Message    = _iStringConstant.InternetDeviceAddedSuccessfully;
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.AddInternetDevice, loginUserName, userId, "Internet device(" + mstInternetDeviceDetail.Name + ")", (int)EnumList.ActionTemplateTypes.Add, mstInternetDeviceDetail.Id);
            }
            else
            {
                responeAC.Message    = _iStringConstant.InternetDeviceAlreadyExists;
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
            }
            return(responeAC);
        }
        public async Task <ResponseAC> EditInternetDevice(InternetDeviceAC internetDeviceAC, long userId)
        {
            ResponseAC responeAC = new ResponseAC();

            if (!await _dbTeleBilling_V01Context.MstInternetdevicedetail.AnyAsync(x => x.Id != internetDeviceAC.Id && x.Name.ToLower().Trim() == internetDeviceAC.Name.Trim().ToLower() && !x.IsDelete))
            {
                MstInternetdevicedetail mstInternetDeviceDetail = await _dbTeleBilling_V01Context.MstInternetdevicedetail.FirstOrDefaultAsync(x => x.Id == internetDeviceAC.Id && !x.IsDelete);

                #region Transaction Log Entry
                if (mstInternetDeviceDetail.TransactionId == null)
                {
                    mstInternetDeviceDetail.TransactionId = _iLogManagement.GenerateTeleBillingTransctionID();
                }

                var jsonSerailzeObj = JsonConvert.SerializeObject(mstInternetDeviceDetail);
                await _iLogManagement.SaveRequestTraseLog(Convert.ToInt64(mstInternetDeviceDetail.TransactionId), userId, Convert.ToInt64(EnumList.TransactionTraseLog.UpdateRecord), jsonSerailzeObj);

                #endregion

                mstInternetDeviceDetail.Name        = internetDeviceAC.Name.Trim();
                mstInternetDeviceDetail.UpdatedBy   = userId;
                mstInternetDeviceDetail.UpdatedDate = DateTime.Now;
                _dbTeleBilling_V01Context.Update(mstInternetDeviceDetail);
                await _dbTeleBilling_V01Context.SaveChangesAsync();

                responeAC.Message    = _iStringConstant.InternetDeviceUpdateSuccessfully;
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
            }
            else
            {
                responeAC.Message    = _iStringConstant.InternetDeviceAlreadyExists;
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
            }
            return(responeAC);
        }
        public async Task <bool> DeleteInternetDevice(long id, long userId, string loginUserName)
        {
            List <Providerpackage> providerpackages = await _dbTeleBilling_V01Context.Providerpackage.Where(x => x.InternetDeviceId == id && x.IsActive && !x.IsDelete).ToListAsync();

            if (!providerpackages.Any())
            {
                MstInternetdevicedetail mstInternetDeviceDetail = await _dbTeleBilling_V01Context.MstInternetdevicedetail.FirstOrDefaultAsync(x => x.Id == id);

                mstInternetDeviceDetail.IsDelete    = true;
                mstInternetDeviceDetail.UpdatedBy   = userId;
                mstInternetDeviceDetail.UpdatedDate = DateTime.Now;
                _dbTeleBilling_V01Context.Update(mstInternetDeviceDetail);
                await _dbTeleBilling_V01Context.SaveChangesAsync();

                await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.DeleteInternetDevice, loginUserName, userId, "Internet device(" + mstInternetDeviceDetail.Name + ")", (int)EnumList.ActionTemplateTypes.Delete, mstInternetDeviceDetail.Id);

                return(true);
            }
            return(false);
        }
        public async Task <InternetDeviceAC> GetInternetDeviceById(long id)
        {
            MstInternetdevicedetail mstInternetDeviceDetail = await _dbTeleBilling_V01Context.MstInternetdevicedetail.FirstOrDefaultAsync(x => !x.IsDelete && x.Id == id);

            return(_mapper.Map <InternetDeviceAC>(mstInternetDeviceDetail));
        }