Exemplo n.º 1
0
        /// <summary>
        /// Interface function to update and log device fields.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="ChangeValue"></param>
        /// <param name="device"></param>
        /// <param name="data"></param>
        /// <param name="urn"></param>
        /// <param name="endpoint"></param>
        /// <param name="assetInfo"></param>
        /// <param name="activity"></param>
        /// <param name="pluginExecutionData"></param>
        /// <returns>Success bool</returns>
        public bool UpdateField <T>(Func <WebServiceTicket, WebServiceTicket> ChangeValue, JediDevice device, DataPair <T> data, string urn, string endpoint, AssetInfo assetInfo, string fieldChanged, PluginExecutionData pluginData)
        {
            bool success;

            if (data != null && data.Value)
            {
                DeviceConfigResultLog log = new DeviceConfigResultLog(pluginData, assetInfo.AssetId);
                try
                {
                    WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn);
                    ChangeValue(tic);
                    device.WebServices.PutDeviceTicket(endpoint, urn, tic);
                    success = true;
                }
                catch (Exception ex)
                {
                    Logger.LogError($"Failed to set field {fieldChanged}, {ex.Message}");
                    _failedSettings.AppendLine($"Failed to set field {fieldChanged}, {ex.Message}");
                    success = false;
                }
                log.FieldChanged   = fieldChanged;
                log.Result         = success ? "Passed" : "Failed";
                log.Value          = data.Key.ToString();
                log.ControlChanged = "Fax Default";

                ExecutionServices.DataLogger.Submit(log);
            }
            else
            {
                success = true;
            }
            return(success);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Interface function to update and log device fields.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="ChangeValue"></param>
        /// <param name="device"></param>
        /// <param name="data"></param>
        /// <param name="urn"></param>
        /// <param name="endpoint"></param>
        /// <param name="assetInfo"></param>
        /// <param name="activity"></param>
        /// <param name="pluginExecutionData"></param>
        /// <returns>Success bool</returns>
        public bool UpdateField <T>(Func <WebServiceTicket, WebServiceTicket> changeValue, JediDevice device, DataPair <T> data, string urn, string endpoint, AssetInfo assetInfo,
                                    string activity, PluginExecutionData pluginExecutionData)
        {
            bool success;

            if (data.Value)
            {
                DeviceConfigResultLog log = new DeviceConfigResultLog(pluginExecutionData, assetInfo.AssetId);
                try
                {
                    int oidValue = data.Key.ToString() == "on" ? 1 : 0;
                    device.Snmp.Set(endpoint, oidValue);
                    success = true;
                }
                catch (Exception ex)
                {
                    Logger.LogError($"Failed to set field {activity}, {ex.Message}");
                    _failedSettings.AppendLine($"Failed to set field {activity}, {ex.Message}");
                    success = false;
                }
                log.FieldChanged   = activity;
                log.Result         = success ? "Passed" : "Failed";
                log.Value          = data.Key.ToString();
                log.ControlChanged = "Protocol Default";

                ExecutionServices.DataLogger.Submit(log);
            }
            else
            {
                success = true;
            }
            return(success);
        }
