Exemplo n.º 1
0
        public async Task <IActionResult> EditPbxExcelMapping(PbxExcelMappingAC excelMappingAC)
        {
            string userId   = "2";//  HttpContext.User.Claims.FirstOrDefault(c => c.Type == "user_id").Value;
            string fullname = HttpContext.User.Claims.FirstOrDefault(c => c.Type == "fullname").Value;

            return(Ok(await _iExcelMappingRepository.EditPbxExcelMapping(excelMappingAC, Convert.ToInt64(userId), fullname)));
        }
        public async Task <PbxExcelMappingAC> GetPbxExcelMappingById(long excelMappingId)
        {
            try
            {
                PbxExcelMappingAC excelMapping = new PbxExcelMappingAC();
                MappingexcelPbx   mapExcel     = new MappingexcelPbx();
                mapExcel = await _dbTeleBilling_V01Context.MappingexcelPbx.Include(x => x.Device).FirstOrDefaultAsync(x => x.Id == excelMappingId);

                if (mapExcel != null)
                {
                    excelMapping.Id                      = mapExcel.Id;
                    excelMapping.Device                  = mapExcel.Device.Name;
                    excelMapping.DeviceId                = mapExcel.Device.Id;
                    excelMapping.HaveHeader              = mapExcel.HaveHeader;
                    excelMapping.HaveTitle               = mapExcel.HaveTitle;
                    excelMapping.TitleName               = mapExcel.TitleName;
                    excelMapping.WorkSheetNo             = mapExcel.WorkSheetNo;
                    excelMapping.ExcelColumnNameForTitle = mapExcel.ExcelColumnNameForTitle;
                    excelMapping.ExcelReadingColumn      = mapExcel.ExcelReadingColumn;

                    // sweta
                    List <MappingServiceTypeFieldAC>  dbfieldlst         = new List <MappingServiceTypeFieldAC>();
                    List <MappingservicetypefieldPbx> lstofMappingColmns = new List <MappingservicetypefieldPbx>();
                    lstofMappingColmns = await _dbTeleBilling_V01Context.MappingservicetypefieldPbx.Where(x => x.DeviceId == mapExcel.DeviceId).ToListAsync();

                    List <MappingexcelcolumnPbx> mapexcelcolumn = await _dbTeleBilling_V01Context.MappingexcelcolumnPbx.Where(x => x.MappingExcelId == excelMappingId).ToListAsync();

                    foreach (var item in lstofMappingColmns)
                    {
                        MappingServiceTypeFieldAC dbfield = new MappingServiceTypeFieldAC();
                        var objMapexcelcolumn             = mapexcelcolumn.FirstOrDefault(x => x.MappingServiceTypeFieldId == item.Id);
                        if (objMapexcelcolumn != null)
                        {
                            dbfield.ColumnAddress = objMapexcelcolumn.ExcelcolumnName;
                            dbfield.FormatField   = objMapexcelcolumn.FormatField;
                        }
                        dbfield.Id = item.Id;
                        dbfield.DisplayFieldName = item.DisplayFieldName;
                        dbfield.IsRequired       = item.IsRequired;
                        dbfield.IsSpecial        = item.IsSpecial;
                        dbfieldlst.Add(dbfield);
                    }
                    excelMapping.dbfieldList = dbfieldlst;

                    // ................................
                    //List<MappingexcelcolumnPbx> mapexcelcolumn = new List<MappingexcelcolumnPbx>();
                    //mapexcelcolumn = await _dbTeleBilling_V01Context.MappingexcelcolumnPbx.Include(x => x.MappingServiceTypeField).Where(x => x.MappingExcelId == mapExcel.Id).OrderBy(x => x.MappingServiceTypeField.DisplayOrder).ToListAsync();
                    //List<MappingServiceTypeFieldAC> dbfieldlst = new List<MappingServiceTypeFieldAC>();
                    //foreach (var item in mapexcelcolumn)
                    //{
                    //    MappingServiceTypeFieldAC dbfield = new MappingServiceTypeFieldAC();
                    //    dbfield.Id = item.MappingServiceTypeFieldId;
                    //    dbfield.ColumnAddress = item.ExcelcolumnName;
                    //    dbfield.DisplayFieldName = item.MappingServiceTypeField.DisplayFieldName;
                    //    dbfield.IsRequired = item.MappingServiceTypeField.IsRequired;
                    //    dbfield.IsSpecial = item.MappingServiceTypeField.IsSpecial;
                    //    dbfield.FormatField = item.FormatField;
                    //    dbfieldlst.Add(dbfield);
                    //}

                    //excelMapping.dbfieldList = dbfieldlst;
                    return(excelMapping);
                }
            }
            catch (Exception e)
            {
                return(new PbxExcelMappingAC());
            }
            return(new PbxExcelMappingAC());
        }
        public async Task <ResponseAC> EditPbxExcelMapping(PbxExcelMappingAC excelMappingAC, long userId, string loginUserName)
        {
            ResponseAC responeAC = new ResponseAC();

            try
            {
                if (excelMappingAC.dbfieldList.Count() == 0)
                {
                    responeAC.Message    = "Mapping Column Is Missing";
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                    return(responeAC);
                }
                MappingexcelPbx mappingexcel = new MappingexcelPbx();
                mappingexcel = await _dbTeleBilling_V01Context.MappingexcelPbx.FirstOrDefaultAsync(x => x.DeviceId == excelMappingAC.DeviceId && !x.IsDelete && x.Id == excelMappingAC.Id);

                if (mappingexcel != null && mappingexcel.Id > 0)
                {
                    #region Transaction Log Entry
                    if (mappingexcel.TransactionId == null)
                    {
                        mappingexcel.TransactionId = _iLogManagement.GenerateTeleBillingTransctionID();
                    }

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

                    #endregion

                    mappingexcel.HaveHeader  = excelMappingAC.HaveHeader;
                    mappingexcel.HaveTitle   = excelMappingAC.HaveTitle;
                    mappingexcel.TitleName   = excelMappingAC.TitleName;
                    mappingexcel.WorkSheetNo = Convert.ToInt64(excelMappingAC.WorkSheetNo);

                    mappingexcel.ExcelColumnNameForTitle = string.IsNullOrEmpty(excelMappingAC.ExcelColumnNameForTitle) ? "" : excelMappingAC.ExcelColumnNameForTitle;
                    mappingexcel.ExcelReadingColumn      = string.IsNullOrEmpty(excelMappingAC.ExcelReadingColumn) ? "0" : excelMappingAC.ExcelReadingColumn;


                    mappingexcel.UpdatedBy   = userId;
                    mappingexcel.UpdatedDate = DateTime.Now;

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

                    responeAC.Message    = _iStringConstant.ExcelMappingUpdatedSuccessfully;
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.EditPbxExcelMapping, loginUserName, userId, "PBX Excel mapping", (int)EnumList.ActionTemplateTypes.Edit, mappingexcel.Id);

                    if (mappingexcel.Id > 0)
                    {
                        #region --> Update Mapping column Details
                        if (excelMappingAC.dbfieldList.Count() > 0)
                        {
                            #region --> remove old Mapping
                            List <MappingexcelcolumnPbx> excelcolumnlst = new List <MappingexcelcolumnPbx>();
                            excelcolumnlst = await _dbTeleBilling_V01Context.MappingexcelcolumnPbx.Where(x => x.MappingExcelId == mappingexcel.Id).ToListAsync();

                            if (excelcolumnlst != null)
                            {
                                if (excelcolumnlst.Count() > 0)
                                {
                                    _dbTeleBilling_V01Context.RemoveRange(excelcolumnlst);
                                    await _dbTeleBilling_V01Context.SaveChangesAsync();
                                }
                            }
                            #endregion

                            List <MappingexcelcolumnPbx> mappingExcelColumnslst = new List <MappingexcelcolumnPbx>();

                            foreach (var item in excelMappingAC.dbfieldList)
                            {
                                if (!string.IsNullOrEmpty(item.ColumnAddress))
                                {
                                    MappingexcelcolumnPbx excelColumn = new MappingexcelcolumnPbx();
                                    excelColumn.MappingExcelId            = mappingexcel.Id;
                                    excelColumn.MappingServiceTypeFieldId = item.Id;
                                    excelColumn.ExcelcolumnName           = item.ColumnAddress;
                                    excelColumn.FormatField = item.FormatField;
                                    mappingExcelColumnslst.Add(excelColumn);
                                }
                            }
                            await _dbTeleBilling_V01Context.AddRangeAsync(mappingExcelColumnslst);

                            await _dbTeleBilling_V01Context.SaveChangesAsync();

                            responeAC.Message    = _iStringConstant.ExcelMappingUpdatedSuccessfully;
                            responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                        }
                        #endregion
                    }
                }
                else
                {
                    responeAC.Message    = _iStringConstant.DataFound;
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                }
                return(responeAC);
            }
            catch (Exception e)
            {
                responeAC.Message    = e.Message.ToString();
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                return(responeAC);
            }
        }
        public async Task <ResponseAC> AddPbxExcelMapping(PbxExcelMappingAC excelMappingAC, long userId, string loginUserName)
        {
            ResponseAC responeAC = new ResponseAC();

            try
            {
                if (excelMappingAC.dbfieldList.Count() == 0)
                {
                    responeAC.Message    = "Mapping Column Is Missing";
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                    return(responeAC);
                }

                if (!await _dbTeleBilling_V01Context.MappingexcelPbx.AnyAsync(x => x.DeviceId == excelMappingAC.DeviceId && !x.IsDelete))
                {
                    var deviceData = await _dbTeleBilling_V01Context.FixDevice.FirstOrDefaultAsync(x => x.Id == excelMappingAC.DeviceId);

                    MappingexcelPbx mappingexcel = new MappingexcelPbx();
                    mappingexcel.Id                      = 0;
                    mappingexcel.IsActive                = true;
                    mappingexcel.DeviceId                = excelMappingAC.DeviceId;
                    mappingexcel.CurrencyId              = Convert.ToInt32(EnumList.CurrencyType.USD); // as per current files its given in $
                    mappingexcel.HaveHeader              = excelMappingAC.HaveHeader;
                    mappingexcel.HaveTitle               = excelMappingAC.HaveTitle;
                    mappingexcel.TitleName               = excelMappingAC.TitleName;
                    mappingexcel.WorkSheetNo             = Convert.ToInt64(excelMappingAC.WorkSheetNo);
                    mappingexcel.ExcelColumnNameForTitle = string.IsNullOrEmpty(excelMappingAC.ExcelColumnNameForTitle) ? "" : excelMappingAC.ExcelColumnNameForTitle;
                    mappingexcel.ExcelReadingColumn      = string.IsNullOrEmpty(excelMappingAC.ExcelReadingColumn) ? "0" : excelMappingAC.ExcelReadingColumn;

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

                    await _dbTeleBilling_V01Context.AddAsync(mappingexcel);

                    await _dbTeleBilling_V01Context.SaveChangesAsync();

                    responeAC.Message    = _iStringConstant.ExcelMappingAddedSuccessfully;
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.AddPbxExcelMapping, loginUserName, userId, "PBX Excel mapping", (int)EnumList.ActionTemplateTypes.Add, mappingexcel.Id);

                    if (mappingexcel.Id > 0)
                    {
                        #region --> ADD Mapping column Details
                        if (excelMappingAC.dbfieldList.Count() > 0)
                        {
                            List <MappingexcelcolumnPbx> mappingExcelColumnslst = new List <MappingexcelcolumnPbx>();

                            foreach (var item in excelMappingAC.dbfieldList)
                            {
                                if (!string.IsNullOrEmpty(item.ColumnAddress))
                                {
                                    MappingexcelcolumnPbx excelColumn = new MappingexcelcolumnPbx();
                                    excelColumn.MappingExcelId            = mappingexcel.Id;
                                    excelColumn.MappingServiceTypeFieldId = item.Id;
                                    excelColumn.ExcelcolumnName           = item.ColumnAddress;
                                    excelColumn.FormatField = item.FormatField;
                                    mappingExcelColumnslst.Add(excelColumn);
                                }
                            }
                            await _dbTeleBilling_V01Context.AddRangeAsync(mappingExcelColumnslst);

                            await _dbTeleBilling_V01Context.SaveChangesAsync();

                            responeAC.Message    = _iStringConstant.ExcelMappingAddedSuccessfully;
                            responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                        }
                        #endregion
                    }
                }
                else
                {
                    responeAC.Message    = _iStringConstant.ExcelMappingExists;
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                }
                return(responeAC);
            }
            catch (Exception e)
            {
                responeAC.Message    = e.Message.ToString();
                responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                return(responeAC);
            }
        }