public void SaveConfiguration(AdditionConfiguration newConfig)
        {
            MediationServiceConfiguration ms = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();
            MedOutputFilesConfiguration   mo = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MedOutputFilesConfiguration>();
            var tarifDir = mo.TarificationFile;
            var errorDir = mo.ErrorFile;
            var rejDir   = mo.RejectedFile;

            ms.StartupTimeout        = int.Parse(newConfig.StartupTimeout);
            ms.StartTransfer         = int.Parse(newConfig.StartTransfer);
            ms.FileCreatedTimeout    = int.Parse(newConfig.FileCreatedTimeout);
            ms.NumberOfThreads       = int.Parse(newConfig.NumberOfThreads);
            ms.ProcessedDirectory    = newConfig.ProcessedDirectory;
            ms.TarificationDirectory = newConfig.TarificationDirectory;

            tarifDir.Directory = newConfig.TariffDirectory;
            tarifDir.Extension = newConfig.TariffExtension;
            rejDir.Directory   = newConfig.RejDirectory;
            rejDir.Extension   = newConfig.RejExtension;
            errorDir.Directory = newConfig.ErrDirectory;
            errorDir.Extension = newConfig.ErrExtension;

            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(mo.GetType(), mo);
            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(ms.GetType(), ms);

            string logString = "MediationOutputConfiguration and MediationServiceConfiguration has been changed";

            WriteLog("INSERT", "MED Configuration", "MedOutputConfiguration", System.Security.Principal.WindowsIdentity.GetCurrent().Name, logString, "");
        }
        public AdditionConfiguration GetAdditionalConfiguration()
        {
            MediationServiceConfiguration ms = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();
            MedOutputFilesConfiguration   mo = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MedOutputFilesConfiguration>();

            var tarifDir = mo.TarificationFile;
            var errorDir = mo.ErrorFile;
            var rejDir   = mo.RejectedFile;

            AdditionConfiguration obj = new AdditionConfiguration()
            {
                StartupTimeout        = ms.StartupTimeout.ToString(),
                StartTransfer         = ms.StartTransfer.ToString(),
                FileCreatedTimeout    = ms.FileCreatedTimeout.ToString(),
                NumberOfThreads       = ms.NumberOfThreads.ToString(),
                ProcessedDirectory    = ms.ProcessedDirectory.ToString(),
                TarificationDirectory = ms.TarificationDirectory.ToString(),
                TariffDirectory       = tarifDir.Directory.ToString(),
                TariffExtension       = tarifDir.Extension.ToString(),
                RejDirectory          = rejDir.Directory.ToString(),
                RejExtension          = rejDir.Extension.ToString(),
                ErrDirectory          = errorDir.Directory.ToString(),
                ErrExtension          = errorDir.Extension.ToString()
            };

            return(obj);
        }
Пример #3
0
        //helper methods
        private string GetFilePath(string filePath)
        {
            MediationServiceConfiguration mediationServiceConfig = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();
            string file = string.Empty;

            file = Path.GetFileName(filePath);
            string newFile = mediationServiceConfig.ProcessedDirectory + "\\" + file;

            return(newFile);
        }