Exemplo n.º 3
0
        public bool UpdateWithOid <T>(Action <T> oidUsed, JediDevice device, DataPair <T> pair, AssetInfo assetInfo, string fieldChanged, PluginExecutionData pluginData)
        {
            if (pair.Value)
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                bool success = true;
                DeviceConfigResultLog log = new DeviceConfigResultLog(pluginData, assetInfo.AssetId);
                try
                {
                    var snmpData = GetCdm(device); //incase we have issues with endpoint, it is better to fail the setting than to abruptly stop the execution of the plugin
                    if (!string.IsNullOrEmpty(snmpData))
                    {
                        var objectGraph = serializer.DeserializeObject(snmpData) as Dictionary <string, object>;
                        var snmpEnabled = (string)objectGraph["snmpv1v2Enabled"];
                        if (snmpEnabled == "true")
                        {
                            var accessOption = (string)objectGraph["accessOption"];

                            //We need to change from read only
                            if (accessOption == "readOnly")
                            {
                                string jsonContent =
                                    @"{""snmpv1v2Enabled"": ""true"",""accessOption"": ""readWrite"",""readOnlyPublicAllowed"": ""true"",""readOnlyCommunityNameSet"": ""false"",""writeOnlyCommunitryNameSet"": ""false""}";

                                PutCdm(device, jsonContent);
                            }
                        }
                        //snmpv1v2 is disabled we need to enable it
                        else
                        {
                            string jsonContent =
                                @"{""snmpv1v2Enabled"": ""true"",""accessOption"": ""readWrite"",""readOnlyPublicAllowed"": ""true"",""readOnlyCommunityNameSet"": ""false"",""writeOnlyCommunitryNameSet"": ""false""}";
                            PutCdm(device, jsonContent);
                        }
                    }

                    oidUsed(pair.Key);

                    if (!string.IsNullOrEmpty(snmpData))
                    {
                        //Restore state
                        PutCdm(device, snmpData);
                    }
                }
                catch (Exception ex)
                {
                    Logger.LogError($"Failed to set field {log.FieldChanged}, {ex.Message}");
                    _failedSettings.AppendLine($"Failed to set field {log.FieldChanged}, {ex.Message}");
                    success = false;
                }
                log.FieldChanged   = fieldChanged;
                log.Result         = success ? "Passed" : "Failed";
                log.Value          = pair.Key.ToString();
                log.ControlChanged = "Web/TroubleShooting";

                ExecutionServices.DataLogger.Submit(log);
            }
            return(true);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Execution Entry point
        /// Individual function differences separated into delagate methods.
        /// </summary>
        /// <param name="device"></param>
        /// <param name="assetInfo"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ExecuteJob(JediDevice device, AssetInfo assetInfo, PluginExecutionData data)
        {
            Type type   = typeof(JobSettingsData);
            bool result = true;

            Dictionary <string, object> properties = new Dictionary <string, object>();

            foreach (PropertyInfo prop in type.GetProperties())
            {
                properties.Add(prop.Name, prop.GetValue(this));
            }

            if (!assetInfo.Attributes.HasFlag(AssetAttributes.Printer))
            {
                _failedSettings.AppendLine("Device has no Print capability, skipping Job Settings");

                DeviceConfigResultLog log =
                    new DeviceConfigResultLog(data, assetInfo.AssetId)
                {
                    FieldChanged   = "Job Settings",
                    Result         = "Skipped",
                    Value          = "NA",
                    ControlChanged = "Job Default"
                };

                ExecutionServices.DataLogger.Submit(log);
                return(false);
            }

            foreach (var item in properties)
            {
                switch (item.Key)
                {
                case "EnableJobStorage":
                    result &= SetJobStorageDefaultValues("StoredJobsEnabled", (DataPair <string>)item.Value, device, assetInfo, "Enable JobStorage", data);
                    break;

                case "MinLengthPin":
                    result &= SetJobStorageDefaultValues("PINLength", (DataPair <string>)item.Value, device, assetInfo, "MinLengthPin", data);
                    break;

                case "JobsPinRequired":
                    result &= SetJobStorageDefaultValues("SaveToDeviceMemoryJobsPinRequired", (DataPair <string>)item.Value, device, assetInfo, "Jobs Pin Requirement", data);
                    break;

                case "DefaultFolderName":
                    result &= SetJobStorageDefaultValues("PublicFolderName", (DataPair <string>)item.Value, device, assetInfo, "Folder Name", data);
                    break;

                case "RetainJobs":
                    result &= SetJobStorageDefaultValues("RetainTemporaryJobsMode", (DataPair <string>)item.Value, device, assetInfo, "Job Retention", data);
                    break;
                }
            }

            return(result);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Control the installation process.
        /// </summary>
        /// <param name="hpkfile">Hpk file infomation</param>
        /// <param name="device">Jedi device</param>
        /// <param name="assetInfo">Asset information</param>
        /// <param name="pluginData">Plugin execution data</param>
        /// <returns></returns>
        public bool UpdateHpk(HpkFileInfo hpkfile, JediDevice device, AssetInfo assetInfo, PluginExecutionData pluginData)
        {
            bool success = false;
            int  count   = 0;
            DeviceConfigResultLog log = new DeviceConfigResultLog(pluginData, assetInfo.AssetId);
            string progressState      = null;

            try
            {
                while (success == false && count < RetryCount)
                {
                    if (InstallPackage(device, hpkfile))
                    {
                        progressState = TrackPackage(device, hpkfile);

                        while (progressState == "psInProgress" || progressState == "404 Not Found" || progressState == "503 Service Unavailable" || string.IsNullOrEmpty(progressState))
                        {
                            Thread.Sleep(3000);
                            progressState = TrackPackage(device, hpkfile);
                        }
                        if (progressState == "psCompleted")
                        {
                            success = true;
                        }
                        else if (progressState == "psFailed")
                        {
                            success = false;
                        }
                        else
                        {
                            success = false;
                        }
                    }
                    else
                    {
                        success = false;
                        Thread.Sleep(10000);
                    }
                    count++;
                }
            }
            catch (Exception ex)
            {
                Logger.LogError($"Failed to install HPK : (Device:{device.Address}){hpkfile.PackageName}, {ex.Message}, progressState = {progressState}");
                _failedSettings.AppendLine($"Failed to install HPK: (Device:{device.Address}){hpkfile.PackageName}, {ex.Message}");
                success = false;
            }

            log.FieldChanged   = hpkfile.PackageName;
            log.Result         = success ? "Passed" : "Failed";
            log.Value          = "HpkInstall Values";
            log.ControlChanged = $@"HpkInstall :{hpkfile.PackageName}";

            ExecutionServices.DataLogger.Submit(log);

            return(success);
        }
Exemplo n.º 6
0
        private bool SetLanFaxDefaultValues(string unc, string domain, string username, string password, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData pluginData)
        {
            bool   success            = false;
            string endpoint           = "fax";
            string urn                = "urn:hp:imaging:con:service:fax:FaxService:ServiceDefaults";
            DeviceConfigResultLog log = new DeviceConfigResultLog(pluginData, assetInfo.AssetId);

            try
            {
                WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn);
                //Change values

                tic.FindElement("FaxMethod").SetValue("lanFaxService");
                tic.FindElement("UserName").SetValue(username);
                tic.FindElement("UNCPath").SetValue(unc);
                tic.FindElement("DomainName").SetValue(domain);

                string ticketString = tic.ToString();
                string insertString = $@"<dd:Password>{password}</dd:Password>";
                string searchString = @"</dd:UserName>";

                int foundLocation = ticketString.IndexOf(searchString);
                ticketString = ticketString.Insert(foundLocation + searchString.Length, Environment.NewLine + insertString);
                tic          = new WebServiceTicket(ticketString);

                device.WebServices.PutDeviceTicket(endpoint, urn, tic);
                success = true;
            }
            catch (Exception ex)
            {
                Logger.LogError($"Failed to set field {log.FieldChanged}, {ex.Message}");
                _failedSettings.AppendLine($"Failed to set field {log.FieldChanged}, {ex.Message}");
                success = false;
            }
            log.FieldChanged   = fieldChanged;
            log.Result         = success ? "Passed" : "Failed";
            log.Value          = $@"Method:Lanfax UserName:{username} Domain:{domain}";
            log.ControlChanged = "Fax Default";

            ExecutionServices.DataLogger.Submit(log);
            return(success);
        }
