public async Task <MstEmployee> checkEmployeeIsActive(string emailOrPfNumber)
        {
            MstEmployee mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FirstOrDefaultAsync(x => !x.IsDelete && x.EmailId.Trim() == emailOrPfNumber.Trim());

            if (mstEmployee == null)
            {
                mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FirstOrDefaultAsync(x => !x.IsDelete && x.EmpPfnumber.Trim() == emailOrPfNumber.Trim());
            }
            return(mstEmployee);
        }
        public async Task <string> GetLineManagerEmail(string UserId)
        {
            long        Userid          = Convert.ToInt64(UserId);
            string      LineManageEmail = string.Empty;
            MstEmployee mstEmployee     = await _dbTeleBilling_V01Context.MstEmployee.FirstOrDefaultAsync(x => !x.IsDelete && x.IsActive && x.UserId == Userid);

            if (mstEmployee != null)
            {
                LineManageEmail = mstEmployee.EmailId;
            }
            return(LineManageEmail);
        }
        public async Task <EmployeeProfileAC> GetUserProfile(long userId)
        {
            EmployeeProfileAC responseAc = new EmployeeProfileAC();

            try
            {
                MstEmployee emp = await _dbTeleBilling_V01Context.MstEmployee.FindAsync(userId);

                EmployeeProfileDetailAC userProfile     = new EmployeeProfileDetailAC();
                EmployeeProfileDetailSP userProfileData = new EmployeeProfileDetailSP();

                SortedList sl = new SortedList();
                sl.Add("userId", userId);

                DataSet ds = _objDalmysql.GetDataSet("uspGetUserProfile", sl);
                if (ds != null)
                {
                    if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0] != null)
                    {
                        userProfileData = _objDal.ConvertDataTableToGenericList <EmployeeProfileDetailSP>(ds.Tables[0]).FirstOrDefault();
                    }
                    if (ds.Tables.Count > 1 && ds.Tables[1].Rows.Count > 0 && ds.Tables[1] != null)
                    {
                        userProfileData.employeeTelephoneDetails = _objDal.ConvertDataTableToGenericList <EmployeeTelephoneDetailsAC>(ds.Tables[1]);
                    }
                }

                if (userProfileData.UserId > 0)
                {
                    userProfile = _mapper.Map <EmployeeProfileDetailAC>(userProfileData);

                    responseAc.Message         = _iStringConstant.DataFound;
                    responseAc.StatusCode      = Convert.ToInt16(EnumList.ResponseType.Success);
                    responseAc.UserProfileData = userProfile;
                    return(responseAc);
                }
                else
                {
                    responseAc.Message    = _iStringConstant.DataNotFound;
                    responseAc.StatusCode = Convert.ToInt16(EnumList.ResponseType.NotFound);
                    return(responseAc);
                }
            }
            catch (Exception e)
            {
                responseAc.Message    = "Error :" + e.Message;
                responseAc.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                return(responseAc);
            }
        }
示例#4
0
        public int postEmployee(MstEmployee addEmployee)
        {
            try
            {
                Data.MstEmployee newEmployee = new Data.MstEmployee();


                db.MstEmployees.InsertOnSubmit(newEmployee);
                db.SubmitChanges();
                return(newEmployee.Id);
            }
            catch
            {
                return(0);
            }
        }
        public async Task <ResponseAC> resetPassword(EmployeeProfileDetailAC employeeProfileDetailAC, long userId)
        {
            ResponseAC  responeAC   = new ResponseAC();
            MstEmployee mstEmployee = new MstEmployee();

            try
            {
                mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FindAsync(employeeProfileDetailAC.UserId);

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

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

                    #endregion

                    mstEmployee.Password    = employeeProfileDetailAC.NewPassword;
                    mstEmployee.UpdatedBy   = userId;
                    mstEmployee.UpdatedDate = DateTime.Now;

                    _dbTeleBilling_V01Context.Update(mstEmployee);
                    await _dbTeleBilling_V01Context.SaveChangesAsync();

                    responeAC.Message    = "Password Reset Successfully";
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.ResetPassword, mstEmployee.FullName, userId, string.Empty, (int)EnumList.ActionTemplateTypes.ResetPassword, mstEmployee.UserId);
                }
                else
                {
                    responeAC.Message    = "Employee does not found";
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(responeAC);
        }
        public async Task <bool> ChangeEmployeeStatus(long Id, long userId, string loginUserName)
        {
            MstEmployee mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FirstOrDefaultAsync(x => x.UserId == Id);

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

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

                #endregion

                mstEmployee.IsActive    = !mstEmployee.IsActive;
                mstEmployee.UpdatedBy   = userId;
                mstEmployee.UpdatedDate = DateTime.Now;
                _dbTeleBilling_V01Context.Update(mstEmployee);
                await _dbTeleBilling_V01Context.SaveChangesAsync();

                if (mstEmployee.IsActive)
                {
                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.ActiveEmployee, loginUserName, userId, "Employee(" + mstEmployee.FullName + ")", (int)EnumList.ActionTemplateTypes.Active, mstEmployee.UserId);
                }
                else
                {
                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.DeactiveEmployee, loginUserName, userId, "Employee(" + mstEmployee.FullName + ")", (int)EnumList.ActionTemplateTypes.Deactive, mstEmployee.UserId);
                }

                return(true);
            }
            return(false);
        }