Пример #4
0
        private string InputPath(string folder)
        {
            MediationServiceConfiguration mediationServiceConfig = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();

            string output_path = string.Empty;

            foreach (var value in mediationServiceConfig.InputDirectories)
            {
                if (value.FileType.ToString() == folder)
                {
                    output_path = value.Directory.ToString();
                    break;
                }
            }
            return(output_path);
        }
        public void ProcessSuspendedCDR(int sessionId)
        {
            try
            {
                DataTable sessionErrors = NtsMed.GetAllSessionErrors(sessionId);

                if (sessionErrors.Rows.Count > 0)
                {
                    string platformName = sessionErrors.Rows[0][0].ToString();
                    MediationServiceConfiguration medConfig = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();
                    var           id             = medConfig.InputDirectories;
                    string        inputDirectory = id.FirstOrDefault(p => p.FileType.ToLower().Equals(platformName.ToLower())).Directory;
                    StringBuilder sb             = new StringBuilder();
                    List <string> lines          = new List <string>();
                    foreach (DataRow dr in sessionErrors.Rows)
                    {
                        DataTable correctedLines = NtsMed.GetCorrectedLines(dr["cdr_id"].ToString());
                        string    line           = "";
                        foreach (DataRow dr2 in correctedLines.Rows)
                        {
                            line += dr2["field"].ToString() + ";";
                        }
                        line = line.Remove(line.Length - 1);
                        lines.Add(line);
                    }
                    UpdateFileStatus(sessionId, 5); // 5 - status: procesiran

                    System.IO.File.WriteAllLines(inputDirectory + "\\sporni\\" + "\\sporni_" + sessionId + ".txt", lines);
                }
                else
                {
                    UpdateFileStatus(sessionId, 5); // 5 - status: procesiran
                }
            }

            catch (Exception ex)
            {
                FORIS.Interbilling.NTS.Mediation.Logger.LogError(ex.ToString());
            }
        }
        public void DeletePlatformInformation(string index, string platformId, string platformName)
        {
            FileTypes ft = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <FileTypes>();
            MediationServiceConfiguration ms = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();
            CheckInput ci           = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <CheckInput>();
            var        fileTypeList = ft.FileTypesList;
            var        inputDir     = ms.InputDirectories;
            var        arhDir       = ms.ArchiveDirectories;
            var        files        = ci.Fajlovi;

            string fileTypeID   = platformId;
            string fileTypeName = platformName;
            var    delFile      = files.Find(p => p.FileType == fileTypeName);


            inputDir = inputDir.Where(p => p.FileType != fileTypeName).ToArray();
            arhDir   = arhDir.Where(p => p.FileType != fileTypeName).ToArray();
            fileTypeList.RemoveAt(Convert.ToInt32(index));
            files.Remove(delFile);
            ms.InputDirectories   = inputDir;
            ms.ArchiveDirectories = arhDir;

            string logString = "FileTypeID: " + fileTypeID + "|" +
                               "FileTypeName: " + fileTypeName;

            WriteLog("DELETE", "MED Configuration", "FileTypes", WindowsIdentity.GetCurrent().Name, logString, "");

            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(ft.GetType(), ft);
            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(ms.GetType(), ms);
            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(ci.GetType(), ci);
            try
            {
                NtsMed.DeleteFileSource(int.Parse(fileTypeID), fileTypeName);
            }
            catch (Exception ex)
            {
                FORIS.Interbilling.NTS.Mediation.Logger.LogError(ex.ToString());
            }
        }