Exemplo n.º 7
0
        //[OnDeserializing]
        //public void ResetData(StreamingContext context)
        //{
        //    FaxResolution = new DataPair<string> { Key = String.Empty };
        //}
        /// <summary>
        /// Execution entry point
        /// </summary>
        /// <param name="device"></param>
        /// <param name="assetInfo"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ExecuteJob(JediDevice device, AssetInfo assetInfo, PluginExecutionData data)
        {
            Type type   = typeof(FaxSettingsData);
            bool result = true;
            Dictionary <string, object> properties = new Dictionary <string, object>();

            foreach (PropertyInfo prop in type.GetProperties().Where(x => x.PropertyType == typeof(DataPair <string>)))
            {
                properties.Add(prop.Name, prop.GetValue(this));
            }
            foreach (PropertyInfo propertyInfo in typeof(ScanSettings).GetProperties())
            {
                properties.Add(propertyInfo.Name, propertyInfo.GetValue(ScanSettingsData));
            }

            if (!assetInfo.Attributes.HasFlag(AssetAttributes.Scanner))
            {
                _failedSettings.AppendLine("Device has no Scanner capability, skipping Fax Settings");

                DeviceConfigResultLog log =
                    new DeviceConfigResultLog(data, assetInfo.AssetId)
                {
                    FieldChanged   = "Fax Settings",
                    Result         = "Skipped",
                    Value          = "NA",
                    ControlChanged = "Fax Default"
                };

                ExecutionServices.DataLogger.Submit(log);
                return(false);
            }

            //int fieldCount = 0;
            string unc      = "";
            string domain   = "";
            string user     = "";
            string password = "";

            foreach (var item in properties)
            {
                switch (item.Key)
                {
                case "EnableFax":
                    result &= SetFaxDefaultValues("FaxServiceEnabled", (DataPair <string>)item.Value, device, assetInfo, "Enable Fax", data);
                    break;

                case "FaxMethod":
                    result &= SetFaxDefaultValues("FaxMethod", (DataPair <string>)item.Value, device, assetInfo, "Fax Send Method", data);
                    break;

                case "ThirdPartyProduct":
                    result &= SetFaxDefaultValues("FaxVendorProductName", (DataPair <string>)item.Value, device, assetInfo, "Third Party Vendor", data);
                    break;

                case "FileFormat":
                    result &= SetFaxDefaultValues("FaxFileFormat", (DataPair <string>)item.Value, device, assetInfo, "File Format", data);
                    break;

                case "UNCFolderPath":
                case "DomainName":
                case "UserName":
                case "Password":
                    ///Find a way to implement the 4 fields at once
                    ///
                    var datapair = (DataPair <string>)item.Value;
                    if (datapair.Value)
                    {
                        switch (item.Key)
                        {
                        case "UNCFolderPath":
                            unc = datapair.Key;
                            break;

                        case "DomainName":
                            domain = datapair.Key;
                            break;

                        case "UserName":
                            user = datapair.Key;
                            break;

                        case "Password":
                            password = datapair.Key;
                            break;
                        }

                        if (!string.IsNullOrWhiteSpace(unc) && !string.IsNullOrWhiteSpace(domain) && !string.IsNullOrWhiteSpace(user) && !string.IsNullOrWhiteSpace(password))
                        {
                            result &= SetLanFaxDefaultValues(unc, domain, user, password, device, assetInfo, "Lan Fax Default Values", data);
                        }
                    }
                    break;

                case "Location":
                    result &= SetAnalogFaxSettings("AnalogFaxCountry", (DataPair <string>)item.Value, device,
                                                   assetInfo, "Location", data);
                    break;

                case "CompanyName":
                    result &= SetAnalogFaxSettings("CompanyName", (DataPair <string>)item.Value, device, assetInfo, "Company Name", data);
                    break;

                case "FaxNumber":
                    result &= SetAnalogFaxSettings("FaxNumber", (DataPair <string>)item.Value, device, assetInfo, "Fax Number", data);
                    break;

                case "OriginalSize":
                    result &= SetFaxDefaultJobValues("ScanMediaSize", (DataPair <string>)item.Value, device, assetInfo, "Scan Media Size", data);
                    break;

                case "OriginalSides":
                    result &= SetFaxDefaultJobValues("ScanPlexMode", (DataPair <string>)item.Value, device, assetInfo, "Original Sides", data);
                    break;

                case "Optimize":
                    result &= SetFaxDefaultJobValues("ScanMode", (DataPair <string>)item.Value, device, assetInfo, "Optimize", data);
                    break;

                case "ContentOrientation":
                    result &= SetFaxDefaultJobValues("OriginalContentOrientation", (DataPair <string>)item.Value, device, assetInfo, "Orientation", data);
                    break;

                case "ImagePreview":
                    result &= SetFaxDefaultJobValues("ImagePreview", (DataPair <string>)item.Value, device, assetInfo, "Image Preview", data);
                    break;

                case "Cleanup":
                    result &= SetFaxDefaultJobValues("BackgroundRemoval", (DataPair <string>)item.Value, device, assetInfo, "Cleanup", data);
                    break;

                case "Sharpness":
                    result &= SetFaxDefaultJobValues("Sharpness", (DataPair <string>)item.Value, device, assetInfo, "Sharpness", data);
                    break;

                case "Darkness":
                    result &= SetFaxDefaultJobValues("Exposure", (DataPair <string>)item.Value, device, assetInfo, "Darkness", data);
                    break;

                case "Contrast":
                    result &= SetFaxDefaultJobValues("Contrast", (DataPair <string>)item.Value, device, assetInfo, "Contrast", data);
                    break;

                case "FaxResolution":
                    result &= SetFaxDefaultJobValues("FaxSendResolution", (DataPair <string>)item.Value, device, assetInfo, "Fax Resolution", data);
                    break;

                default:
                    break;
                }
            }

            return(result);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Execution Entry point
        /// </summary>
        /// <param name="device"></param>
        /// <param name="assetInfo"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ExecuteJob(JediDevice device, AssetInfo assetInfo, PluginExecutionData data)
        {
            Type type   = typeof(PrintSettingsData);
            bool result = true;
            Dictionary <string, object> properties = new Dictionary <string, object>();

            foreach (PropertyInfo prop in type.GetProperties())
            {
                properties.Add(prop.Name, prop.GetValue(this));
            }

            if (!assetInfo.Attributes.HasFlag(AssetAttributes.Printer))
            {
                _failedSettings.AppendLine("Device has no Print capability, skipping Print Settings");

                DeviceConfigResultLog log =
                    new DeviceConfigResultLog(data, assetInfo.AssetId)
                {
                    FieldChanged   = "Print Settings",
                    Result         = "Skipped",
                    Value          = "NA",
                    ControlChanged = "Print Default"
                };

                ExecutionServices.DataLogger.Submit(log);
                return(false);
            }

            foreach (var item in properties)
            {
                switch (item.Key)
                {
                case "PrintFromUsb":
                    result &= SetUsbDefaultValues("PrintFromUSBMassStorageEnabled", (DataPair <string>)item.Value, device, assetInfo, "Enable Print From USB", data);
                    break;

                case "Copies":
                    result &= SetPrintDefaultValues("DefaultPrintCopies", (DataPair <string>)item.Value, device, assetInfo, "Default Print Copies", data);
                    break;

                case "OriginalSize":
                    result &= SetPrintDefaultValues("MediaSizeID", (DataPair <string>)item.Value, device, assetInfo, "Original Size", data);
                    break;

                case "PaperType":
                    result &= SetPrintDefaultValues("MediaType", (DataPair <string>)item.Value, device, assetInfo, "Paper Type", data);
                    break;

                case "PaperTray":
                    result &= SetPrintDefaultValues("ManualFeed", (DataPair <string>)item.Value, device, assetInfo, "Paper Tray", data);
                    break;

                case "OutputBin":
                    result &= SetPrintDefaultValues("DefaultOutputBin", (DataPair <string>)item.Value, device, assetInfo, "Output Bin", data);
                    break;

                case "OutputSides":
                    result &= SetPrintDefaultValues("Plex", (DataPair <string>)item.Value, device, assetInfo, "Output Sides", data);
                    break;

                case "Resolution":
                    result &= SetPrintDefaultValues("ResolutionSetting", (DataPair <string>)item.Value, device, assetInfo, "Resolution", data);
                    break;
                }
            }

            return(result);
        }
Exemplo n.º 9
0
        //Do things by type of unique QuickSetCollection
        /// <summary>
        /// Execution Entry point
        /// Individual function differences separated into delagate methods.
        /// </summary>
        /// <param name="device"></param>
        /// <param name="assetInfo"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ExecuteJob(JediDevice device, AssetInfo assetInfo, PluginExecutionData data)
        {
            bool result = true;

            if (!assetInfo.Attributes.HasFlag(AssetAttributes.Scanner))
            {
                _failedSettings.AppendLine("Device has no Scanner capability, skipping QuickSet Settings");

                DeviceConfigResultLog log =
                    new DeviceConfigResultLog(data, assetInfo.AssetId)
                {
                    FieldChanged   = "QuickSet Settings",
                    Result         = "Skipped",
                    Value          = "NA",
                    ControlChanged = "QuickSet Default"
                };

                ExecutionServices.DataLogger.Submit(log);
                return(false);
            }
            InitialisePrivateMembers();
            if (QuickSetData.Value)
            {
                var grouping = QuickSetData.Key.GroupBy(x => x.GetType());

                foreach (var group in grouping)
                {
                    switch (group.Key.Name)
                    {
                    case "EmailQuickSetData":
                        result &= SetEmailQuickSetData(group.OfType <EmailQuickSetData>(), device, assetInfo, "EmailQuickSetData", data);
                        break;

                    case "CopyQuickSetData":
                        result &= SetCopyQuickSetData(group.OfType <CopyQuickSetData>(), device, assetInfo, "CopyQuickSetData", data);
                        break;

                    case "STNFQuickSetData":
                        result &= SetSTNFQuickSetData(group.OfType <STNFQuickSetData>(), device, assetInfo, "NetworkFolderQuickSetData", data);
                        break;

                    case "STSharePointQuickSetData":
                        result &= SetSTSharePointQuickSetData(group.OfType <STSharePointQuickSetData>(), device, assetInfo, "SharePointQuickSetData", data);
                        break;

                    case "STUSBQuickSetData":
                        result &= SetSTUSBQuickSetData(group.OfType <STUSBQuickSetData>(), device, assetInfo, "ScanToUSBQuickSetData", data);
                        break;

                    case "ScanFaxQuickSetData":
                        result &= SetScanFaxQuickSetData(group.OfType <ScanFaxQuickSetData>(), device, assetInfo, "ScanFaxQuickSetData", data);
                        break;

                    case "FTPQuickSetData":
                        result &= SetFTPQuickSetData(group.OfType <FTPQuickSetData>(), device, assetInfo, "STPQuickSetData", data);
                        break;

                    default:
                        throw new Exception("QuickSet Setting Property Error");
                    }
                }
            }
            return(result);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Execution entry point
        /// </summary>
        /// <param name="device"></param>
        /// <param name="assetInfo"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ExecuteJob(JediDevice device, AssetInfo assetInfo, PluginExecutionData data)
        {
            Type type   = typeof(FolderSettingsData);
            bool result = true;
            Dictionary <string, object> properties = new Dictionary <string, object>();

            foreach (PropertyInfo prop in type.GetProperties().Where(x => x.PropertyType == typeof(DataPair <string>)))
            {
                properties.Add(prop.Name, prop.GetValue(this));
            }
            foreach (var propertyInfo in typeof(ScanSettings).GetProperties())
            {
                properties.Add(propertyInfo.Name, propertyInfo.GetValue(ScanSettingsData));
            }
            foreach (var propertyInfo in typeof(FileSettings).GetProperties())
            {
                properties.Add(propertyInfo.Name, propertyInfo.GetValue(FileSettingsData));
            }

            if (!assetInfo.Attributes.HasFlag(AssetAttributes.Scanner))
            {
                _failedSettings.AppendLine("Device has no Scanner capability, skipping Folder Settings");

                DeviceConfigResultLog log =
                    new DeviceConfigResultLog(data, assetInfo.AssetId)
                {
                    FieldChanged   = "Folder Settings",
                    Result         = "Skipped",
                    Value          = "NA",
                    ControlChanged = "Folder Default"
                };

                ExecutionServices.DataLogger.Submit(log);
                return(false);
            }

            foreach (var item in properties)
            {
                switch (item.Key)
                {
                case "EnableScanToFolder":
                    result &= SetFolderDefaultValues("FolderServiceEnabled", (DataPair <string>)item.Value, device, assetInfo, "Enable ScanToFolder", data);
                    break;

                case "Folder":
                    result &= SetFolderDefaultValues("SendToFolderWithoutReadAccess", (DataPair <string>)item.Value, device, assetInfo, "Folder Access Type", data);
                    break;

                case "OriginalSize":
                    result &= SetFolderDefaultJobValues("ScanMediaSize", (DataPair <string>)item.Value, device, assetInfo, "Scan Media Size", data);
                    break;

                case "OriginalSides":
                    result &= SetFolderDefaultJobValues("ScanPlexMode", (DataPair <string>)item.Value, device, assetInfo, "Original Side", data);
                    break;

                case "Optimize":
                    result &= SetFolderDefaultJobValues("ScanMode", (DataPair <string>)item.Value, device, assetInfo, "Optimize", data);
                    break;

                case "Orientation":
                    result &= SetFolderDefaultJobValues("OriginalContentOrientation", (DataPair <string>)item.Value, device, assetInfo, "Orientation", data);
                    break;

                case "ImagePreview":
                    result &= SetFolderDefaultJobValues("ImagePreview", (DataPair <string>)item.Value, device, assetInfo, "Image Preview", data);
                    break;

                case "Cleanup":
                    result &= SetFolderDefaultJobValues("BackgroundRemoval", (DataPair <string>)item.Value, device, assetInfo, "Cleanup", data);
                    break;

                case "Sharpness":
                    result &= SetFolderDefaultJobValues("Sharpness", (DataPair <string>)item.Value, device, assetInfo, "Sharpness", data);
                    break;

                case "Darkness":
                    result &= SetFolderDefaultJobValues("Exposure", (DataPair <string>)item.Value, device, assetInfo, "Darkness", data);
                    break;

                case "Contrast":
                    result &= SetFolderDefaultJobValues("Contrast", (DataPair <string>)item.Value, device, assetInfo, "Contrast", data);
                    break;

                case "CroppingOption":
                {
                    DataPair <string> offDataPair = new DataPair <string> {
                        Key = "off", Value = true
                    };
                    DataPair <string> onDataPair = new DataPair <string> {
                        Key = "on", Value = true
                    };
                    switch (CroppingOption.Key)
                    {
                    case "0":
                    {
                        result &= SetFolderDefaultJobValues("AutoCrop", offDataPair, device, assetInfo, "Cropping Option", data);
                        result &= SetFolderDefaultJobValues("AutoPageCrop", offDataPair, device, assetInfo, "Cropping Option", data);
                    }
                    break;

                    case "1":
                    {
                        result &= SetFolderDefaultJobValues("AutoCrop", offDataPair, device, assetInfo, "Cropping Option", data);
                        result &= SetFolderDefaultJobValues("AutoPageCrop", onDataPair, device, assetInfo, "Cropping Option", data);
                    }
                    break;

                    case "2":
                    {
                        result &= SetFolderDefaultJobValues("AutoCrop", onDataPair, device, assetInfo, "Cropping Option", data);
                        result &= SetFolderDefaultJobValues("AutoPageCrop", offDataPair, device, assetInfo, "Cropping Option", data);
                    }
                    break;
                    }
                }
                break;

                case "FileName":
                    result &= SetFolderDefaultJobValues("FileName", (DataPair <string>)item.Value, device, assetInfo, "FileName", data);
                    break;

                case "FileNamePrefix":
                    result &= SetFolderDefaultJobValues("FileNamePrefix", (DataPair <string>)item.Value, device, assetInfo, "FileName Prefix", data);
                    break;

                case "FileNameSuffix":
                    result &= SetFolderDefaultJobValues("FileNameSuffix", (DataPair <string>)item.Value, device, assetInfo, "FileName Suffix", data);
                    break;

                case "FileType":
                    result &= SetFolderDefaultJobValues("DSFileType", (DataPair <string>)item.Value, device, assetInfo, "File Type", data);
                    break;

                case "Resolution":
                    result &= SetFolderDefaultJobValues("DSImageResolution", (DataPair <string>)item.Value, device, assetInfo, "Resolution", data);
                    break;

                case "FileColor":
                    result &= SetFolderDefaultJobValues("DSColorPreference", (DataPair <string>)item.Value, device, assetInfo, "Color", data);
                    break;

                case "FileSize":
                    result &= SetFolderDefaultJobValues("DSAttachmentSize", (DataPair <string>)item.Value, device, assetInfo, "File Size", data);
                    break;

                case "FileNumbering":
                    result &= SetFolderDefaultJobValues("AttachmentFileNameFormat", (DataPair <string>)item.Value, device, assetInfo, "File Numbering Format", data);
                    break;
                }
            }

            return(result);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Sets fields for EmailSettingsData
        /// </summary>
        /// <param name="device"></param>
        /// <param name="assetInfo"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ExecuteJob(JediDevice device, AssetInfo assetInfo, PluginExecutionData data)
        {
            Type type   = typeof(EmailSettingsData);
            bool result = true;
            Dictionary <string, object> properties = new Dictionary <string, object>();

            foreach (PropertyInfo prop in type.GetProperties())
            {
                properties.Add(prop.Name, prop.GetValue(this));
            }

            if (!assetInfo.Attributes.HasFlag(AssetAttributes.Scanner))
            {
                _failedSettings.AppendLine("Device has no Scanner capability, skipping Email Settings");

                DeviceConfigResultLog log =
                    new DeviceConfigResultLog(data, assetInfo.AssetId)
                {
                    FieldChanged   = "Email Settings",
                    Result         = "Skipped",
                    Value          = "NA",
                    ControlChanged = "Email Default"
                };

                ExecutionServices.DataLogger.Submit(log);
                return(false);
            }

            foreach (var item in properties)
            {
                switch (item.Key)
                {
                case "EnableScanToEmail":
                    result &= SetEnableScanToEmail((DataPair <string>)item.Value, device, assetInfo, "EnableScanToEmail", data);
                    break;

                case "SMTPServer":
                    result &= SetSMTPServer((DataPair <string>)item.Value, device, assetInfo, "SMTPServer", data);
                    break;

                case "FromUser":
                    result &= SetFromUser((DataPair <string>)item.Value, device, assetInfo, "FromUser", data);
                    break;

                case "DefaultFrom":
                    result &= SetDefaultFrom((DataPair <string>)item.Value, device, assetInfo, "DefaultFrom", data);
                    break;

                case "To":
                    result &= SetTo((DataPair <string>)item.Value, device, assetInfo, "To", data);
                    break;

                case "OriginalSize":
                    result &= SetOriginalSize((DataPair <string>)item.Value, device, assetInfo, "OriginalSize", data);
                    break;

                case "OriginalSides":
                    result &= SetOriginalSides((DataPair <string>)item.Value, device, assetInfo, "OriginalSides", data);
                    break;

                case "ImagePreview":
                    result &= SetImagePreview((DataPair <string>)item.Value, device, assetInfo, "ImagePreview", data);
                    break;

                case "FileType":
                    result &= SetFileType((DataPair <string>)item.Value, device, assetInfo, "FileType", data);
                    break;

                case "Resolution":
                    result &= SetResolution((DataPair <string>)item.Value, device, assetInfo, "Resolution", data);
                    break;

                default:
                    throw new Exception("Field Property Error");
                }
            }

            return(result);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Execution point
        /// </summary>
        /// <param name="device"></param>
        /// <param name="assetInfo"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ExecuteJob(JediDevice device, AssetInfo assetInfo, PluginExecutionData data)
        {
            Type type   = typeof(CopySettingsData);
            bool result = true;
            Dictionary <string, object> properties = new Dictionary <string, object>();

            foreach (PropertyInfo prop in type.GetProperties().Where(x => x.PropertyType == typeof(DataPair <string>)))
            {
                properties.Add(prop.Name, prop.GetValue(this));
            }

            foreach (var propertyInfo in typeof(ScanSettings).GetProperties())
            {
                properties.Add(propertyInfo.Name, propertyInfo.GetValue(ScanSettingsData));
            }

            if (!assetInfo.Attributes.HasFlag(AssetAttributes.Scanner))
            {
                _failedSettings.AppendLine("Device has no Scanner capability, skipping Copy Settings");

                DeviceConfigResultLog log =
                    new DeviceConfigResultLog(data, assetInfo.AssetId)
                {
                    FieldChanged   = "Copy Settings",
                    Result         = "Skipped",
                    Value          = "NA",
                    ControlChanged = "Copy Default"
                };

                ExecutionServices.DataLogger.Submit(log);
                return(false);
            }

            foreach (var item in properties)
            {
                switch (item.Key)
                {
                case "Copies":
                    result &= SetCopyDefaultValues("DefaultPrintCopies", (DataPair <string>)item.Value, device, assetInfo, "Default Print Copies", data);
                    break;

                case "ReduceEnlarge":
                {
                    var dataPair = new DataPair <string>
                    {
                        Key   = "false",
                        Value = true
                    };
                    if (Convert.ToInt32(((DataPair <string>)item.Value).Key) == 100)
                    {
                        dataPair.Key = "true";
                    }

                    result &= SetCopyDefaultValues("AutoScale", dataPair, device, assetInfo, "Reduce Enlarge", data);
                    result &= SetCopyDefaultValues("Scaling", (DataPair <string>)item.Value, device, assetInfo, "Reduce Enlarge", data);
                }
                break;

                case "CopySides":
                    result &= SetCopyDefaultValues("CopySides", (DataPair <string>)item.Value, device, assetInfo, "Copy Sides", data);
                    break;

                case "Color":
                    result &= SetCopyDefaultValues("ChromaticMode", (DataPair <string>)item.Value, device, assetInfo, "Color", data);
                    break;

                case "ScanMode":
                    result &= SetCopyDefaultValues("CaptureMode", (DataPair <string>)item.Value, device, assetInfo, "Scan Mode", data);
                    break;

                case "Collate":
                    result &= SetCopyDefaultValues("SheetCollate", (DataPair <string>)item.Value, device, assetInfo, "Collate", data);
                    break;

                case "PagesPerSheet":
                    result &= SetCopyDefaultValues("CopyOutputNumberUpCount", (DataPair <string>)item.Value, device, assetInfo, "Pages per Sheet", data);
                    break;

                case "OriginalSize":
                    result &= SetCopyDefaultValues("ScanMediaSize", (DataPair <string>)item.Value, device, assetInfo, "Original Size", data);
                    break;

                case "OriginalSides":
                    result &= SetCopyDefaultValues("ScanPlexMode", (DataPair <string>)item.Value, device, assetInfo, "Original Sides", data);
                    break;

                case "Optimize":
                    result &= SetCopyDefaultValues("ScanMode", (DataPair <string>)item.Value, device, assetInfo, "Optimize Mode", data);
                    break;

                case "ContentOrientation":
                    result &= SetCopyDefaultValues("OriginalContentOrientation", (DataPair <string>)item.Value, device, assetInfo, "Orientation", data);
                    break;

                case "Cleanup":
                    result &= SetCopyDefaultValues("BackgroundRemoval", (DataPair <string>)item.Value, device, assetInfo, "Cleanup", data);
                    break;

                case "Sharpness":
                    result &= SetCopyDefaultValues("Sharpness", (DataPair <string>)item.Value, device, assetInfo, "Sharpness", data);
                    break;

                case "Darkness":
                    result &= SetCopyDefaultValues("Exposure", (DataPair <string>)item.Value, device, assetInfo, "Darkness", data);
                    break;

                case "Contrast":
                    result &= SetCopyDefaultValues("Contrast", (DataPair <string>)item.Value, device, assetInfo, "Contrast", data);
                    break;

                case "ImagePreview":
                    result &= SetCopyDefaultValues("ImagePreview", (DataPair <string>)item.Value, device, assetInfo, "Image Preview", data);
                    break;
                }
            }

            return(result);
        }