示例#7
0
        private async void AddEmploye(IServiceProvider serviceProvider)
        {
            var _dbTeleBilling_V01Context = serviceProvider.GetService <TeleBilling_V01Context>();

            #region Added Role
            MstRole mstRole = new MstRole();
            mstRole.IsActive      = true;
            mstRole.RoleName      = "Super Admin";
            mstRole.CreatedBy     = 1;
            mstRole.CreatedDate   = DateTime.Now;
            mstRole.TransactionId = 080820191635;

            await _dbTeleBilling_V01Context.AddAsync(mstRole);

            await _dbTeleBilling_V01Context.SaveChangesAsync();

            #endregion

            #region Added Business Unit
            MstBusinessUnit mstBusinessUnit = new MstBusinessUnit();
            mstBusinessUnit.IsActive    = true;
            mstBusinessUnit.Name        = "RISK MANAGEMENT & CONTROL";
            mstBusinessUnit.CreatedBy   = 1;
            mstBusinessUnit.CreatedDate = DateTime.Now;

            await _dbTeleBilling_V01Context.AddAsync(mstBusinessUnit);

            await _dbTeleBilling_V01Context.SaveChangesAsync();

            #endregion

            #region Added Department
            MstDepartment mstDepartment = new MstDepartment();
            mstDepartment.IsActive       = true;
            mstDepartment.Name           = "Business";
            mstDepartment.BusinessUnitId = mstBusinessUnit.Id;
            mstDepartment.CreatedBy      = 1;
            mstDepartment.CreatedDate    = DateTime.Now;

            await _dbTeleBilling_V01Context.AddAsync(mstDepartment);

            await _dbTeleBilling_V01Context.SaveChangesAsync();

            #endregion

            #region Added CostCenter
            MstCostCenter mstCostCenter = new MstCostCenter();
            mstCostCenter.BusinessUnitid = mstBusinessUnit.Id;
            mstCostCenter.CostCenterCode = "001";
            mstCostCenter.Name           = "Vadodra Center";
            mstCostCenter.CreatedBy      = 1;
            mstCostCenter.CreatedDate    = DateTime.Now;


            await _dbTeleBilling_V01Context.AddAsync(mstCostCenter);

            await _dbTeleBilling_V01Context.SaveChangesAsync();

            #endregion

            #region Added Dummy User in Employee

            MstEmployee mstEmployee = new MstEmployee();
            mstEmployee.FullName          = "Super Admin";
            mstEmployee.ExtensionNumber   = "08082019";
            mstEmployee.EmpPfnumber       = "123456";
            mstEmployee.EmailId           = "*****@*****.**";
            mstEmployee.Password          = "******";
            mstEmployee.RoleId            = mstRole.RoleId;
            mstEmployee.IsActive          = true;
            mstEmployee.IsSystemUser      = true;
            mstEmployee.DepartmentId      = mstDepartment.Id;
            mstEmployee.Designation       = "Administrator";
            mstEmployee.Description       = "super admin role";
            mstEmployee.BusinessUnitId    = mstBusinessUnit.Id;
            mstEmployee.CostCenterId      = mstCostCenter.Id;
            mstEmployee.CountryId         = 1;
            mstEmployee.IsPresidentOffice = true;
            mstEmployee.LineManagerId     = 1;
            mstEmployee.CreatedBy         = 1;
            mstEmployee.CreatedDate       = DateTime.Now;
            mstEmployee.TransactionId     = 080820191636;

            await _dbTeleBilling_V01Context.AddAsync(mstEmployee);

            await _dbTeleBilling_V01Context.SaveChangesAsync();

            #endregion
        }
        public async Task <BulkAssignTelephoneResponseAC> UploadBulkAssignTelePhone(long userId, ExcelUploadResponseAC exceluploadDetail, string loginUserName)
        {
            BulkAssignTelephoneResponseAC bulkAssignTelephoneResponseAC = new BulkAssignTelephoneResponseAC();
            List <ExcelUploadResult>      excelUploadResultList         = new List <ExcelUploadResult>();
            FileInfo fileinfo = new FileInfo(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid));

            try
            {
                using (ExcelPackage package = new ExcelPackage(fileinfo))
                {
                    for (int i = 1; i <= package.Workbook.Worksheets.Count(); i++)
                    {
                        ExcelWorksheet workSheet   = package.Workbook.Worksheets[i];
                        string         sheetName   = package.Workbook.Worksheets[i].Name;
                        int            totalRows   = workSheet.Dimension.Rows;
                        int            totalColums = workSheet.Dimension.Columns;
                        for (int j = 1; j <= totalRows - 1; j++)
                        {
                            string mobileNumber = workSheet.Cells[j + 1, 1].Value != null ? workSheet.Cells[j + 1, 1].Value.ToString() : string.Empty;
                            string assignType   = workSheet.Cells[j + 1, 2].Value != null ? workSheet.Cells[j + 1, 2].Value.ToString() : string.Empty;
                            string pfNumber     = workSheet.Cells[j + 1, 3].Value != null ? workSheet.Cells[j + 1, 3].Value.ToString() : string.Empty;
                            string packageName  = workSheet.Cells[j + 1, 4].Value != null ? workSheet.Cells[j + 1, 4].Value.ToString() : string.Empty;
                            string startDate    = workSheet.Cells[j + 1, 5].Value != null ? workSheet.Cells[j + 1, 5].Value.ToString() : string.Empty;
                            string endDate      = workSheet.Cells[j + 1, 6].Value != null ? workSheet.Cells[j + 1, 6].Value.ToString() : string.Empty;

                            if (!string.IsNullOrEmpty(mobileNumber) && !string.IsNullOrEmpty(assignType) && !string.IsNullOrEmpty(pfNumber) &&
                                !string.IsNullOrEmpty(startDate) && !string.IsNullOrEmpty(packageName) && !string.IsNullOrEmpty(endDate))
                            {
                                Telephonenumberallocation        telephoneNumberAllocation        = new Telephonenumberallocation();
                                Telephonenumberallocationpackage telePhoneNumberAllocationPackage = new Telephonenumberallocationpackage();
                                bulkAssignTelephoneResponseAC.TotalRecords += 1;

                                Telephonenumber telephoneNumber = await _dbTeleBilling_V01Context.Telephonenumber.FirstOrDefaultAsync(x => x.TelephoneNumber1.ToLower().Trim() == mobileNumber.ToLower().Trim() && x.IsActive && !x.IsDelete);

                                if (telephoneNumber != null)
                                {
                                    FixAssigntype fixAssigntype = await _dbTeleBilling_V01Context.FixAssigntype.FirstOrDefaultAsync(x => x.IsActive && x.Name == assignType);

                                    if (fixAssigntype != null)
                                    {
                                        MstEmployee mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FirstOrDefaultAsync(x => x.IsActive && !x.IsDelete && x.EmpPfnumber.ToLower().Trim() == pfNumber.ToLower().Trim());

                                        if (mstEmployee != null)
                                        {
                                            Providerpackage providerPackage = await _dbTeleBilling_V01Context.Providerpackage.FirstOrDefaultAsync(x => x.IsActive && !x.IsDelete && x.Name.ToLower().Trim() == packageName.ToLower().Trim());

                                            if (providerPackage != null)
                                            {
                                                if (!string.IsNullOrEmpty(startDate))
                                                {
                                                    if (!string.IsNullOrEmpty(endDate))
                                                    {
                                                        DateTime newStartDate;
                                                        DateTime newEndDate;
                                                        if (DateTime.TryParse(startDate, out newStartDate))
                                                        {
                                                            String.Format("{0:d/MM/yyyy}", newStartDate);
                                                            if (DateTime.TryParse(endDate, out newEndDate))
                                                            {
                                                                String.Format("{0:d/MM/yyyy}", newEndDate);
                                                                string        lineStatus    = workSheet.Cells[j + 1, 7].Value != null ? workSheet.Cells[j + 1, 7].Value.ToString() : "";
                                                                FixLinestatus fixLineStatus = await _dbTeleBilling_V01Context.FixLinestatus.FirstOrDefaultAsync(x => x.IsActive && x.Name.ToLower().Trim() == lineStatus.ToLower().Trim());

                                                                if (fixLineStatus != null)
                                                                {
                                                                    if (telephoneNumber.ProviderId == providerPackage.ProviderId)
                                                                    {
                                                                        Telephonenumberallocation newTelephoneNumberAllocation = _dbTeleBilling_V01Context.Telephonenumberallocation.FirstOrDefault(x => x.TelephoneNumberId == telephoneNumber.Id && !x.IsDelete);
                                                                        if (newTelephoneNumberAllocation != null)
                                                                        {
                                                                            Telephonenumberallocationpackage newTelePhoneNumberAllocationPackage = await _dbTeleBilling_V01Context.Telephonenumberallocationpackage.FirstOrDefaultAsync(x => x.TelephoneNumberAllocationId == newTelephoneNumberAllocation.Id && x.PackageId == providerPackage.Id && !x.IsDelete);

                                                                            if (newTelePhoneNumberAllocationPackage == null)
                                                                            {
                                                                                newTelePhoneNumberAllocationPackage           = new Telephonenumberallocationpackage();
                                                                                newTelePhoneNumberAllocationPackage.ServiceId = providerPackage.ServiceTypeId;
                                                                                newTelePhoneNumberAllocationPackage.StartDate = newStartDate;
                                                                                newTelePhoneNumberAllocationPackage.EndDate   = newEndDate;
                                                                                newTelePhoneNumberAllocationPackage.PackageId = providerPackage.Id;
                                                                                bulkAssignTelephoneResponseAC.SuccessRecords += 1;
                                                                                newTelePhoneNumberAllocationPackage.TelephoneNumberAllocationId = newTelephoneNumberAllocation.Id;

                                                                                await _dbTeleBilling_V01Context.AddAsync(newTelePhoneNumberAllocationPackage);

                                                                                await _dbTeleBilling_V01Context.SaveChangesAsync();

                                                                                await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.AssignBulkTelephone, loginUserName, userId, "Telephone Assign(" + newTelephoneNumberAllocation.TelephoneNumber + ")", (int)EnumList.ActionTemplateTypes.Upload, newTelephoneNumberAllocation.Id);
                                                                            }
                                                                            else
                                                                            {
                                                                                //TelphoneNumbeAlready Assigned
                                                                                bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                                                string message = _iStringConstant.TelphoneNumberPackageAlreadyAssigned.Replace("{{$telephonenumber$}}", mobileNumber);
                                                                                excelUploadResultList = AddedFileDataResponse(1, j + 1, packageName, message, sheetName, excelUploadResultList);
                                                                            }
                                                                        }
                                                                        else
                                                                        {
                                                                            telephoneNumberAllocation.EmployeeId        = mstEmployee.UserId;
                                                                            telephoneNumberAllocation.EmpPfnumber       = mstEmployee.EmpPfnumber;
                                                                            telephoneNumberAllocation.TelephoneNumberId = telephoneNumber.Id;
                                                                            telephoneNumberAllocation.TelephoneNumber   = telephoneNumber.TelephoneNumber1;
                                                                            telephoneNumberAllocation.LineStatusId      = fixLineStatus.Id;
                                                                            telephoneNumberAllocation.IsActive          = true;
                                                                            telephoneNumberAllocation.TransactionId     = _iLogManagement.GenerateTeleBillingTransctionID();
                                                                            telephoneNumberAllocation.CreatedBy         = userId;
                                                                            telephoneNumberAllocation.CreatedDate       = DateTime.Now;
                                                                            telephoneNumberAllocation.AssignTypeId      = fixAssigntype.Id;

                                                                            bulkAssignTelephoneResponseAC.SuccessRecords += 1;
                                                                            await _dbTeleBilling_V01Context.AddAsync(telephoneNumberAllocation);

                                                                            await _dbTeleBilling_V01Context.SaveChangesAsync();

                                                                            telePhoneNumberAllocationPackage.ServiceId = providerPackage.ServiceTypeId;
                                                                            telePhoneNumberAllocationPackage.StartDate = newStartDate;
                                                                            telePhoneNumberAllocationPackage.EndDate   = newEndDate;
                                                                            telePhoneNumberAllocationPackage.PackageId = providerPackage.Id;
                                                                            telePhoneNumberAllocationPackage.TelephoneNumberAllocationId = telephoneNumberAllocation.Id;
                                                                            await _dbTeleBilling_V01Context.AddAsync(telePhoneNumberAllocationPackage);

                                                                            await _dbTeleBilling_V01Context.SaveChangesAsync();

                                                                            await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.AssignBulkTelephone, loginUserName, userId, "Telephone Assign(" + newTelephoneNumberAllocation.TelephoneNumber + ")", (int)EnumList.ActionTemplateTypes.Upload, newTelephoneNumberAllocation.Id);
                                                                        }
                                                                    }
                                                                    else
                                                                    {
                                                                        //Packge not same
                                                                        bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                                        excelUploadResultList = AddedFileDataResponse(4, j + 1, "Given package not valid for mobilenumber(" + mobileNumber + ")", _iStringConstant.PackageNotMatchWithTelephoneNumber, sheetName, excelUploadResultList);
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    //LineStatus Not Exists
                                                                    bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                                    excelUploadResultList = AddedFileDataResponse(7, j + 1, lineStatus, _iStringConstant.LineStatusNotExists, sheetName, excelUploadResultList);
                                                                }
                                                            }
                                                            else
                                                            {
                                                                //End Date Not Valid
                                                                bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                                excelUploadResultList = AddedFileDataResponse(6, j + 1, endDate, _iStringConstant.EndDateNotValid, sheetName, excelUploadResultList);
                                                            }
                                                        }
                                                        else
                                                        {
                                                            //Start Date Not Valid
                                                            bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                            excelUploadResultList = AddedFileDataResponse(5, j + 1, startDate, _iStringConstant.StartDateNotValid, sheetName, excelUploadResultList);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        //End Date Is Empty
                                                        bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                        excelUploadResultList = AddedFileDataResponse(6, j + 1, endDate, _iStringConstant.EndDateIsEmpty, sheetName, excelUploadResultList);
                                                    }
                                                }
                                                else
                                                {
                                                    //Start Date Is Empty
                                                    bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                    excelUploadResultList = AddedFileDataResponse(5, j, startDate, _iStringConstant.StartDateIsEmpty, sheetName, excelUploadResultList);
                                                }
                                            }
                                            else
                                            {
                                                //Package Not Exists
                                                bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                excelUploadResultList = AddedFileDataResponse(4, j + 1, packageName, _iStringConstant.PackageNotExists, sheetName, excelUploadResultList);
                                            }
                                        }
                                        else
                                        {
                                            //Employee Not Exists
                                            bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                            excelUploadResultList = AddedFileDataResponse(3, j, pfNumber, _iStringConstant.EmployeeNotExists, sheetName, excelUploadResultList);
                                        }
                                        //else
                                        //{
                                        //TelphoneNumbeAlready Assigned
                                        //bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                        //excelUploadResultList = AddedFileDataResponse(1, j + 1, mobileNumber, _iStringConstant.TelphoneNumberAlreadyAssigned, sheetName, excelUploadResultList);
                                        //}
                                    }
                                    else
                                    {
                                        //Employee Not Exists
                                        bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                        excelUploadResultList = AddedFileDataResponse(2, j, assignType, _iStringConstant.AssignTypeNotExists, sheetName, excelUploadResultList);
                                    }
                                }
                                else
                                {
                                    //PhoneNumber Not Exists
                                    bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                    excelUploadResultList = AddedFileDataResponse(1, j + 1, mobileNumber, _iStringConstant.PhoneNumberNotExists, sheetName, excelUploadResultList);
                                }
                            }
                        }
                    }
                }

                if (File.Exists(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid)))
                {
                    File.Delete(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid));
                }

                bulkAssignTelephoneResponseAC.excelUploadResultList = excelUploadResultList;
                return(bulkAssignTelephoneResponseAC);
            }
            catch (Exception ex)
            {
                if (File.Exists(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid)))
                {
                    File.Delete(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid));
                }
                throw ex;
            }
        }