Пример #7
0
        public void ReprocessSessions(List <ReprocessRequest> req)
        {
            MediationServiceConfiguration mediationServiceConfig = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();

            foreach (var item in req)
            {
                string filePath = GetFilePath(item.Path);
                string folder   = Path.GetFileName(Path.GetDirectoryName(item.Path));

                if (File.Exists(filePath))
                {
                    string fileName = Path.GetFileName(filePath);
                    string oldFile  = Path.Combine(mediationServiceConfig.ProcessedDirectory, fileName);
                    string newFile  = Path.Combine(InputPath(folder), "rep_" + item.Id + "_" + fileName);
                    File.Move(oldFile, newFile);

                    MedSessionToUpdate medSessionToUpdate = new MedSessionToUpdate();
                    medSessionToUpdate.MedSessionId       = item.Id;
                    medSessionToUpdate.LastSuccessfulStep = 0;
                    NtsMed.UpdateMEDSession(medSessionToUpdate);
                }
            }
        }
        public void AddPlatformInformation(PlatformInfo obj)
        {
            FileTypes ft = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <FileTypes>();
            MediationServiceConfiguration ms = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();
            CheckInput ci = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <CheckInput>();

            FileType     newFileType = new FileType();
            MedDirectory medIz       = new MedDirectory();
            MedDirectory medArh      = new MedDirectory();
            Fajl         fajl        = new Fajl();
            //TODO PORT I INTERVAL MORAJU BITI INT
            var inputDir  = ms.InputDirectories;
            var arhiveDir = ms.ArchiveDirectories;
            var files     = ci.Fajlovi;

            newFileType.FileTypeID   = obj.PlatformId;
            newFileType.FileTypeName = obj.Platform;
            medIz.Directory          = obj.InputFilePath;
            medIz.FileFilter         = obj.InputFileFormat;
            medIz.FileType           = obj.Platform;

            medArh.DirectoryIzlazni = obj.OutputFileDirectory;
            medArh.DirectoryIzvorni = obj.OriginFileDirectory;
            medArh.IP       = obj.FTPServer;
            medArh.Port     = obj.Port;
            medArh.Username = obj.Username;
            medArh.Password = obj.Password;
            medArh.FileType = obj.Platform;

            fajl.FileType = obj.Platform;
            fajl.TimeSpan = obj.IncomingInterval;

            ft.FileTypesList.Add(newFileType);

            Array.Resize(ref inputDir, inputDir.Length + 1);
            inputDir[inputDir.Length - 1] = medIz;
            Array.Resize(ref arhiveDir, arhiveDir.Length + 1);
            arhiveDir[arhiveDir.Length - 1] = medArh;
            files.Add(fajl);
            ms.InputDirectories   = inputDir;
            ms.ArchiveDirectories = arhiveDir;


            string logString = "FileTypeID: " + newFileType.FileTypeID + "|" +
                               "FileTypeName: " + newFileType.FileTypeName + "|" +
                               "Directory:" + medIz.Directory + "|" +
                               "FileFilter:" + medIz.FileFilter + "|" +
                               "DirectoryIzlazni:" + medArh.DirectoryIzlazni + "|" +
                               "DirectoryIzvorni: " + medArh.DirectoryIzvorni + "|" +
                               "IP:" + medArh.IP + "|" +
                               "Port:" + medArh.Port + "|" +
                               "Username:"******"|" +
                               "Password: "******"|" +
                               "TimeSpan: " + fajl.TimeSpan;

            WriteLog("INSERT", "MED Configuration", "FileTypes", WindowsIdentity.GetCurrent().Name, logString, "");

            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(ft.GetType(), ft);
            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(ft.GetType(), ms);
            FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.SaveConfiguration(ft.GetType(), ci);

            try
            {
                NtsMed.InsertFileSource(int.Parse(newFileType.FileTypeID), newFileType.FileTypeName);
            }
            catch (Exception ex)
            {
                FORIS.Interbilling.NTS.Mediation.Logger.LogError(ex.ToString());
            }
        }
        public List <PlatformInfo> GetPlatformInformations()
        {
            FileTypes ft = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <FileTypes>();
            MediationServiceConfiguration ms = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <MediationServiceConfiguration>();
            CheckInput ci   = FORIS.Interbilling.NTS.Mediation.Configurations.Configuration.GetNotCashedConfiguration <CheckInput>();
            var        dir  = ms.InputDirectories;
            var        dir2 = ms.ArchiveDirectories;

            DataTable dtFileTypes = new DataTable();

            dtFileTypes.Columns.Add("FileTypeID");
            dtFileTypes.Columns.Add("FileTypeName");
            dtFileTypes.Columns.Add("Directory");
            dtFileTypes.Columns.Add("FileFilter");
            dtFileTypes.Columns.Add("DirectoryIzlazni");
            dtFileTypes.Columns.Add("DirectoryIzvorni");
            dtFileTypes.Columns.Add("IP");
            dtFileTypes.Columns.Add("Port");
            dtFileTypes.Columns.Add("Username");
            dtFileTypes.Columns.Add("Password");
            dtFileTypes.Columns.Add("TimeSpan");

            var fileTypeList = ft.FileTypesList;

            List <PlatformInfo> list = new List <PlatformInfo>(); //

            foreach (var fileType in fileTypeList)
            {
                PlatformInfo obj = new PlatformInfo();
                obj.PlatformId = fileType.FileTypeID;
                obj.Platform   = fileType.FileTypeName;

                if (ci.Fajlovi.Exists(p => p.FileType == fileType.FileTypeName))
                {
                    obj.IncomingInterval = ci.Fajlovi.Find(p => p.FileType == fileType.FileTypeName).TimeSpan;
                }


                foreach (var d in dir)
                {
                    if (d.FileType == fileType.FileTypeName)
                    {
                        obj.InputFilePath   = d.Directory;
                        obj.InputFileFormat = d.FileFilter;
                    }
                }
                foreach (var d2 in dir2)
                {
                    if (d2.FileType == fileType.FileTypeName)
                    {
                        obj.OutputFileDirectory = d2.DirectoryIzlazni;

                        obj.OriginFileDirectory = d2.DirectoryIzvorni;
                        obj.FTPServer           = d2.IP;
                        obj.Port     = d2.Port;
                        obj.Username = d2.Username;
                        obj.Password = d2.Password;
                    }
                }

                list.Add(obj);
            }
            return(list);
        }