public ConfigUpdater(Configuration config, VLogger log, int frequency, Delegate method, Platform platform) { this.config = config; this.logger = log; this.frequency = frequency; this.methodToInvoke = method; this.platform = platform; tcb = ConfigSync; timer = new Timer(tcb, null, 500, frequency); if (System.IO.Directory.Exists(temporaryZipLocation)) // creating temporary directory location for downloading and holding zips Utils.CleanDirectory(logger, temporaryZipLocation); Utils.CreateDirectory(logger, temporaryZipLocation); this.status = new UpdateStatus(this.frequency); ConfigUpdaterWebService webService = new ConfigUpdaterWebService(logger, this); string homeIdPart = ""; if (!string.IsNullOrWhiteSpace(Settings.HomeId)) homeIdPart = "/" + Settings.HomeId; string url = Constants.InfoServiceAddress + homeIdPart + "/config"; serviceHost = ConfigUpdaterWebService.CreateServiceHost(webService, new Uri(url)); serviceHost.Open(); Utils.structuredLog(logger, "I", "ConfigUpdaterWebService initiated at " + url); }
public HeartbeatService(Platform platform, VLogger log) { this.platform = platform; this.logger = log; this.tcb = SendHeartbeat; this.sequenceNumber = 0; try { this.uri = new Uri("https://" + GetHeartbeatServiceHostString() + ":" + Constants.HeartbeatServiceSecurePort + "/" + Constants.HeartbeatServiceWcfListenerEndPointUrlSuffix); this.heartbeatIntervalMins = Settings.HeartbeatIntervalMins; if (this.heartbeatIntervalMins < Constants.MinHeartbeatIntervalInMins) this.heartbeatIntervalMins = Constants.MinHeartbeatIntervalInMins; if (this.heartbeatIntervalMins > Constants.MaxHeartbeatIntervalInMins) this.heartbeatIntervalMins = Constants.MaxHeartbeatIntervalInMins; this.perfCountPercentProcTime = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName, true); this.perfCountWorkingSet = new PerformanceCounter("Process", "Working Set", Process.GetCurrentProcess().ProcessName, true); } catch (Exception e) { logger.Log("Platform failed failed to construct heartbeat service , Exception={0}", e.Message); } }
public static string GetHomeOSUpdateVersion(string configFile, VLogger logger) { string homeosUpdateVersion = Constants.UnknownHomeOSUpdateVersionValue; try { XElement xmlTree = XElement.Load(configFile); IEnumerable<XElement> das = from el in xmlTree.DescendantsAndSelf() where el.Name == "add" && el.Parent.Name == "appSettings" && el.Attribute("key").Value == Constants.ConfigAppSettingKeyHomeOSUpdateVersion select el; if (das.Count() > 0) { homeosUpdateVersion = das.First().Attribute("value").Value; } } catch (Exception e) { if (e is DirectoryNotFoundException || e is FileNotFoundException) { if (logger != null) logger.Log("Warning: File not found: " + configFile); } else { if (logger != null) logger.Log(String.Format("GetHomeOSUpdateVersion call failed: Cannot parse {0}. {1}", configFile, "The vervsion is not returned")); } } return homeosUpdateVersion; }
public InfoService (Platform platform, VLogger logger) { this.platform = platform; this.logger = logger; string homeIdPart = string.Empty; //if (HomeOS.Shared.Globals.HomeId != null) //{ // homeIdPart = "/" + HomeOS.Shared.Globals.HomeId; //} host = new ServiceHost(this, new Uri(HomeOS.Hub.Common.Constants.InfoServiceAddress + homeIdPart)); host.AddServiceEndpoint(typeof(IHomeOSInfo), new WebHttpBinding(), "").Behaviors.Add(new System.ServiceModel.Description.WebHttpBehavior()); var smb = new System.ServiceModel.Description.ServiceMetadataBehavior(); smb.HttpGetEnabled = true; host.Description.Behaviors.Add(smb); try { host.Open(); } catch (Exception e) { logger.Log("Could not open the service host: " + e.Message + @" Possible issues: 1) are you running the command prompt / Visual Studio in administrator mode? 2) is another instance of Platform running? 3) is a local copy of Gatekeeper running? 4) is another process occupying the InfoServicePort (51430)?"); throw e; } }
protected EmailerBase(string smtpServer, string smtpUsername, string smtpPassword, VLogger logger) { this.smtpServer = smtpServer; this.smtpUsername = smtpUsername; this.smtpPassword = smtpPassword; this.logger = logger; }
public AuthenticationService(VLogger logger, AuthSvcViewOfPlatform platform) { this.logger = logger; this.platform = platform; }
public SafeServiceHost(VLogger logger, Type contractType, SafeServicePolicyDecider consumer, string webAddressSuffix, params string[] addresses) { object instance = consumer; this.policyDecider = consumer; this.logger = logger; List<Uri> addressList = new List<Uri>(); foreach (String address in addresses) { addressList.Add(new Uri(address+webAddressSuffix)); } serviceHost = new ServiceHost(instance, addressList.ToArray()); serviceHost.Authentication.ServiceAuthenticationManager = new SafeServiceAuthenticationManager(); serviceHost.Authorization.ServiceAuthorizationManager = new SafeServiceAuthorizationManager(consumer, this); foreach (string address in addresses) { var contract = ContractDescription.GetContract(contractType); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(address+webAddressSuffix)); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); serviceHost.AddServiceEndpoint(webEndPoint); } }
public DiscoveryHelper(Platform platform, VLogger logger) { this.platform = platform; this.logger = logger; listener = new UdpClient(new IPEndPoint(IPAddress.Any, Common.Constants.PlatformDiscoveryPort)); BeginReceive(); }
public void Init(string baseUrl, string baseDir, ScoutViewOfPlatform platform, VLogger logger) { this.baseUrl = baseUrl; this.platform = platform; this.logger = logger; scoutService = new BluetoothScoutService(baseUrl + "/webapp", this, platform, logger); appServer = new WebFileServer(baseDir, baseUrl, logger); logger.Log("BluetoothScout initialized."); }
internal static ILogger V2C(VLogger view) { if (!System.Runtime.Remoting.RemotingServices.IsObjectOutOfAppDomain(view) && (view.GetType().Equals(typeof(LoggerC2V)))) { return ((LoggerC2V)(view)).GetSourceContract(); } else { return new LoggerV2C(view); } }
public static ServiceHost CreateServiceHost(VLogger logger, VPlatform platform, IAuthenticationService instance) { string homeIdPart = string.Empty, homeId = platform.GetConfSetting("HomeId"); if (!string.IsNullOrEmpty(homeId)) homeIdPart = "/" + homeId; ServiceHost serviceHost = new ServiceHost(instance, new Uri(Constants.InfoServiceAddress + homeIdPart + "/" + authEndpoint)); var contract = ContractDescription.GetContract(typeof(IAuthenticationService)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(new Uri(Constants.InfoServiceAddress + homeIdPart + "/" + authEndpoint))); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); serviceHost.AddServiceEndpoint(webEndPoint); return serviceHost; }
public void Init(string baseUrl, string baseDir, ScoutViewOfPlatform platform, VLogger logger) { this.baseUrl = baseUrl; this.platform = platform; this.logger = logger; scoutService = new SynapseWirelessScoutService(baseUrl + "/webapp", this, logger); appServer = new WebFileServer(baseDir, baseUrl, logger); startSynapseController(); logger.Log("SynapseWirelessScout initialized"); }
public WebFileServer(string directory, string baseUrl, VLogger logger) { this.logger = logger; this.directory = directory; this.host = new ServiceHost(this, new Uri(baseUrl)); this.host.AddServiceEndpoint(typeof(IWebFileServer), new WebHttpBinding(), "").Behaviors.Add(new System.ServiceModel.Description.WebHttpBehavior()); var smb = new System.ServiceModel.Description.ServiceMetadataBehavior(); smb.HttpGetEnabled = true; this.host.Description.Behaviors.Add(smb); this.host.Open(); }
public GuiService(Platform platform, Configuration config, HomeStoreInfo hsInfo, VLogger logger) { this.platform = platform; this.config = config; this.homeStoreInfo = hsInfo; this.logger = logger; string svcBase = Common.Constants.InfoServiceAddress + "/" ; //let us start serving the files string webBase = svcBase + Common.Constants.GuiServiceSuffixWeb; webFileServer = new WebFileServer(Common.Constants.DashboardRoot, webBase, logger); serviceHostWeb = OpenUnsafeServiceWeb(webBase + Common.Constants.AjaxSuffix); }
public SafeServiceHost(VLogger logger, SafeServicePolicyDecider consumer, object instance, params string[] addresses) { this.policyDecider = consumer; this.logger = logger; List<Uri> addressList = new List<Uri>(); foreach (String address in addresses) { addressList.Add(new Uri(address)); } serviceHost = new ServiceHost(instance, addressList.ToArray()); serviceHost.Authentication.ServiceAuthenticationManager = new SafeServiceAuthenticationManager(); serviceHost.Authorization.ServiceAuthorizationManager = new SafeServiceAuthorizationManager(consumer, this); }
public static void DoLeaseOperation(VLogger logger, CloudBlob blob, string leaseId, LeaseAction action, int AzureBlobLeaseTimeout) { try { if (blob == null || leaseId == null) return; var creds = blob.ServiceClient.Credentials; var transformedUri = new Uri(creds.TransformUri(blob.Uri.ToString())); var req = BlobRequest.Lease(transformedUri, AzureBlobLeaseTimeout, action, leaseId); creds.SignRequest(req); req.GetResponse().Close(); } catch (WebException e) { Utils.structuredLog(logger, "WebException", e.Message + ". DoLeaseOperation, blob: " + blob.Name + ", leaseId: " + leaseId + ", action " + action); } }
public void Init(string baseUrl, string baseDir, ScoutViewOfPlatform platform, VLogger logger) { this.baseUrl = baseUrl; this.platform = platform; this.logger = logger; scoutService = new AxisCamScoutService(baseUrl + "/webapp", this, logger); appServer = new WebFileServer(baseDir, baseUrl, logger); logger.Log("AxisCamScout initialized"); //create a time that fires ScanNow() periodically var scanTimer = new System.Timers.Timer(ScoutHelper.DefaultDeviceDiscoveryPeriodSec * 1000); scanTimer.Enabled = true; scanTimer.Elapsed += new System.Timers.ElapsedEventHandler(ScanNow); }
public static SafeServiceHost CreateServiceHost(VLogger logger, ModuleBase moduleBase, ISimplexValveControllerNotifierContract instance, string address) { SafeServiceHost service = new SafeServiceHost(logger, moduleBase, instance, address); var contract = ContractDescription.GetContract(typeof(ISimplexValveControllerNotifierContract)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(service.BaseAddresses()[0])); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); service.AddServiceEndpoint(webEndPoint); service.AddServiceMetadataBehavior(new ServiceMetadataBehavior()); return service; }
public void Init(string baseUrl, string baseDir, ScoutViewOfPlatform platform, VLogger logger) { this.baseUrl = baseUrl; this.platform = platform; this.logger = logger; scoutService = new OwmScoutService(baseUrl + "/webapp", this, platform, logger); appServer = new WebFileServer(baseDir, baseUrl, logger); //initialize the device we'll use device = new Device("OpenWeatherMap", UniqueDeviceId(), "", DateTime.Now, "HomeOS.Hub.Drivers.OpenWeatherMap"); // the parameters are: uniqueName, appid, lattitude, longitude device.Details.DriverParams = new List<string>() { device.UniqueName, DefaultAppId, "", "" }; logger.Log("DummyScout initialized"); }
public BluetoothScoutService(string baseAddress, BluetoothScout btScout, ScoutViewOfPlatform platform, VLogger logger) { this.logger = logger; this.bluetoothScout = btScout; service = new SafeServiceHost(logger, platform, this, baseAddress); var contract = ContractDescription.GetContract(typeof(IBluetoothScoutContract)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(baseAddress)); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); service.AddServiceEndpoint(webEndPoint); service.AddServiceMetadataBehavior(new ServiceMetadataBehavior()); service.Open(); }
public static void Init(VLogger loggerObject) { lock (lockObject) { if (instance != null) loggerObject.Log("Duplicate Init called on ScoutHelper"); instance = new object(); } logger = loggerObject; //create a time that fires ScanNow() periodically upnpScanTimer = new Timer(ScoutHelper.DefaultDeviceDiscoveryPeriodSec * 1000); //upnpScanTimer = new Timer(1 * 1000); // for debugging upnpScanTimer.Enabled = true; upnpScanTimer.Elapsed += new ElapsedEventHandler(UpnpScan); }
/// <summary> /// Method to check if a blockblob exists already /// </summary> /// <param name="logger"></param> /// <param name="blob"></param> /// <returns></returns> public static bool BlockBlobExists(VLogger logger, CloudBlockBlob blob) { try { blob.FetchAttributes(); return true; } catch (StorageClientException e) { if (e.ErrorCode == StorageErrorCode.ResourceNotFound) { Utils.structuredLog(logger, "E", "BlockBlob: " + blob.Name + " does not exist."); return false; } else { throw; } } }
public HueBridgeScoutService(string baseAddress, HueBridgeScout hbScout, VLogger logger) { this.logger = logger; this.hueBridgeScout = hbScout; service = new ServiceHost(this, new Uri(baseAddress)); var contract = ContractDescription.GetContract(typeof(IHueBridgeScoutContract)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(baseAddress)); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); service.AddServiceEndpoint(webEndPoint); service.Description.Behaviors.Add(new ServiceMetadataBehavior()); service.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex"); service.Open(); }
/*public static ServiceHost CreateServiceHost(ISimplexDoorjambContract instance, Uri baseAddress)*/ public static SafeServiceHost CreateServiceHost(VLogger logger, ModuleBase moduleBase, ISimplexDoorjambContract instance, string address) { SafeServiceHost service = new SafeServiceHost(logger, moduleBase, instance, address); var contract = ContractDescription.GetContract(typeof(ISimplexDoorjambContract)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(service.BaseAddresses()[0])); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); service.AddServiceEndpoint(webEndPoint); service.AddServiceMetadataBehavior(new ServiceMetadataBehavior()); //service.Description.Behaviors.Add(new ServiceMetadataBehavior()); //service.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex"); return service; }
public MindWaveScoutService(string baseAddress, MindWaveScout wcScout, ScoutViewOfPlatform platform, VLogger logger) { this.logger = logger; this.webCamScout = wcScout; service = new SafeServiceHost(logger, platform, this, baseAddress); var contract = ContractDescription.GetContract(typeof(IMindWaveScoutContract)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(baseAddress)); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); service.AddServiceEndpoint(webEndPoint); //service.Description.Behaviors.Add(new ServiceMetadataBehavior()); //service.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex"); service.AddServiceMetadataBehavior(new ServiceMetadataBehavior()); service.Open(); }
//public string DeleteAttributeSetValue(VA005_DeleteAttributeSetValue value) //{ // //MAttributeValue obj = new MAttributeValue(_ctx, value.attributesetdelID, null); // MAttributeSet obj = new MAttributeSet(_ctx, value.attributesetdelID, null); // int attvalid = obj.GetM_AttributeSet_ID(); // bool _result = false; // try // { // _result = obj.Delete(true); // } // catch (Exception e) // { // return e.Message; // } // if (_result) // { // //return Msg.GetMsg(_ctx,"VA005_Deleted"); // return attvalid.ToString(); // } // else // { // return Msg.GetMsg(_ctx, "VA005_NotDeleted"); // } //} public string DeleteAttributeSetValue(List <Int32> value) { string _result = ""; for (int i = 0; i < value.Count; i++) { MAttribute obj = new MAttribute(_ctx, value[i], null); int attvalid = obj.GetM_Attribute_ID(); try { if (!obj.Delete(true)) { ValueNamePair pp = VLogger.RetrieveError(); _result += pp.ToString() + "/n"; } } catch (Exception e) { } } return(_result); }
public static string AcquireLease(VLogger logger, CloudBlockBlob blob, int AzureBlobLeaseTimeout) { try { var creds = blob.ServiceClient.Credentials; var transformedUri = new Uri(creds.TransformUri(blob.Uri.ToString())); var req = BlobRequest.Lease(transformedUri, AzureBlobLeaseTimeout, // timeout (in seconds) LeaseAction.Acquire, // as opposed to "break" "release" or "renew" null); // name of the existing lease, if any blob.ServiceClient.Credentials.SignRequest(req); using (var response = req.GetResponse()) { return response.Headers["x-ms-lease-id"]; } } catch (WebException e) { Utils.structuredLog(logger, "WebException", e.Message + ". AcquireLease, blob: " + blob); return null; } }
public static string GetMD5HashOfFile(VLogger logger, string filePath) { try { FileStream file = new FileStream(filePath, FileMode.Open); MD5 md5 = new MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } return(sb.ToString()); } catch (Exception e) { Utils.structuredLog(logger, "E", e.Message + ". GetMD5HashOfFile(), file" + filePath); return(""); } }
public ArduinoScoutService(string baseAddress, ArduinoScout wcScout, ScoutViewOfPlatform platform, VLogger logger) { this.logger = logger; this.webCamScout = wcScout; service = new SafeServiceHost(logger, platform, this, baseAddress); var contract = ContractDescription.GetContract(typeof(IArduinoScoutContract)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(baseAddress)); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); service.AddServiceEndpoint(webEndPoint); //service.Description.Behaviors.Add(new ServiceMetadataBehavior()); //service.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex"); service.AddServiceMetadataBehavior(new ServiceMetadataBehavior()); service.Open(); }
internal ActiveCNXConnection(DigitalMediaPanelDescription connectionDescription, VLogger logger) { this.logger = logger; this.acnxConnection = new ActiveCNX(); // Define event handlers for the various events that are generated by ActiveCNX.NET this.acnxConnection.onConnect += new Crestron.ActiveCNX.ActiveCNXConnectionEventHandler(acnxConnection_onConnect); this.acnxConnection.onDisconnect += new Crestron.ActiveCNX.ActiveCNXConnectionEventHandler(acnxConnection_onDisconnect); this.acnxConnection.onError += new Crestron.ActiveCNX.ActiveCNXErrorEventHandler(acnxConnection_onError); /* this.acnxConnection.onAnalog +=new Crestron.ActiveCNX.ActiveCNXEventHandler(acnxConnection_onAnalog); * this.acnxConnection.onDigital += new Crestron.ActiveCNX.ActiveCNXEventHandler(acnxConnection_onDigital); * this.acnxConnection.onSerial += new Crestron.ActiveCNX.ActiveCNXEventHandler(acnxConnection_onSerial); * this.acnxConnection.onCertVerification += new Crestron.ActiveCNX.ActiveCNXCertificateEventHandler(acnxConnection_onCertVerification); * */ if ((connectionDescription.IPAddress != null) && (connectionDescription.IPPort > 0)) { /* this.acnxConnection.Connect(connectionDescription.IPAddress, * connectionDescription.IPID, connectionDescription.UserName, connectionDescription.Password, * connectionDescription.IPPort, connectionDescription.UseSSL, 0, 0);*/ } }
/// <summary> /// Create Field Value Object /// </summary> /// <param name="ctx">context</param> /// <param name="AD_Tab_ID">Tab Id</param> /// <param name="AD_TabPanel_ID">Tab Panel ID</param> /// <param name="dr">datarow</param> /// <returns>object of this Class</returns> public static GridTabPanelVO Create(Ctx ctx, int windowNo, int AD_Tab_ID, IDataReader dr) { GridTabPanelVO vo = new GridTabPanelVO(ctx, windowNo, AD_Tab_ID); try { vo.AD_Tab_ID = Convert.ToInt32(dr["AD_Tab_ID"]); vo.AD_TabPanel_ID = Convert.ToInt32(dr["AD_TabPanel_ID"]); vo.Classname = dr["ClassName"].ToString(); vo.IconPath = dr["IconPath"].ToString(); vo.IsDefault = dr["IsDefault"].Equals("Y") ? true : false; vo.Name = dr["Name"].ToString(); vo.SeqNo = Convert.ToInt32(dr["Seqno"]); vo.ExtraInfo = dr["ExtraInfo"].ToString(); } catch (Exception ex) { VLogger.Get().Log(Level.SEVERE, "Exception while getting Tab Pabel info for Tab =" + AD_Tab_ID, ex); return(null); } return(vo); }
} // create /// <summary> /// * Create MTab VO /// </summary> /// <param name="wVO">Window VO Object</param> /// <param name="TabNo">Tab Number</param> /// <param name="dr">Datarow</param> /// <param name="isRO">Is Read Only</param> /// <param name="onlyCurrentDays">only current day</param> /// <param name="AD_UserDef_Win_ID">window id</param> /// <returns>this object</returns> public static GridTabVO Create(Ctx ctx, int windowNo, int AD_Window_Id, int TabNo, IDataReader dr, bool isRO, int onlyCurrentDays, int AD_UserDef_Win_ID) { VLogger.Get().Config("#" + TabNo); GridTabVO vo = new GridTabVO(ctx, windowNo); vo.AD_Window_ID = AD_Window_Id; vo.tabNo = TabNo; // if (!LoadTabDetails(vo, dr)) { return(null); } if (isRO) { VLogger.Get().Fine("Tab is ReadOnly"); vo.IsReadOnly = true; } vo.onlyCurrentDays = onlyCurrentDays; // Create Fields if (vo.IsSortTab) { vo.fields = new List <GridFieldVO>(); // dummy } else { CreateFields(vo, AD_UserDef_Win_ID); if (vo.fields == null || vo.fields.Count == 0) { VLogger.Get().Log(Level.SEVERE, vo.Name + ": No Fields"); return(null); } } return(vo); } // create
/// <summary> /// Save File to harddisk at given path /// </summary> /// <param name="filePath">out file</param> /// <returns>file</returns> public object SaveFile(string filePath) { // if no data, return if (_data == null || _data.Length == 0) { return(null); } try { // create file at specified path FileStream fOutStream = new FileStream(filePath, FileMode.Create, FileAccess.Write); BinaryWriter bw = new BinaryWriter(fOutStream); // write the binary data onto the file bw.Write(_data, 0, _data.Length); bw.Flush(); bw.Close(); } catch (Exception e) { VLogger.Get().Severe("AttachmentEntrySave" + e.Message); } return("1"); }
public void Init(string baseUrl, string baseDir, ScoutViewOfPlatform platform, VLogger logger) { this.baseUrl = baseUrl; this.platform = platform; this.logger = logger; scoutService = new ValveScoutService(baseUrl + "/webapp", this, platform, logger); appServer = new WebFileServer(baseDir, baseUrl, logger); //IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, listenPortNumber); //listenClient = new UdpClient(endpoint); //listenClient.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.PacketInformation, true); //listenClient.Client.BeginReceiveMessageFrom(asyncBuffer, 0, 2000, asyncSocketFlags, ref asyncRemoteEndPoint, new AsyncCallback(ReceiveCallback), null); //create a time that fires ScanNow() periodically var scanTimer = new Timer(ScoutHelper.DefaultDeviceDiscoveryPeriodSec * 1000); scanTimer.Enabled = true; scanTimer.Elapsed += new ElapsedEventHandler(ScanNow); logger.Log("ValveScout initialized"); }
public static List <string> GetFileNamesInVersionDef(VLogger logger, string configDir) { List <string> filesInVersion = Constants.DefaultConfigVersionDefinition.ToList(); List <string> filesInConfigDir = Utils.ListFiles(logger, configDir); List <string> configFilesToHash = filesInVersion.ToList(); try { filesInVersion = GetVersionDef(logger, configDir); filesInConfigDir.Sort(); configFilesToHash = filesInConfigDir.Intersect(filesInVersion.ToList()).ToList(); } catch (Exception e) { if (null != logger) { Utils.structuredLog(logger, "E", e.Message + " .GetConfigVersion"); } } configFilesToHash.Sort(); return(configFilesToHash); }
public static List <string> GetVersionDef(VLogger logger, string configDir) { List <string> retVal = new List <string>(); try { string versionDefinition = Utils.ReadFile(logger, configDir + "\\" + VersionDefinitionFileName); if (!string.IsNullOrEmpty(versionDefinition)) { retVal = versionDefinition.Split(';').ToList(); retVal.Sort(); } } catch (Exception e) { if (null != logger) { Utils.structuredLog(logger, "E", e.Message + " .GetVersionDef " + configDir); } } return(retVal); }
/// <summary> /// Generates a url of report with parameters. /// </summary> /// <param name="ctx"></param> /// <param name="log"></param> /// <param name="pi"></param> /// <returns></returns> public string GetReportString(Ctx ctx, VLogger log, VAdvantage.ProcessEngine.ProcessInfo pi) { string reportFilePath = ""; List <string> result = GetUserBILogin(ctx, log); int outvalue = 0; // check if return result returned by login is token or interger. If int value then show respective message. if (!int.TryParse(result[0], out outvalue)) { object biRepID = DB.ExecuteScalar("SELECT VA039_BIREPORTID FROM AD_PRocess where AD_Process_ID=" + pi.GetAD_Process_ID()); int rID = GetReportID(ctx, biRepID.ToString()); string filters = GetReportParameters(ctx, rID, pi.GetAD_PInstance_ID(), pi); reportFilePath = result[1] + "JsAPI?clientOrg=" + MClient.Get(ctx).GetValue() + "&reportUUID=" + biRepID + "&token=" + result[0] + "&showFilters=false&showInfo=false" + filters; } else { if (outvalue == 1) { reportFilePath = Msg.GetMsg(ctx, "VA037_BIToolMembership"); } else if (outvalue == 2) { reportFilePath = Msg.GetMsg(ctx, "VA037_BIUrlNotFound"); } else if (outvalue == 3) { reportFilePath = Msg.GetMsg(ctx, "VA037_NotBIUser"); } else if (outvalue == 4) { reportFilePath = Msg.GetMsg(ctx, "VA037_BICallingError"); } } return(reportFilePath); }
public async Task <List <Employee> > ListByOrganisationAsync(int organisationId, int pageNumber) { try { CurrentPageNumber = pageNumber; using (var context = new VTestsContext(OptionsBuilder.Options)) { List <Employee> result = await context.Set <Employee>().AsNoTracking() .Where(e => (e.IsDeleted == false || e.IsDeleted == null) && e.OrganisationId == organisationId) .Include(r => r.Organisation) .OrderBy(r => r.Id) .Skip(SkippedDbRecordSize) .Take(MaxPageSize) .ToListAsync(); var typeName = Entity?.GetType()?.Name; VLogger.LogInformation($" Successfully retrieved {typeName}'s List with page number {pageNumber} "); CurrentPageNumber = 0; return(result); } } catch (SqlNullValueException s) { LogError(s, null, pageNumber); throw s; } catch (Exception ex) { LogError(ex, null, pageNumber); throw ex; } }
public override async Task <Employee> GetAsync(int id) { try { using (var context = new VTestsContext(OptionsBuilder.Options)) { var entity = await context.Set <Employee>() .Where(x => x.Id == id && (x.IsDeleted == null || x.IsDeleted == false)) .Include(r => r.Organisation) .SingleOrDefaultAsync(); var typeName = Entity?.GetType()?.Name; VLogger.LogInformation($" Successfully retrieved {typeName} with the Id: '{entity?.Id} "); return(entity); } } catch (Exception ex) { LogError(ex, null, id); throw ex; } }
/// <summary> /// function to create window /// </summary> /// <param name="DisplayName">name of window</param> /// <returns>int (Window ID)</returns> private int CreateVerWindow(string DisplayName, string TabName) { // create new version window MWindow verWnd = new MWindow(GetCtx(), 0, Get_TrxName()); verWnd.SetAD_Client_ID(0); verWnd.SetAD_Org_ID(0); verWnd.SetName(DisplayName + "_" + TabName); verWnd.SetDisplayName(DisplayName); // set window as Query Only verWnd.SetWindowType("Q"); verWnd.SetDescription("Display version data"); verWnd.SetHelp("The window allows you to view past data versioning and future updation versions (if any)."); if (!verWnd.Save()) { ValueNamePair vnp = VLogger.RetrieveError(); string error = ""; if (vnp != null) { error = vnp.GetName(); if (error == "" && vnp.GetValue() != null) { error = vnp.GetValue(); } } if (error == "") { error = "Error in creating Version Window"; } log.Log(Level.SEVERE, "Version Window not Created :: " + DisplayName + " :: " + error); Get_TrxName().Rollback(); return(0); } // Return Window ID return(verWnd.GetAD_Window_ID()); }
public SafeServiceHost(VLogger logger, Type contractType, object contractObject, SafeServicePolicyDecider consumer, string webAddressSuffix, params string[] addresses) { this.policyDecider = consumer; this.logger = logger; List <Uri> addressList = new List <Uri>(); foreach (String address in addresses) { addressList.Add(new Uri(address + webAddressSuffix)); } serviceHost = new ServiceHost(contractObject, addressList.ToArray()); serviceHost.Authentication.ServiceAuthenticationManager = new SafeServiceAuthenticationManager(); serviceHost.Authorization.ServiceAuthorizationManager = new SafeServiceAuthorizationManager(consumer, this); foreach (string address in addresses) { var contractDesc = ContractDescription.GetContract(contractType, contractObject); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contractDesc, webBinding, new EndpointAddress(address + webAddressSuffix)); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); serviceHost.AddServiceEndpoint(webEndPoint); } }
public static void CleanDirectory(VLogger logger, string directory) { try { if (!Directory.Exists(directory)) return; DirectoryInfo dir = new DirectoryInfo(directory); foreach (FileInfo fi in dir.GetFiles()) { fi.Delete(); } foreach (DirectoryInfo di in dir.GetDirectories()) { Utils.CleanDirectory(logger,di.FullName); di.Delete(); } } catch (Exception e) { Utils.structuredLog(logger,"E", e.Message + ". CleanDirectory, directory:" + directory); } }
public static bool BroadcastRequest(byte[] request, int portNumber, VLogger logger) { try { foreach (var netInterface in NetworkInterface.GetAllNetworkInterfaces()) { if (netInterface.OperationalStatus != OperationalStatus.Up) continue; foreach (var netAddress in netInterface.GetIPProperties().UnicastAddresses) { //only send to IPv4 and non-loopback addresses if (netAddress.Address.AddressFamily != AddressFamily.InterNetwork || IPAddress.IsLoopback(netAddress.Address)) continue; IPEndPoint localEp = new IPEndPoint(netAddress.Address, portNumber); using (var client = new UdpClient(localEp)) { //logger.Log("Sending bcast packet from {0}", localEp.ToString()); client.Client.EnableBroadcast = true; var endPoint = new IPEndPoint(IPAddress.Broadcast, portNumber); client.Connect(endPoint); client.Send(request, request.Length); } } } } catch (Exception e) { logger.Log("Exception while sending UDP request. \n {0}", e.ToString()); return false; } return true; }
public void Reset(Configuration config, VLogger log, int freq, Delegate method) { lock (this) { this.config = config; this.logger = log; this.frequency = freq; this.timer.Change(this.frequency, this.frequency); this.methodToInvoke = method; this.serviceHost.Close(); string homeIdPart = ""; if (!string.IsNullOrWhiteSpace(Settings.HomeId)) { homeIdPart = "/" + Settings.HomeId; } ConfigUpdaterWebService webService = new ConfigUpdaterWebService(logger, this); string url = Constants.InfoServiceAddress + homeIdPart + "/config"; serviceHost = ConfigUpdaterWebService.CreateServiceHost(webService, new Uri(url)); serviceHost.Open(); Utils.structuredLog(logger, "I", "ConfigUpdaterWebService initiated at " + url); } }
public OwmScoutService(string baseAddress, OwmScout owmScout, ScoutViewOfPlatform platform, VLogger logger) { this.logger = logger; this.owmScout = owmScout; service = new SafeServiceHost(logger, platform, this, baseAddress); var contract = ContractDescription.GetContract(typeof(IOwmScoutContract)); var webBinding = new WebHttpBinding(); var webEndPoint = new ServiceEndpoint(contract, webBinding, new EndpointAddress(baseAddress)); webEndPoint.EndpointBehaviors.Add(new WebHttpBehavior()); service.AddServiceEndpoint(webEndPoint); service.AddServiceMetadataBehavior(new ServiceMetadataBehavior()); service.Open(); }
public WebcamScout(VLogger logger) : base(logger) { }
public static bool InsertForeignCostAverageInvoice(Ctx ctx, MInvoice invoice, MInvoiceLine invoiceLine, Trx trx) { int acctSchema_ID = 0; int M_CostElement_ID = 0; int AD_Org_ID = 0; int M_ASI_ID = 0; MProduct product = null; MAcctSchema acctSchema = null; MCostForeignCurrency foreignCost = null; dynamic pc = null; String cl = null; try { // if cost is calculated then not to calculate again if (invoiceLine.IsFutureCostCalculated()) { return(true); } acctSchema_ID = Util.GetValueOfInt(DB.ExecuteScalar(@"SELECT asch.c_acctschema_id FROM c_acctschema asch INNER JOIN ad_clientinfo ci ON ci.c_acctschema1_id = asch.c_acctschema_id WHERE ci.ad_client_id = " + invoice.GetAD_Client_ID())); acctSchema = new MAcctSchema(ctx, acctSchema_ID, trx); if (acctSchema.GetC_Currency_ID() != invoice.GetC_Currency_ID()) { // Get Costing Element of Av. Invoice M_CostElement_ID = Util.GetValueOfInt(DB.ExecuteScalar(@"SELECT M_CostElement_ID FROM M_CostElement WHERE AD_Client_ID = " + invoice.GetAD_Client_ID() + " AND IsActive = 'Y' AND CostingMethod = 'I'")); product = new MProduct(ctx, invoiceLine.GetM_Product_ID(), trx); if (product != null && product.GetProductType() == "I" && product.GetM_Product_ID() > 0) // for Item Type product { pc = MProductCategory.Get(product.GetCtx(), product.GetM_Product_Category_ID()); // Get Costing Level if (pc != null) { cl = pc.GetCostingLevel(); } if (cl == null) { cl = acctSchema.GetCostingLevel(); } if (cl == "C" || cl == "B") { AD_Org_ID = 0; } else { AD_Org_ID = invoice.GetAD_Org_ID(); } if (cl != "B") { M_ASI_ID = 0; } else { M_ASI_ID = invoiceLine.GetM_AttributeSetInstance_ID(); } foreignCost = MCostForeignCurrency.Get(product, M_ASI_ID, AD_Org_ID, M_CostElement_ID, invoice.GetC_BPartner_ID(), invoice.GetC_Currency_ID()); foreignCost.SetC_Invoice_ID(invoice.GetC_Invoice_ID()); foreignCost.SetCumulatedQty(Decimal.Add(foreignCost.GetCumulatedQty(), invoiceLine.GetQtyInvoiced())); foreignCost.SetCumulatedAmt(Decimal.Add(foreignCost.GetCumulatedAmt(), invoiceLine.GetLineNetAmt())); if (foreignCost.GetCumulatedQty() != 0) { foreignCost.SetCostPerUnit(Decimal.Round(Decimal.Divide(foreignCost.GetCumulatedAmt(), foreignCost.GetCumulatedQty()), acctSchema.GetCostingPrecision())); } else { foreignCost.SetCostPerUnit(0); } if (!foreignCost.Save(trx)) { ValueNamePair pp = VLogger.RetrieveError(); _log.Severe("Error occured during updating M_Cost_ForeignCurrency. Error name : " + pp.GetName() + " AND Error Value : " + pp.GetValue() + " , For Invoice line : " + invoiceLine.GetC_InvoiceLine_ID() + " , AND Ad_Client_ID : " + invoiceLine.GetAD_Client_ID()); return(false); } else { invoiceLine.SetIsFutureCostCalculated(true); if (!invoiceLine.Save(trx)) { ValueNamePair pp = VLogger.RetrieveError(); _log.Severe("Error occured during updating Is Foreign Cost On C_invoice. Error name : " + pp.GetName() + " AND Error Value : " + pp.GetValue() + " , For Invoice line : " + invoiceLine.GetC_InvoiceLine_ID() + " , AND Ad_Client_ID : " + invoiceLine.GetAD_Client_ID()); return(false); } } } } } catch (Exception ex) { _log.Log(Level.SEVERE, "", ex); return(false); } return(true); }
public static bool InsertForeignCostMatchOrder(Ctx ctx, MOrderLine orderLine, decimal matchQty, int ASI, Trx trx) { int acctSchema_ID = 0; int M_CostElement_ID = 0; int AD_Org_ID = 0; int M_ASI_ID = 0; MProduct product = null; MAcctSchema acctSchema = null; MCostForeignCurrency foreignCost = null; dynamic pc = null; String cl = null; MOrder order = null; try { order = new MOrder(ctx, orderLine.GetC_Order_ID(), trx); if (!order.IsSOTrx() && !order.IsReturnTrx()) { acctSchema_ID = Util.GetValueOfInt(DB.ExecuteScalar(@"SELECT asch.c_acctschema_id FROM c_acctschema asch INNER JOIN ad_clientinfo ci ON ci.c_acctschema1_id = asch.c_acctschema_id WHERE ci.ad_client_id = " + order.GetAD_Client_ID())); acctSchema = new MAcctSchema(ctx, acctSchema_ID, trx); if (acctSchema.GetC_Currency_ID() != order.GetC_Currency_ID()) { // Get Costing Element of Av. PO M_CostElement_ID = Util.GetValueOfInt(DB.ExecuteScalar(@"SELECT M_CostElement_ID FROM M_CostElement WHERE AD_Client_ID = " + order.GetAD_Client_ID() + " AND IsActive = 'Y' AND CostingMethod = 'A'")); product = new MProduct(ctx, orderLine.GetM_Product_ID(), trx); if (product != null && product.GetProductType() == "I" && product.GetM_Product_ID() > 0) // for Item Type product { pc = MProductCategory.Get(product.GetCtx(), product.GetM_Product_Category_ID()); // Get Costing Level if (pc != null) { cl = pc.GetCostingLevel(); } if (cl == null) { cl = acctSchema.GetCostingLevel(); } if (cl == "C" || cl == "B") { AD_Org_ID = 0; } else { AD_Org_ID = order.GetAD_Org_ID(); } if (cl != "B") { M_ASI_ID = 0; } else { M_ASI_ID = ASI; } foreignCost = MCostForeignCurrency.Get(product, M_ASI_ID, AD_Org_ID, M_CostElement_ID, order.GetC_BPartner_ID(), order.GetC_Currency_ID()); foreignCost.SetC_Order_ID(order.GetC_Order_ID()); foreignCost.SetCumulatedQty(Decimal.Add(foreignCost.GetCumulatedQty(), matchQty)); foreignCost.SetCumulatedAmt(Decimal.Add(foreignCost.GetCumulatedAmt(), Decimal.Multiply(orderLine.GetPriceActual(), matchQty))); if (foreignCost.GetCumulatedQty() != 0) { foreignCost.SetCostPerUnit(Decimal.Round(Decimal.Divide(foreignCost.GetCumulatedAmt(), foreignCost.GetCumulatedQty()), acctSchema.GetCostingPrecision())); } else { foreignCost.SetCostPerUnit(0); } if (!foreignCost.Save(trx)) { ValueNamePair pp = VLogger.RetrieveError(); _log.Severe("Error occured during updating M_Cost_ForeignCurrency. Error name : " + pp.GetName() + " AND Error Value : " + pp.GetValue() + " , For Invoice line : " + orderLine.GetC_OrderLine_ID() + " , AND Ad_Client_ID : " + orderLine.GetAD_Client_ID()); return(false); } } } } } catch (Exception ex) { _log.Log(Level.SEVERE, "", ex); return(false); } return(true); }
/// <summary> /// Insert data in Version table against multikey Master table /// </summary> /// <param name="baseTbl"></param> /// <param name="keyCols"></param> /// <param name="tblVer"></param> /// <returns></returns> private string InsertMKVersionData(MTable baseTbl, string[] keyCols, MTable tblVer) { string retMsg = ""; // Get data from Master table DataSet dsRecs = DB.ExecuteDataset("SELECT * FROM " + baseTbl.GetTableName(), null, _trx); // check if there are any records in master table if (dsRecs != null && dsRecs.Tables[0].Rows.Count > 0) { // loop through all records and insert in Version table for (int i = 0; i < dsRecs.Tables[0].Rows.Count; i++) { // get where Clause for Master table against multiple key columns GetMKWhereClause(dsRecs.Tables[0].Rows[i], keyCols); if (MKWhereClause.Length > 0) { int count = Util.GetValueOfInt(DB.ExecuteScalar("SELECT COUNT(" + tblVer.GetTableName() + "_ID) FROM " + tblVer.GetTableName() + " WHERE " + MKWhereClause.ToString(), null, _trx)); if (count > 0) { continue; } } // create PO object of source table (Master table) PO sPO = baseTbl.GetPO(GetCtx(), dsRecs.Tables[0].Rows[i], _trx); // create PO object of destination table (Version table) PO dPO = tblVer.GetPO(GetCtx(), 0, _trx); sPO.CopyTo(dPO); dPO.SetAD_Client_ID(sPO.GetAD_Client_ID()); dPO.SetAD_Org_ID(sPO.GetAD_Org_ID()); dPO.Set_Value("RecordVersion", "1"); dPO.Set_ValueNoCheck("VersionValidFrom", sPO.Get_Value("Created")); dPO.Set_ValueNoCheck("IsVersionApproved", true); dPO.Set_ValueNoCheck("Processed", true); dPO.Set_ValueNoCheck("ProcessedVersion", true); for (int j = 0; j < keyCols.Length; j++) { dPO.Set_ValueNoCheck(keyCols[j], sPO.Get_Value(keyCols[j])); } dPO.Set_Value("Export_ID", null); if (!dPO.Save()) { ValueNamePair vnp = VLogger.RetrieveError(); string error = ""; if (vnp != null) { error = vnp.GetName(); if (error == "" && vnp.GetValue() != null) { error = vnp.GetValue(); } } if (error == "") { error = "Error in saving data in Version table"; } return(retMsg); } } } return(retMsg); }
protected override string DoIt() { MCash cashheader = new MCash(GetCtx(), GetRecord_ID(), Get_Trx()); sql = "select C_Currency_ID from C_CashBook where c_Cashbook_id=" + cashheader.GetC_CashBook_ID(); int C_Currencyheader_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, Get_Trx())); sql = "select * from C_Cashline WHERE C_Cash_ID=" + GetRecord_ID(); DataSet dscashline = DB.ExecuteDataset(sql, null, Get_Trx()); if (dscashline != null) { if (dscashline.Tables[0].Rows.Count > 0) { for (i = 0; i < dscashline.Tables[0].Rows.Count; i++) { cashline = new MCashLine(GetCtx(), Util.GetValueOfInt(dscashline.Tables[0].Rows[i]["C_CashLine_ID"]), Get_Trx()); if (cashline.GetCashType().ToString() == "A" || cashline.GetCashType().ToString() == "F") { sql = "Select * from C_Cash where C_CashBook_Id=" + cashline.GetC_CashBook_ID() + " and docstatus='DR' and DateAcct=" + GlobalVariable.TO_DATE(DateTime.Now, true); DataSet dscashbook = DB.ExecuteDataset(sql, null, Get_Trx()); if (dscashbook != null) { if (dscashbook.Tables[0].Rows.Count > 0) { int j; for (j = 0; j < dscashbook.Tables[0].Rows.Count; j++) { cash = new MCash(GetCtx(), Util.GetValueOfInt(dscashbook.Tables[0].Rows[j]["C_Cash_ID"]), Get_Trx()); if (!_cashIds.Contains(cash.GetC_Cash_ID())) { _cashIds.Add(cash.GetC_Cash_ID()); } //ViennaAdvantage.Model.MCashLine cashline1 = new ViennaAdvantage.Model.MCashLine(GetCtx(), 0, Get_Trx()); MCashLine cashline1 = new MCashLine(GetCtx(), 0, Get_Trx()); cashline1.SetC_Cash_ID(cash.GetC_Cash_ID()); cashline1.SetAD_Client_ID(cash.GetAD_Client_ID()); cashline1.SetAD_Org_ID(cash.GetAD_Org_ID()); if (cashline.GetCashType().ToString() == "A") { cashline1.SetCashType("F"); } if (cashline.GetCashType().ToString() == "F") { cashline1.SetCashType("A"); } // Added by Bharat as discussed with Ravikant on 22 March 2017 if (cashline1.Get_ColumnIndex("C_ConversionType_ID") > 0) { cashline1.SetC_ConversionType_ID(cashline.GetC_ConversionType_ID()); } cashline1.SetC_CashBook_ID(cashheader.GetC_CashBook_ID()); cashline1.SetC_BPartner_ID(cashline.GetC_BPartner_ID()); sql = "select C_Currency_ID from C_CashBook where c_Cashbook_id=" + cash.GetC_CashBook_ID(); Currency_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, Get_Trx())); if (Currency_ID == C_Currencyheader_ID) { cashline1.SetC_Currency_ID(C_Currencyheader_ID); cashline1.SetAmount(Decimal.Negate(cashline.GetAmount())); cashline1.SetConvertedAmt(Util.GetValueOfString(Decimal.Negate(cashline.GetAmount()))); } else { //cashline1.SetC_Currency_ID(Currency_ID); // Change by Bharat as discussed with Ravikant on 22 March 2017 cashline1.SetC_Currency_ID(C_Currencyheader_ID); if (cashline1.Get_ColumnIndex("C_ConversionType_ID") > 0) { //_Curencyrate = MConversionRate.GetRate(C_Currencyheader_ID, Currency_ID, cash.GetDateAcct(), cashline.GetC_ConversionType_ID(), // cash.GetAD_Client_ID(), cash.GetAD_Org_ID()); convertedamount = Decimal.Negate(Util.GetValueOfDecimal(cashline.GetConvertedAmt())); // if converted amount not found then get amount based on currency conversion avaliable if (cashline.GetAmount() != 0 && convertedamount == 0) { convertedamount = MConversionRate.Convert(GetCtx(), Decimal.Negate(cashline.GetAmount()), Currency_ID, C_Currencyheader_ID, cash.GetDateAcct(), cashline.GetC_ConversionType_ID(), cash.GetAD_Client_ID(), cash.GetAD_Org_ID()); cashline.SetConvertedAmt(Util.GetValueOfString(Decimal.Negate(convertedamount))); } if (cashline.GetAmount() != 0 && convertedamount == 0) { return(Msg.GetMsg(GetCtx(), "NoCurrencyRateDefined")); } else if (cashline.GetAmount() == 0) { return("Amount Should be greater than zero"); } cashline1.SetAmount(convertedamount); cashline1.SetConvertedAmt(Util.GetValueOfString(Decimal.Negate(cashline.GetAmount()))); } else { sql = "select multiplyrate from c_conversion_rate where isactive='Y' and c_currency_id=" + C_Currencyheader_ID + " and c_currency_to_id=" + Currency_ID; _Curencyrate = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, Get_Trx())); if (_Curencyrate == 0) { return(Msg.GetMsg(GetCtx(), "NoCurrencyRateDefined")); } else { convertedamount = Decimal.Round(Decimal.Multiply(_Curencyrate, Decimal.Negate(cashline.GetAmount())), 2); } cashline1.SetConvertedAmt(Util.GetValueOfString(convertedamount)); cashline1.SetAmount(convertedamount); } } cashline1.SetC_Charge_ID(cashline.GetC_Charge_ID()); if (cashline.GetCashType().ToString() == "A") { cashline1.SetVSS_PAYMENTTYPE("R"); } if (cashline.GetCashType().ToString() == "F") { cashline1.SetVSS_PAYMENTTYPE("P"); } cashline1.SetC_CashLine_ID_1(cashline.GetC_CashLine_ID()); if (!cashline1.Save()) { Rollback(); log.Severe("NotSaved"); return(" NotSaved Cashline1 [ Header Found ] "); } if (cashline.GetCashType().ToString() == "F") { cashline.SetC_CashLine_ID_1(cashline1.GetC_CashLine_ID()); } if (!cashline.Save()) { Rollback(); log.Severe("Not Saved"); return(" NotSaved Cashline [ Header Found ] "); } //change by Amit 1-june-2016 after discussion with ravikant //int BeginBal = Util.GetValueOfInt(DB.ExecuteScalar("select completedbalance from c_cashbook where c_cashbook_id=" + cash.GetC_CashBook_ID(), null, Get_Trx())); //cash.SetBeginningBalance(BeginBal); //if (!cash.Save(Get_Trx())) //{ // Rollback(); // log.Severe("Not Saved"); // return " NotSaved Cash [ Header Found ] "; //} //end break; } } else { dscashbook.Dispose(); MCash cash1 = new MCash(GetCtx(), 0, Get_Trx()); cash1.SetAD_Client_ID(cashheader.GetAD_Client_ID()); cash1.SetAD_Org_ID(cashheader.GetAD_Org_ID()); cash1.SetC_DocType_ID(cashheader.GetC_DocType_ID()); cash1.SetName(Util.GetValueOfString(System.DateTime.Today.ToShortDateString())); cash1.SetC_CashBook_ID(cashline.GetC_CashBook_ID()); cash1.SetDateAcct(DateTime.Now); cash1.SetStatementDate(DateTime.Now); //change by Amit 1-june-2016 after discussion with ravikant int BeginBal = Util.GetValueOfInt(DB.ExecuteScalar("select SUM(completedbalance + runningbalance) from c_cashbook where c_cashbook_id=" + cashline.GetC_CashBook_ID(), null, Get_Trx())); cash1.SetBeginningBalance(BeginBal); //end //Change by Bharat as discussed with Ravikant on 22 March 2017 sql = "select C_Currency_ID from C_CashBook where c_Cashbook_id=" + cash1.GetC_CashBook_ID(); Currency_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, Get_Trx())); if (cash1.Get_ColumnIndex("C_Currency_ID") > 0) { cash1.SetC_Currency_ID(Currency_ID); } //End if (!cash1.Save()) { Rollback(); VAdvantage.Model.ValueNamePair ppE = VLogger.RetrieveError(); if (ppE != null) { return(ppE.GetName() + "<--->" + ppE.GetValue()); } return("cash1 not saved [header not found->]"); } // return cash1.GetC_Cash_ID() + "suc"; if (!_cashIds.Contains(cash1.GetC_Cash_ID())) { _cashIds.Add(cash1.GetC_Cash_ID()); } MCashLine cashline1 = new MCashLine(GetCtx(), 0, Get_Trx()); cashline1.SetC_Cash_ID(cash1.GetC_Cash_ID()); cashline1.SetAD_Client_ID(cash1.GetAD_Client_ID()); cashline1.SetAD_Org_ID(cash1.GetAD_Org_ID()); if (cashline.GetCashType().ToString() == "A") { cashline1.SetCashType("F"); } if (cashline.GetCashType().ToString() == "F") { cashline1.SetCashType("A"); } if (cashline1.Get_ColumnIndex("C_ConversionType_ID") > 0) { cashline1.SetC_ConversionType_ID(cashline.GetC_ConversionType_ID()); } cashline1.SetC_CashBook_ID(cashheader.GetC_CashBook_ID()); cashline1.SetC_BPartner_ID(cashline.GetC_BPartner_ID()); //Change by Bharat as discussed with Ravikant on 22 March 2017 //sql = "select C_Currency_ID from C_CashBook where c_Cashbook_id=" + cash1.GetC_CashBook_ID(); //Currency_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, Get_Trx())); if (Currency_ID == C_Currencyheader_ID) { cashline1.SetAmount(Decimal.Negate(cashline.GetAmount())); cashline1.SetC_Currency_ID(C_Currencyheader_ID); cashline1.SetConvertedAmt(Util.GetValueOfString(Decimal.Negate(cashline.GetAmount()))); } else { //Change by Bharat as discussed with Ravikant on 22 March 2017 cashline1.SetC_Currency_ID(C_Currencyheader_ID); if (cashline1.Get_ColumnIndex("C_ConversionType_ID") > 0) { //_Curencyrate = MConversionRate.GetRate(C_Currencyheader_ID, Currency_ID, cashheader.GetDateAcct(), cashline.GetC_ConversionType_ID(), // cashheader.GetAD_Client_ID(), cashheader.GetAD_Org_ID()); convertedamount = Decimal.Negate(Util.GetValueOfDecimal(cashline.GetConvertedAmt())); // if converted amount not found then get amount based on currency conversion avaliable if (cashline.GetAmount() != 0 && convertedamount == 0) { convertedamount = MConversionRate.Convert(GetCtx(), Decimal.Negate(cashline.GetAmount()), Currency_ID, C_Currencyheader_ID, cash1.GetDateAcct(), cashline.GetC_ConversionType_ID(), cash1.GetAD_Client_ID(), cash1.GetAD_Org_ID()); cashline.SetConvertedAmt(Util.GetValueOfString(Decimal.Negate(convertedamount))); } if (cashline.GetAmount() != 0 && convertedamount == 0) { return(Msg.GetMsg(GetCtx(), "NoCurrencyRateDefined")); } else if (cashline.GetAmount() == 0) { return("Amount Should be greater than zero"); } cashline1.SetAmount(convertedamount); cashline1.SetConvertedAmt(Util.GetValueOfString(Decimal.Negate(cashline.GetAmount()))); } else { sql = "select multiplyrate from c_conversion_rate where isactive='Y' and c_currency_id=" + C_Currencyheader_ID + " and c_currency_to_id=" + Currency_ID; _Curencyrate = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, Get_Trx())); if (_Curencyrate == 0) { return(Msg.GetMsg(GetCtx(), "NoCurrencyRateDefined")); } else { convertedamount = Decimal.Round(Decimal.Multiply(_Curencyrate, Decimal.Negate(cashline.GetAmount())), 2); } cashline1.SetConvertedAmt(Util.GetValueOfString(convertedamount)); cashline1.SetAmount(convertedamount); } } cashline1.SetC_Charge_ID(cashline.GetC_Charge_ID()); if (cashline.GetCashType().ToString() == "A") { cashline1.SetVSS_PAYMENTTYPE("R"); } if (cashline.GetCashType().ToString() == "F") { cashline1.SetVSS_PAYMENTTYPE("P"); } cashline1.SetC_CashLine_ID_1(cashline.GetC_CashLine_ID()); if (!cashline1.Save(Get_Trx())) { Rollback(); log.Severe("NotSaved"); return(" NotSaved Cashline1 [ Header not Found ] "); } if (cashline.GetCashType().ToString() == "F") { cashline.SetC_CashLine_ID_1(cashline1.GetC_CashLine_ID()); } if (!cashline.Save(Get_Trx())) { Rollback(); log.Severe("NotSaved"); return(" NotSaved Cashline [ Header not Found ] "); } //change by Amit 1-june-2016 after discussion with ravikant //int BeginBal = Util.GetValueOfInt(DB.ExecuteScalar("select completedbalance from c_cashbook where c_cashbook_id=" + cash1.GetC_CashBook_ID(), null, Get_Trx())); //cash1.SetBeginningBalance(BeginBal); //if (!cash1.Save()) //{ // Rollback(); // log.Severe("NotSaved"); // return " NotSaved Cash1 [ Header not Found(bb) ] "; //} //end } } else { //dscashbook.Dispose(); } } else { cashtype++; } } // Discussed with Ravikant it is re updating the Header so commented on 23-March-2017 by Bharat //decimal OpenBal = Util.GetValueOfDecimal(DB.ExecuteScalar("SELECT completedbalance FROM C_CashBook WHERE c_cashbook_id=" + cashheader.GetC_CashBook_ID() + "", null, Get_Trx())); //cashheader.SetBeginningBalance(OpenBal); //if (!cashheader.Save()) //{ // Rollback(); // log.Severe("Not Saved"); //} } else { dscashline.Dispose(); cashheader.SetGenerateCashBookTransfer("Y"); if (!cashheader.Save()) { Rollback(); log.Severe("NotSaved"); } return(Msg.GetMsg(GetCtx(), "NoCashLineExist")); } if (_cashIds.Count > 0) { for (int k = 0; k < _cashIds.Count; k++) { cash = new MCash(GetCtx(), _cashIds[k], Get_Trx()); cash.SetDocStatus(cash.CompleteIt()); if (!cash.Save()) { Rollback(); log.Severe("NotSaved"); } } } } cashheader.SetGenerateCashBookTransfer("Y"); if (!cashheader.Save()) { log.Severe("NotSaved"); } if (cashtype == i) { return(Msg.GetMsg(GetCtx(), "NoCashLineExist")); } return("Completed"); }
/// <summary> ///CacheHandler form multiple URLs /// </summary> /// <param name="thisURLs">Array of Cache Server URLs</param> /// <param name="tLog">Logger</param> public CacheHandler(String[] thisURLs, VLogger tLog) { log = tLog; cacheURLs = thisURLs; }
public HomeStoreInfo(VLogger logger) { this.logger = logger; RefreshDbs(null, null); if (Settings.HomeStoreRefreshIntervalsMins <= 0 || Settings.HomeStoreRefreshIntervalsMins >= Int32.MaxValue / (60000)) //60000 = 60 * 1000 (secs) * (ms) { logger.Log("Illegal refresh value {0}. Must be >= 0 and < {1}", Settings.HomeStoreRefreshIntervalsMins.ToString(), (Int32.MaxValue / (60000)).ToString()); } else { System.Timers.Timer refreshTimer = new System.Timers.Timer(Settings.HomeStoreRefreshIntervalsMins * 60000); //System.Timers.Timer refreshTimer = new System.Timers.Timer(10*1000); refreshTimer.Enabled = true; refreshTimer.Elapsed += RefreshDbs; } }
public SensorService(VLogger logger, Sensor SensorStuff) { this.logger = logger; this.SensorInfo = SensorStuff; }
/// <summary> /// Create default columns for Master Data Version Table /// e.g. Processed, Processing, IsApproved etc. /// </summary> /// <param name="Ver_AD_Table_ID"></param> /// <returns></returns> private string CreateDefaultVerCols(int Ver_AD_Table_ID) { DataSet dstblCols = DB.ExecuteDataset("SELECT ColumnName FROM AD_Column WHERE AD_Table_ID = " + Ver_AD_Table_ID, null, null); for (int i = 0; i < listDefVerCols.Count; i++) { bool hasCol = false; if (dstblCols != null && dstblCols.Tables[0].Rows.Count > 0) { DataRow[] dr = dstblCols.Tables[0].Select("ColumnName = '" + listDefVerCols[i] + "'"); if (dr != null && dr.Length > 0) { hasCol = true; } } if (hasCol) { continue; } MColumn colVer = new MColumn(GetCtx(), 0, _trx); colVer.SetExport_ID(null); colVer.SetAD_Table_ID(Ver_AD_Table_ID); colVer.SetColumnName(listDefVerCols[i]); colVer.SetAD_Element_ID(_listDefVerElements[i]); colVer.SetAD_Reference_ID(listDefVerRef[i]); //if (listDefVerCols[i] == "VersionValidFrom") // colVer.SetIsParent(true); if (listDefVerRef[i] == 10) { colVer.SetFieldLength(10); } if (listDefVerRef[i] == 14) { colVer.SetFieldLength(2000); } if (listDefVerRef[i] == 13) { colVer.SetIsKey(true); colVer.SetIsMandatory(true); colVer.SetIsMandatoryUI(true); } if (!colVer.Save()) { ValueNamePair vnp = VLogger.RetrieveError(); string error = ""; if (vnp != null) { error = vnp.GetName(); if (error == "" && vnp.GetValue() != null) { error = vnp.GetValue(); } } if (error == "") { error = "Error in creating Version Column " + listDefVerCols[i]; } log.Log(Level.SEVERE, "Version Column not created :: " + listDefVerCols[i] + " :: " + error); _trx.Rollback(); return(Msg.GetMsg(GetCtx(), "VersionColNotCreated")); } else { oldVerCol = colVer.GetAD_Column_ID(); } } return(""); }
public CalloutEngine() : base() { log = VLogger.GetVLogger(this.GetType().FullName); }
public ConfigUpdaterWebService(VLogger logger, ConfigUpdater updater) { this.logger = logger; this.configUpdater = updater; }
public AppRelaySwitchService(AppRelaySwitch relayApp, VLogger logger) { this.logger = logger; this.relaySwitchApp = relayApp; }
protected override string DoIt() { VLogger log = VLogger.GetVLogger(this.GetType().FullName); log.Log(Level.SEVERE, "UserPassword Change Log=>" + Convert.ToString(p_AD_User_ID)); if (p_AD_User_ID == -1) { p_AD_User_ID = GetAD_User_ID(); } MUser user = MUser.Get(GetCtx(), p_AD_User_ID); MUser current = MUser.Get(GetCtx(), GetAD_User_ID()); if (!current.IsAdministrator() && p_AD_User_ID != GetAD_User_ID() && user.HasRole()) { throw new ArgumentException("@UserCannotUpdate@"); } // SuperUser and System passwords can only be updated by themselves if (user.IsSystemAdministrator() && p_AD_User_ID != GetAD_User_ID()) { throw new ArgumentException("@UserCannotUpdate@"); } log.Log(Level.SEVERE, "UserPassword Change Log Step Check for valid user=>" + Convert.ToString(p_AD_User_ID)); if (string.IsNullOrEmpty(p_CurrentPassword)) { if (string.IsNullOrEmpty(p_OldPassword)) { throw new ArgumentException("@OldPasswordMandatory@"); } else if (!p_OldPassword.Equals(user.GetPassword())) { if (!SecureEngine.Encrypt(p_OldPassword).Equals(user.GetPassword())) { throw new ArgumentException("@OldPasswordNoMatch@"); } } } else if (!p_CurrentPassword.Equals(current.GetPassword())) { throw new ArgumentException("@OldPasswordNoMatch@"); } log.Log(Level.SEVERE, "UserPassword Change Log Step Password Change=>" + Convert.ToString(p_AD_User_ID)); String originalPwd = p_NewPassword; String sql = "UPDATE AD_User SET Updated=SYSDATE, UpdatedBy=" + GetAD_User_ID(); if (!string.IsNullOrEmpty(p_NewPassword)) { MColumn column = MColumn.Get(GetCtx(), 417); // Password Column if (column.IsEncrypted()) { p_NewPassword = SecureEngine.Encrypt(p_NewPassword); } sql += ", Password="******", Email=" + GlobalVariable.TO_STRING(p_NewEMail); } if (!string.IsNullOrEmpty(p_NewEMailUser)) { sql += ", EmailUser="******", EmailUserPW=" + GlobalVariable.TO_STRING(p_NewEMailUserPW); } sql += " WHERE AD_User_ID=" + p_AD_User_ID; log.Log(Level.SEVERE, "UserPassword Change Log=>" + sql); int iRes = DB.ExecuteQuery(sql, null, Get_Trx()); if (iRes > 0) { bool error = false; //Check for yellowFin user password change if BI user is true.................. object ModuleId = DB.ExecuteScalar("select ad_moduleinfo_id from ad_moduleinfo where prefix='VA037_' and IsActive = 'Y'"); // is active check by vinay bhatt on 18 oct 2018 if (ModuleId != null && ModuleId != DBNull.Value) { if (user.IsVA037_BIUser()) { var Dll = Assembly.Load("VA037"); var BIUser = Dll.GetType("VA037.BIProcess.BIUsers"); var objBIUser = Activator.CreateInstance(BIUser); var ChangeBIPassword = BIUser.GetMethod("ChangeBIPassword"); bool value = (bool)ChangeBIPassword.Invoke(objBIUser, new object[] { GetCtx(), GetAD_Client_ID(), Convert.ToString(user.GetVA037_BIUserName()), originalPwd }); if (value) { //user.SetPassword(p_NewPassword); error = false; user.SetPassword(originalPwd); //return "OK"; } else { error = true; // return "@Error@"; } } else { error = false; user.SetPassword(originalPwd); // return "OK"; } } ModuleId = DB.ExecuteScalar("select ad_moduleinfo_id from ad_moduleinfo where prefix='VA039_' and IsActive = 'Y'"); // is active check by vinay bhatt if (ModuleId != null && ModuleId != DBNull.Value) { MUser obj = new MUser(GetCtx(), p_AD_User_ID, null); if (obj.IsVA039_IsJasperUser() == true) { var Dll = Assembly.Load("VA039"); var JasperUser = Dll.GetType("VA039.Classes.Users"); var objJasperUser = Activator.CreateInstance(JasperUser); var BICreateUser = JasperUser.GetMethod("ModifyUserPassword"); object[] args = new object[] { GetCtx(), originalPwd }; bool value = (bool)BICreateUser.Invoke(objJasperUser, args); if (value) { error = false; user.SetPassword(originalPwd); //return "@Error@"; } else { error = true; goto PasswordError; // return "OK"; } } } else { error = false; user.SetPassword(originalPwd); // return "OK"; } PasswordError: if (error) { return("@Error@"); } else { return("OK"); } } else { return("@Error@"); } }
/** * Perform process. * @return Message * @throws Exception */ //@Override protected override String DoIt() { if (0 == p_M_WorkOrderTransaction_ID) { throw new Exception("@FillMandatory@ @M_WorkOrderTransaction_ID@"); } ViennaAdvantage.Model.MVAMFGMWrkOdrTransaction woTxn = new ViennaAdvantage.Model.MVAMFGMWrkOdrTransaction(GetCtx(), p_M_WorkOrderTransaction_ID, Get_TrxName()); ViennaAdvantage.Model.MVAMFGMWorkOrder wo = new ViennaAdvantage.Model.MVAMFGMWorkOrder(GetCtx(), woTxn.GetVAMFG_M_WorkOrder_ID(), Get_TrxName()); VAdvantage.Model.MBOM bom = new VAdvantage.Model.MBOM(GetCtx(), wo.GetM_BOM_ID(), Get_TrxName()); MBOMProduct[] BOMproducts = MBOMProduct.GetOfBOM(bom); for (int i = 0; i < BOMproducts.Length; i++) { string prodensity = "SELECT nvl(GOM01_DENSITY,0) FROM VAMFG_M_WorkOrder WHERE VAMFG_M_WorkOrder_ID =" + woTxn.GetVAMFG_M_WorkOrder_ID(); decimal DenQty = VAdvantage.Utility.Util.GetValueOfDecimal(DB.ExecuteScalar(prodensity)); if (DenQty == 0) { DenQty = 1; } MBOMProduct BOMproduct = BOMproducts[i]; decimal qtyReqd = (p_Qty * BOMproduct.GetBOMQty()) * DenQty; //string qry = "SELECT currentqty FROM M_Transaction WHERE M_Transaction_ID = (SELECT MAX(M_Transaction_ID) FROM M_Transaction WHERE movementdate = " + // " (SELECT MAX(movementdate) FROM M_Transaction WHERE movementdate <= " + GlobalVariable.TO_DATE(woTxn.GetVAMFG_DateTrx(), true) + " AND M_Product_ID = " + BOMproduct.GetM_ProductBOM_ID() + " AND M_Locator_ID = " + woTxn.GetM_Locator_ID() + // " AND M_AttributeSetInstance_ID = " + BOMproduct.GetM_AttributeSetInstance_ID() + ") AND M_Product_ID = " + BOMproduct.GetM_ProductBOM_ID() + " AND M_Locator_ID = " + woTxn.GetM_Locator_ID() + // " AND M_AttributeSetInstance_ID = " + BOMproduct.GetM_AttributeSetInstance_ID() + ") AND AD_Org_ID = " + woTxn.GetAD_Org_ID() + " AND M_Product_ID = " + BOMproduct.GetM_ProductBOM_ID() + // " AND M_Locator_ID = " + woTxn.GetM_Locator_ID() + " AND M_AttributeSetInstance_ID = " + BOMproduct.GetM_AttributeSetInstance_ID(); //decimal CurrentQty = VAdvantage.Utility.Util.GetValueOfDecimal(DB.ExecuteScalar(qry)); //if (CurrentQty < qtyReqd) //{ // ViennaAdvantage.Model.MProduct product = new ViennaAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_ProductBOM_ID(), Get_Trx()); // return "Insufficient qty in warehouse for : " + product.GetName(); //} VAdvantage.Model.MStorage st = VAdvantage.Model.MStorage.Get(Env.GetCtx(), woTxn.GetM_Locator_ID(), BOMproduct.GetM_ProductBOM_ID(), BOMproduct.GetM_AttributeSetInstance_ID(), Get_TrxName()); if (st == null) { ViennaAdvantage.Model.MProduct product = new ViennaAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_ProductBOM_ID(), Get_Trx()); return("Insufficient qty in warehouse for : " + product.GetName()); } decimal CurrentQty = st.GetQtyOnHand(); if (CurrentQty < qtyReqd) { ViennaAdvantage.Model.MProduct product = new ViennaAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_ProductBOM_ID(), Get_Trx()); return("Insufficient qty in warehouse for : " + product.GetName()); } } if (p_Qty == 0) { //MVAMFGMWorkOrder wo = new MVAMFGMWorkOrder(GetCtx(), woTxn.GetVAMFG_M_WorkOrder_ID(), Get_TrxName()); // p_Qty = wo.GetVAMFG_QtyEntered().subtract(wo.GetVAMFG_QtyAssembled()); string prdOrdQry = "SELECT SUM(wkt.VAMFG_QtyEntered) AS ProdOrder FROM VAMFG_M_WrkOdrTransaction wkt WHERE wkt.VAMFG_WorkOrderTxnType ='CI' AND wkt.M_Product_ID = " + woTxn.GetM_Product_ID() + " AND wkt.VAMFG_M_Workorder_ID = " + woTxn.GetVAMFG_M_WorkOrder_ID() + " AND wkt.DocStatus ='CO'"; Decimal ProdOrdQty = VAdvantage.Utility.Util.GetValueOfDecimal(DB.ExecuteScalar(prdOrdQry, null, Get_TrxName())); p_Qty = Decimal.Subtract(wo.GetVAMFG_QtyEntered(), (ProdOrdQty)); //p_Qty = Decimal.Subtract(wo.GetVAMFG_QtyEntered(), (wo.GetVAMFG_QtyAssembled())); //log.Info ("@Quantity@ = " + wo.GetVAMFG_QtyEntered().subtract(wo.GetVAMFG_QtyAssembled().add(wo.GetVAMFG_QtyScrapped()))); log.Info("@Quantity@ = " + Decimal.Subtract(wo.GetVAMFG_QtyEntered(), Decimal.Add(wo.GetVAMFG_QtyAssembled(), (wo.GetVAMFG_QtyScrapped())))); } //woTxn.SetVAMFG_QtyEntered(p_Qty.setScale(MUOM.GetPrecision(GetCtx(), woTxn.GetC_UOM_ID()), Decimal.ROUND_HALF_UP)); woTxn.SetVAMFG_QtyEntered(Decimal.Round((p_Qty), VAdvantage.Model.MUOM.GetPrecision(woTxn.GetCtx(), woTxn.GetC_UOM_ID()), MidpointRounding.AwayFromZero)); // Added by Bharat on 20/12/2016 to Set Density and Liter values for production execution Process of Gulf Oil. Tuple <String, String, String> mInfo = null; if (Env.HasModulePrefix("GOM01_", out mInfo)) { woTxn.SetGOM01_Density(wo.GetGOM01_Density()); Decimal qtyKg = Decimal.Multiply(wo.GetGOM01_Density(), woTxn.GetVAMFG_QtyEntered()); woTxn.SetGOM01_Quantity(Decimal.Round((qtyKg), MUOM.GetPrecision(woTxn.GetCtx(), woTxn.GetC_UOM_ID()), MidpointRounding.AwayFromZero)); } woTxn.Save(); ViennaAdvantage.Process.MWorkOrderTxnUtil prodTxnLines = new ViennaAdvantage.Process.MWorkOrderTxnUtil(true); // Done by Bharat on 24 Jan 2018 to delete lines as when process runs multiple times it creates duplicate lines. int no = DB.ExecuteQuery("DELETE FROM VAMFG_M_WrkOdrTrnsctionLine WHERE VAMFG_M_WrkOdrTransaction_ID = " + p_M_WorkOrderTransaction_ID, null, Get_TrxName()); ViennaAdvantage.Model.MVAMFGMWrkOdrTrnsctionLine[] wotlines = prodTxnLines.GenerateComponentTxnLine(GetCtx(), p_M_WorkOrderTransaction_ID, p_Qty, X_VAMFG_M_WorkOrderComponent.VAMFG_SUPPLYTYPE_Push, Get_TrxName()); if (wotlines != null && wotlines.Length > 0) { return("Generated " + wotlines.Length + " line(s) for component(s): " + VLogger.RetrieveInfo().GetName()); } else { return("Generated 0 lines for components."); } }