//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.269 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace Pluto.Api { using System; using RemObjects.SDK; using RemObjects.SDK.Types; using RemObjects.SDK.Server; using RemObjects.SDK.Server.ClassFactories; using PlutoServer.MSL.Connectors; using System.Xml; using System.Xml.Serialization; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; [RemObjects.SDK.Server.ClassFactories.StandardClassFactory()] [RemObjects.SDK.Server.Service(Name = "Billing", InvokerClass = typeof(Billing_Invoker), ActivatorClass = typeof(Billing_Activator))] public class Billing : RemObjects.SDK.Server.Service, IBilling { private System.ComponentModel.Container components = null; public Billing() : base() { this.InitializeComponent(); } private void InitializeComponent() { } protected override void Dispose(bool aDisposing) { if (aDisposing) { if ((this.components != null)) { this.components.Dispose(); } } base.Dispose(aDisposing); } public virtual bool PostBilling(string apiKey, string User, BillingPost1 billingInfo) { if (ProductType.IsKeyLytec(apiKey)) { return LytecConnector.PostBilling(apiKey, User, billingInfo); } else if (ProductType.IsKeyMedisoft(apiKey)) { return MedisoftConnector.PostBilling(apiKey, User, billingInfo); } MSLSpecific.Logger.Error("Invalid Product"); return false; } #region Superbill Templates /// /// Load a specified superbill for the specified practice /// /// /// /// public virtual System.Xml.XmlNode LoadSuperBill(string apiKey, string Name) { try { if (!String.IsNullOrEmpty(Name)) { string strPath = ProductType.GetProductSpecificSuperBillDirectoryPath(apiKey); string file = strPath + "\\" + Name + "." + ProductType.MOBILE_SB_FILE_TYPE; if (System.IO.File.Exists(file)) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(file); return xmlDocument; } } } catch (Exception e) { MSLSpecific.Logger.Error("LoadSuperBill", e); } return null; } /// /// Save a specified superbill for a specified practice /// /// /// /// public virtual void SaveSuperBill(string apiKey, string Name, System.Xml.XmlNode Data) { try { if (Data != null && !String.IsNullOrEmpty(Name)) { string strPath = ProductType.GetProductSpecificSuperBillDirectoryPath(apiKey); XmlDocument xmlDocument = new XmlDocument(); XmlNode oNode = xmlDocument.ImportNode(Data, true); xmlDocument.AppendChild(oNode); xmlDocument.Save(strPath + "\\" + Name + "." + ProductType.MOBILE_SB_FILE_TYPE); } } catch (Exception e) { MSLSpecific.Logger.Error("SaveSuperBill", e); } } /// /// Retrieve a list of available superbills for a specified practice /// /// /// public virtual string[] GetListOfAvailableSuperBills(string apiKey) { try { string strPath = ProductType.GetProductSpecificSuperBillDirectoryPath(apiKey); string[] files = Directory.GetFiles(strPath, "*." + ProductType.MOBILE_SB_FILE_TYPE, SearchOption.TopDirectoryOnly); List FileNames = new List(); foreach (string file in files) FileNames.Add(Path.GetFileNameWithoutExtension(file)); return FileNames.ToArray(); } catch (Exception e) { MSLSpecific.Logger.Error("GetListOfAvailableSuperBills", e); } return null; } /// /// Delete a specified superbill for a specified practice /// /// /// public virtual void DeleteSuperbill(string apiKey, string Name) { try { string strPath = ProductType.GetProductSpecificSuperBillDirectoryPath(apiKey); string[] files = Directory.GetFiles(strPath, "*." + ProductType.MOBILE_SB_FILE_TYPE, SearchOption.TopDirectoryOnly); foreach (string file in files) { var fileName = Path.GetFileNameWithoutExtension(file); if (fileName.Equals(Name)) { File.Delete(file); } } } catch (Exception e) { MSLSpecific.Logger.Error("Deleting Superbill", e); } } #endregion } }