示例#9
0
        public async Task <EmployeeDetailAC> GetLoggedInUserDetail(long userId)
        {
            MstEmployee mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.Where(x => x.UserId == userId && !x.IsDelete).Include(x => x.Role).FirstOrDefaultAsync();

            return(_mapper.Map <EmployeeDetailAC>(mstEmployee));
        }
示例#10
0
        public async Task <BulkAssignTelephoneResponseAC> BulkUploadOperatorCallLog(long userId, ExcelUploadResponseAC exceluploadDetail, string loginUserName)
        {
            BulkAssignTelephoneResponseAC bulkAssignTelephoneResponseAC = new BulkAssignTelephoneResponseAC();
            List <ExcelUploadResult>      excelUploadResultList         = new List <ExcelUploadResult>();
            List <Operatorcalllog>        operatorCallLogList           = new List <Operatorcalllog>();
            FileInfo fileinfo = new FileInfo(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid));

            try
            {
                using (ExcelPackage package = new ExcelPackage(fileinfo))
                {
                    for (int i = 1; i <= package.Workbook.Worksheets.Count(); i++)
                    {
                        ExcelWorksheet workSheet = package.Workbook.Worksheets[i];
                        if (workSheet != null)
                        {
                            string sheetName   = workSheet.Name;
                            int    totalRows   = workSheet.Dimension.Rows;
                            int    totalColums = workSheet.Dimension.Columns;
                            for (int j = 1; j <= totalRows - 1; j++)
                            {
                                Operatorcalllog operatorCallLog = new Operatorcalllog();
                                bulkAssignTelephoneResponseAC.TotalRecords += 1;
                                string callDate = workSheet.Cells[j + 1, 1].Value != null ? workSheet.Cells[j + 1, 1].Value.ToString() : string.Empty;
                                if (!string.IsNullOrEmpty(callDate))
                                {
                                    DateTime newCallDate;
                                    if (DateTime.TryParse(callDate, out newCallDate))
                                    {
                                        String.Format("{0:d/MM/yyyy}", newCallDate);
                                        string pfNumber = workSheet.Cells[j + 1, 2].Value != null ? workSheet.Cells[j + 1, 2].Value.ToString() : string.Empty;
                                        pfNumber = !string.IsNullOrEmpty(pfNumber) ? pfNumber.ToLower().Trim() : string.Empty;
                                        MstEmployee mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FirstOrDefaultAsync(x => x.IsActive && !x.IsDelete && x.EmpPfnumber.ToLower().Trim() == pfNumber);

                                        if (mstEmployee != null)
                                        {
                                            string telephoneNumber = workSheet.Cells[j + 1, 3].Value != null ? workSheet.Cells[j + 1, 3].Value.ToString() : string.Empty;
                                            if (!string.IsNullOrEmpty(telephoneNumber))
                                            {
                                                if (telephoneNumber.Length < 50)
                                                {
                                                    string provider = workSheet.Cells[j + 1, 4].Value != null ? workSheet.Cells[j + 1, 4].Value.ToString() : string.Empty;
                                                    provider = !string.IsNullOrEmpty(provider) ? provider.ToLower().Trim() : string.Empty;
                                                    TeleBillingUtility.Models.Provider providerObj = await _dbTeleBilling_V01Context.Provider.FirstOrDefaultAsync(x => x.IsActive && !x.IsDelete && x.Name.ToLower().Trim() == provider);

                                                    if (providerObj != null)
                                                    {
                                                        string callType = workSheet.Cells[j + 1, 5].Value != null ? workSheet.Cells[j + 1, 5].Value.ToString() : string.Empty;
                                                        callType = !string.IsNullOrEmpty(callType) ? callType.ToLower().Trim() : string.Empty;
                                                        FixCalltype callTypeObj = await _dbTeleBilling_V01Context.FixCalltype.FirstOrDefaultAsync(x => x.IsActive && x.Name.ToLower().Trim() == callType);

                                                        if (callTypeObj != null)
                                                        {
                                                            operatorCallLog.CallDate        = newCallDate;
                                                            operatorCallLog.CallTypeId      = callTypeObj.Id;
                                                            operatorCallLog.ProviderId      = providerObj.Id;
                                                            operatorCallLog.EmployeeId      = mstEmployee.UserId;
                                                            operatorCallLog.EmpPfnumber     = mstEmployee.EmpPfnumber;
                                                            operatorCallLog.ExtensionNumber = mstEmployee.ExtensionNumber;
                                                            operatorCallLog.TransactionId   = _iLogManagement.GenerateTeleBillingTransctionID();
                                                            operatorCallLog.DialedNumber    = telephoneNumber;
                                                            operatorCallLog.CreatedBy       = userId;
                                                            operatorCallLog.CreatedDate     = DateTime.Now;
                                                            operatorCallLogList.Add(operatorCallLog);
                                                            bulkAssignTelephoneResponseAC.SuccessRecords += 1;
                                                        }
                                                        else
                                                        {
                                                            //Call Type Not Exists
                                                            bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                            excelUploadResultList = AddedFileDataResponse(4, j, callType, _iStringConstant.CallTypeNotExists, sheetName, excelUploadResultList);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        //Provider Not Exists
                                                        bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                        excelUploadResultList = AddedFileDataResponse(4, j, provider, _iStringConstant.ProviderNotExists, sheetName, excelUploadResultList);
                                                    }
                                                }
                                                else
                                                {
                                                    //Telephone Number length
                                                    bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                    excelUploadResultList = AddedFileDataResponse(3, j, telephoneNumber, _iStringConstant.TelePhoneNumberMaxLength, sheetName, excelUploadResultList);
                                                }
                                            }
                                            else
                                            {
                                                //Telephone number is empty
                                                bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                                excelUploadResultList = AddedFileDataResponse(3, j, telephoneNumber, _iStringConstant.TelePhoneNumberIsEmpty, sheetName, excelUploadResultList);
                                            }
                                        }
                                        else
                                        {
                                            //Employee Not Exists
                                            bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                            excelUploadResultList = AddedFileDataResponse(2, j, pfNumber, _iStringConstant.EmployeeNotExists, sheetName, excelUploadResultList);
                                        }
                                    }
                                    else
                                    {
                                        //Start Date Not Valid
                                        bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                        excelUploadResultList = AddedFileDataResponse(1, j + 1, callDate, _iStringConstant.CallDateNotValid, sheetName, excelUploadResultList);
                                    }
                                }
                                else
                                {       //Call Date Is Empty
                                    bulkAssignTelephoneResponseAC.SkipRecords += 1;
                                    excelUploadResultList = AddedFileDataResponse(1, j, callDate, _iStringConstant.CallDateIsEmpty, sheetName, excelUploadResultList);
                                }
                            }
                        }
                    }
                }
                if (File.Exists(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid)))
                {
                    File.Delete(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid));
                }

                if (operatorCallLogList.Any())
                {
                    await _dbTeleBilling_V01Context.AddRangeAsync(operatorCallLogList);

                    await _dbTeleBilling_V01Context.SaveChangesAsync();

                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.BulkUploadOperatorCallLog, loginUserName, userId, "Bulk Operator call log", (int)EnumList.ActionTemplateTypes.Upload, null);
                }
                bulkAssignTelephoneResponseAC.excelUploadResultList = excelUploadResultList;
                return(bulkAssignTelephoneResponseAC);
            }
            catch (Exception ex)
            {
                if (File.Exists(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid)))
                {
                    File.Delete(Path.Combine(exceluploadDetail.FilePath, exceluploadDetail.FileNameGuid));
                }
                throw ex;
            }
        }
        public async Task <ResponseAC> EditEmployee(MstEmployeeAC employee, long userId, string loginUserName)
        {
            ResponseAC responeAC = new ResponseAC();

            try
            {
                if (employee != null)
                {
                    if (employee.UserId > 0)
                    {
                        MstEmployee mstEmployee = new MstEmployee();
                        mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FindAsync(employee.UserId);

                        if (mstEmployee != null)
                        {
                            if (mstEmployee.IsSystemUser)
                            {
                                string pfNumber = employee.EmpPFNumber;
                                if (!await checkPFNumberUnique(pfNumber, employee.UserId))
                                {
                                    mstEmployee.FullName        = employee.FullName;
                                    mstEmployee.ExtensionNumber = employee.ExtensionNumber;
                                    mstEmployee.EmpPfnumber     = employee.EmpPFNumber;
                                    mstEmployee.EmailId         = employee.EmailId;

                                    mstEmployee.DepartmentId      = employee.DepartmentId;
                                    mstEmployee.Designation       = employee.Designation;
                                    mstEmployee.Description       = employee.Description;
                                    mstEmployee.BusinessUnitId    = employee.BusinessUnitId;
                                    mstEmployee.CostCenterId      = employee.CostCenterId;
                                    mstEmployee.CountryId         = employee.CountryId;
                                    mstEmployee.IsPresidentOffice = employee.IsPresidentOffice;
                                    mstEmployee.RoleId            = employee.RoleId;

                                    if (employee.ManagerEmployee != null)
                                    {
                                        if (employee.ManagerEmployee.UserId > 0)
                                        {
                                            mstEmployee.LineManagerId = employee.ManagerEmployee.UserId;
                                        }
                                    }
                                    else
                                    {
                                        mstEmployee.LineManagerId = employee.LineManagerId;
                                    }

                                    if (mstEmployee.LineManagerId == 0)
                                    {
                                        responeAC.Message    = "Line Manager is not valid !";
                                        responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                                        return(responeAC);
                                    }


                                    mstEmployee.UpdatedBy     = userId;
                                    mstEmployee.UpdatedDate   = DateTime.Now;
                                    mstEmployee.TransactionId = _iLogManagement.GenerateTeleBillingTransctionID();
                                    _dbTeleBilling_V01Context.Update(mstEmployee);
                                    await _dbTeleBilling_V01Context.SaveChangesAsync();

                                    responeAC.Message    = "Employee Updated Successfully !";
                                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.EditEmployee, loginUserName, userId, "Employee(" + mstEmployee.FullName + ")", (int)EnumList.ActionTemplateTypes.Edit, mstEmployee.UserId);

                                    return(responeAC);
                                }
                                else
                                {
                                    responeAC.Message    = "PFNumber is already exists!";
                                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                                    return(responeAC);
                                }
                            }
                            else
                            {
                                responeAC.Message    = "Employee is not system user.";
                                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                                return(responeAC);
                            }
                        }
                    }
                }
                responeAC.Message    = _iStringConstant.DataNotFound;
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                return(responeAC);
            }
            catch (Exception e)
            {
                responeAC.Message    = "Error : " + e.Message;
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                return(responeAC);
            }
        }
        public async Task <MstEmployeeAC> GetEmployeeById(long userId)
        {
            MstEmployeeAC responseAc = new MstEmployeeAC();

            try
            {
                MstEmployee employee = await _dbTeleBilling_V01Context.MstEmployee.FindAsync(userId);


                MstEmployeeAC mstEmployee     = new MstEmployeeAC();
                MstEmployeeSP mstEmployeeData = new MstEmployeeSP();

                SortedList sl = new SortedList();
                sl.Add("userId", userId);
                DataSet ds = _objDalmysql.GetDataSet("uspGetEmployeeById", sl);
                if (ds != null)
                {
                    if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0] != null)
                    {
                        mstEmployeeData = _objDal.ConvertDataTableToGenericList <MstEmployeeSP>(ds.Tables[0]).FirstOrDefault();
                    }
                }

                if (mstEmployeeData != null)
                {
                    if (mstEmployeeData.UserId > 0)
                    {
                        mstEmployee = _mapper.Map <MstEmployeeAC>(mstEmployeeData);
                    }
                }

                if (employee != null)
                {
                    mstEmployee.FullName        = employee.FullName;
                    mstEmployee.ExtensionNumber = employee.ExtensionNumber;
                    mstEmployee.EmpPFNumber     = employee.EmpPfnumber;
                    mstEmployee.EmailId         = employee.EmailId;
                    mstEmployee.Password        = employee.Password;
                    mstEmployee.RoleId          = employee.RoleId;

                    mstEmployee.IsSystemUser = employee.IsSystemUser;
                    mstEmployee.Designation  = employee.Designation;

                    mstEmployee.DepartmentId      = employee.DepartmentId;
                    mstEmployee.BusinessUnitId    = employee.BusinessUnitId;
                    mstEmployee.CostCenterId      = employee.CostCenterId;
                    mstEmployee.CountryId         = employee.CountryId;
                    mstEmployee.IsPresidentOffice = employee.IsPresidentOffice;
                    mstEmployee.Description       = employee.Description;
                    mstEmployee.TransactionId     = employee.TransactionId;
                    mstEmployee.IsActive          = employee.IsActive;
                    mstEmployee.IsDelete          = employee.IsDelete;

                    //mstEmployee.BusinessUnit = mstEmployeeData.BusinessUnit;
                    //mstEmployee.CostCenter = mstEmployeeData.CostCenter;
                    //mstEmployee.Department = mstEmployeeData.Department;
                    //mstEmployee.Country = mstEmployeeData.Country;



                    if (employee.LineManagerId > 0)
                    {
                        MstEmployee lineManagerEmpDetail = new MstEmployee();
                        lineManagerEmpDetail = await _dbTeleBilling_V01Context.MstEmployee.Where(x => x.UserId == employee.LineManagerId).FirstOrDefaultAsync();

                        mstEmployee.LineManagerId   = employee.LineManagerId;
                        mstEmployee.ManagerEmployee = _mapper.Map <EmployeeAC>(lineManagerEmpDetail);
                    }
                }
                if (mstEmployee != null)
                {
                    if (mstEmployee.UserId > 0)
                    {
                        responseAc = mstEmployee;
                        return(responseAc);
                    }
                }

                return(new MstEmployeeAC());
            }
            catch (Exception e)
            {
                return(new MstEmployeeAC());
            }
        }
        public async Task <ResponseAC> AddEmployee(MstEmployeeAC employee, long userId, string loginUserName)
        {
            ResponseAC responeAC = new ResponseAC();

            try
            {
                if (employee != null)
                {
                    string pfNumber = employee.EmpPFNumber;
                    if (!await checkPFNumberUnique(pfNumber, 0))
                    {
                        MstEmployee mstEmployee = new MstEmployee();
                        mstEmployee.FullName        = employee.FullName;
                        mstEmployee.ExtensionNumber = employee.ExtensionNumber;
                        mstEmployee.EmpPfnumber     = employee.EmpPFNumber;
                        mstEmployee.EmailId         = employee.EmailId;

                        string randomPassword = "******";
                        string randomPadding  = CreatePassword(4);
                        mstEmployee.Password     = randomPassword + randomPadding;
                        mstEmployee.RoleId       = employee.RoleId;
                        mstEmployee.IsActive     = true;
                        mstEmployee.IsSystemUser = true;

                        mstEmployee.DepartmentId      = employee.DepartmentId;
                        mstEmployee.Designation       = employee.Designation;
                        mstEmployee.Description       = employee.Description;
                        mstEmployee.BusinessUnitId    = employee.BusinessUnitId;
                        mstEmployee.CostCenterId      = employee.CostCenterId;
                        mstEmployee.CountryId         = employee.CountryId;
                        mstEmployee.IsPresidentOffice = employee.IsPresidentOffice;
                        if (employee.ManagerEmployee != null)
                        {
                            if (employee.ManagerEmployee.UserId > 0)
                            {
                                mstEmployee.LineManagerId = employee.ManagerEmployee.UserId;
                            }
                        }

                        if (mstEmployee.LineManagerId == 0)
                        {
                            responeAC.Message    = "Line Manager is not valid !";
                            responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                            return(responeAC);
                        }



                        mstEmployee.CreatedBy     = userId;
                        mstEmployee.CreatedDate   = DateTime.Now;
                        mstEmployee.TransactionId = _iLogManagement.GenerateTeleBillingTransctionID();

                        await _dbTeleBilling_V01Context.AddAsync(mstEmployee);

                        await _dbTeleBilling_V01Context.SaveChangesAsync();

                        responeAC.Message    = "Employee Added Successfully !";
                        responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                        await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.AddEmployee, loginUserName, userId, "Employee(" + mstEmployee.FullName + ")", (int)EnumList.ActionTemplateTypes.Add, mstEmployee.UserId);

                        #region Send Email for Registration Confirmation
                        EmployeeProfileAC empDetail = new EmployeeProfileAC();
                        try
                        {
                            empDetail = await GetUserProfile(mstEmployee.UserId);

                            if (empDetail != null)
                            {
                                if (empDetail.UserProfileData.UserId > 0)
                                {
                                    Dictionary <string, string> replacement = new Dictionary <string, string>();
                                    replacement.Add("{newEmpName}", empDetail.UserProfileData.FullName);
                                    replacement.Add("{PFNumber}", empDetail.UserProfileData.EmpPFNumber);
                                    replacement.Add("{Email}", empDetail.UserProfileData.EmailId);
                                    replacement.Add("{Password}", empDetail.UserProfileData.Password);

                                    replacement.Add("{EmpDesignation}", empDetail.UserProfileData.Designation);
                                    replacement.Add("{Emplocation}", empDetail.UserProfileData.Country);
                                    replacement.Add("{lineManagerDepartment}", empDetail.UserProfileData.LineManager);
                                    replacement.Add("{EmpDepartment}", empDetail.UserProfileData.Department);
                                    replacement.Add("{EmpCostCenter}", empDetail.UserProfileData.CostCenter);
                                    replacement.Add("{EmpBusinessUnit}", empDetail.UserProfileData.BusinessUnit);
                                    bool   issent  = false;
                                    string EmailId = empDetail.UserProfileData.EmailId;

                                    if (!(string.IsNullOrEmpty(empDetail.UserProfileData.EmailId) || empDetail.UserProfileData.EmailId == "n/a"))
                                    {
                                        issent = await _iEmailSender.SendEmail(Convert.ToInt64(EnumList.EmailTemplateType.NewRegistrationConfirmation), replacement, employee.EmailId);
                                    }
                                    else
                                    {// get line manager email
                                        string linemanagerEmail = await _dbTeleBilling_V01Context.MstEmployee.Where(x => x.UserId == mstEmployee.LineManagerId).Select(x => x.EmailId).FirstOrDefaultAsync();

                                        issent = await _iEmailSender.SendEmail(Convert.ToInt64(EnumList.EmailTemplateType.NewRegistrationInYourTeam), replacement, linemanagerEmail);
                                    }

                                    if (!issent)
                                    {
                                        responeAC.StatusCode = Convert.ToInt32(EnumList.ResponseType.Success);
                                        responeAC.Message    = "Employee Added Successfully! We Could Not Sent Mail Confirmation.";
                                    }
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            responeAC.StatusCode = Convert.ToInt32(EnumList.ResponseType.Success);
                            responeAC.Message    = "Employee Added Successfully! Error :" + e.Message + " We Could Not Sent Mail Confirmation.";
                        }

                        #endregion

                        return(responeAC);
                    }
                    else
                    {
                        responeAC.Message    = "PFNumber is already exists!";
                        responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                        return(responeAC);
                    }
                }
                else
                {
                    responeAC.Message    = _iStringConstant.DataNotFound;
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                    return(responeAC);
                }
            }
            catch (Exception e)
            {
                responeAC.Message    = "Error : " + e.Message;
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                return(responeAC);
            }
        }
        public async Task <ResponseAC> MemoApproval(MemoApprovalAC memoApprovalAC, long userId, string loginUserName)
        {
            ResponseAC        responseAC      = new ResponseAC();
            List <Memo>       lstMemo         = new List <Memo>();
            List <Billmaster> billMasters     = new List <Billmaster>();
            List <string>     stringMemoArray = new List <string>();

            foreach (var item in memoApprovalAC.billMemoACs)
            {
                Memo memoObj = await _dbTeleBilling_V01Context.Memo.Where(x => x.Id == item.Id).Include(x => x.Provider).FirstOrDefaultAsync();

                if (memoObj.IsApproved == null)
                {
                    memoObj.IsApproved   = memoApprovalAC.IsApprvoed;
                    memoObj.ApprovedDate = DateTime.Now;
                    memoObj.ApprovedBy   = userId;
                    memoObj.Comment      = item.Comment;
                    memoObj.UpdatedBy    = userId;
                    memoObj.UpdatedDate  = DateTime.Now;
                    lstMemo.Add(memoObj);

                    string memoApproval = string.Empty;
                    if (!memoApprovalAC.IsApprvoed)
                    {
                        billMasters.AddRange(await _dbTeleBilling_V01Context.Memobills.Where(x => x.MemoId == item.Id && !x.IsDelete).Include(x => x.Bill).Select(x => x.Bill).ToListAsync());
                        memoApproval = "Rejected";
                    }
                    else
                    {
                        memoApproval = "Approved";
                    }

                    #region Send Mail For Memo Approval
                    TeleBillingUtility.Models.Configuration configuration = await _dbTeleBilling_V01Context.Configuration.FirstOrDefaultAsync();

                    MstEmployee mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FirstOrDefaultAsync(x => !x.IsDelete && x.UserId == memoObj.CreatedBy);

                    if (configuration != null && configuration.NMemoApprovalRejection)
                    {
                        if (mstEmployee != null)
                        {
                            if (!string.IsNullOrEmpty(mstEmployee.EmailId))
                            {
                                Dictionary <string, string> replacements = new Dictionary <string, string>();
                                EnumList.Month month = (EnumList.Month)memoObj.Month;
                                replacements.Add("{MemoApproval}", memoApproval);
                                replacements.Add("{BillMonth}", month.ToString());
                                replacements.Add("{BillYear}", memoObj.Year.ToString());
                                replacements.Add("{RefrenceNo}", memoObj.RefrenceNo);
                                replacements.Add("{newEmpName}", mstEmployee.FullName);
                                replacements.Add("{ApprovalComment}", memoObj.Comment);
                                replacements.Add("{BillAmount}", memoObj.TotalAmount.ToString());
                                replacements.Add("{MemoSubject}", memoObj.Subject);
                                replacements.Add("{Provider}", memoObj.Provider.Name);

                                if (await _iEmailSender.SendEmail(Convert.ToInt64(EnumList.EmailTemplateType.MemoApproval), replacements, mstEmployee.EmailId))
                                {
                                    await _iEmailSender.AddedReminderNotificationLog(Convert.ToInt64(EnumList.EmailTemplateType.MemoApproval), null, false, mstEmployee.EmailId);
                                }
                            }
                        }
                    }
                    #endregion

                    #region Notification For Memo
                    List <Notificationlog> notificationlogs = new List <Notificationlog>();
                    if (mstEmployee != null)
                    {
                        if (memoApprovalAC.IsApprvoed)
                        {
                            notificationlogs.Add(_iLogManagement.GenerateNotificationObject(mstEmployee.UserId, userId, Convert.ToInt16(EnumList.NotificationType.MemoApprove), memoObj.Id));
                            await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.MemoApprove, loginUserName, userId, "Memo(" + memoObj.RefrenceNo + ")", (int)EnumList.ActionTemplateTypes.Approve, memoObj.Id);
                        }
                        else
                        {
                            notificationlogs.Add(_iLogManagement.GenerateNotificationObject(mstEmployee.UserId, userId, Convert.ToInt16(EnumList.NotificationType.MemoReject), memoObj.Id));
                            await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.MemoReject, loginUserName, userId, "Memo(" + memoObj.RefrenceNo + ")", (int)EnumList.ActionTemplateTypes.Reject, memoObj.Id);
                        }
                        await _iLogManagement.SaveNotificationList(notificationlogs);
                    }
                    #endregion
                }
                else
                {
                    stringMemoArray.Add(memoObj.RefrenceNo);
                }
            }
            #region Update Bill Status
            if (billMasters.Any())
            {
                foreach (var item in billMasters)
                {
                    item.BillStatusId = Convert.ToInt16(EnumList.BillStatus.BillAllocated);
                    item.UpdatedBy    = userId;
                    item.UpdatedDate  = DateTime.Now;
                }

                _dbTeleBilling_V01Context.UpdateRange(billMasters);
                await _dbTeleBilling_V01Context.SaveChangesAsync();
            }
            #endregion

            if (lstMemo.Any())
            {
                _dbTeleBilling_V01Context.UpdateRange(lstMemo);
                await _dbTeleBilling_V01Context.SaveChangesAsync();
            }

            if (lstMemo.Count() == memoApprovalAC.billMemoACs.Count())
            {
                responseAC.Message    = memoApprovalAC.IsApprvoed ? _iStringConstant.MemoApprovedsuccessfully : _iStringConstant.MemoRejectedsuccessfully;
                responseAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
            }
            else
            {
                string message = String.Join(',', stringMemoArray);
                responseAC.Message    = memoApprovalAC.IsApprvoed ? _iStringConstant.MemoApprovalMessagesuccessfully.Replace("{{@currentapproval}}", "approved").Replace("{{@memo}}", message) : _iStringConstant.MemoApprovalMessagesuccessfully.Replace("{{@currentapproval}}", "rejected").Replace("{{@memo}}", message);
                responseAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Warning);
            }
            return(responseAC);
        }