Esempio n. 1
0
        public GetListResponse<Configuration> GetChildren(ConfigRequest req)
        {
            try
            {
                string name = Util.GetConnName<Configuration>();
                var db = ImardaDatabase.CreateDatabase(name);

                object[] args = new object[5];
                args[0] = req.ID;
                Guid[] levels = req.GetLevels();
                int n = Math.Min(levels.Length, 4);
                Array.Copy(levels, 0, args, 1, n);

                using (IDataReader dr = db.ExecuteDataReader("GetChildren", args))
                {
                    var list = new List<Configuration>();
                    while (dr.Read())
                    {
                        var c = GetFromData<Configuration>(dr);
                        list.Add(c);
                    }

                    return new GetListResponse<Configuration>(list);
                }

            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle<GetListResponse<Configuration>>(ex);
            }
        }
Esempio n. 2
0
        public GetListResponse<Configuration> GetHierarchy(ConfigRequest req)
        {
            try
            {
                string name = Util.GetConnName<Configuration>();
                var db = ImardaDatabase.CreateDatabase(name);

                object[] args = new object[7];
                args[0] = req.ID;
                args[1] = 0; // hierarchy
                Guid[] levels = req.GetLevels();
                int n = levels.Length;
                for (int i = 0; i < n; i++) args[i + 2] = levels[i];

                using (IDataReader dr = db.ExecuteDataReader("GetConfiguration", args))
                {
                    var list = new List<Configuration>();
                    while (dr.Read())
                    {
                        var c = GetFromData<Configuration>(dr);
                        list.Add(c);
                    }
                    list.Reverse(); // -> [0] becomes root
                    return new GetListResponse<Configuration>(list);
                }
            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle<GetListResponse<Configuration>>(ex);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Run startup scripts
        /// </summary>
        /// <param name="conn"></param>
        /*protected override void internalUpdateDatabase(System.Data.SqlClient.SqlConnection conn) {

        }*/
        protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            // Initialize session cache with object expiry time
            IImardaConfiguration service = ImardaProxyManager.Instance.IImardaConfigurationProxy;
            ChannelInvoker.Invoke(delegate(out IClientChannel channel)
            {
                channel = service as IClientChannel;
                var request = new ConfigRequest(new Guid("fd17ad5d-1844-4737-bce0-451a90182fcf"), null);
                var response = service.GetConfigValue(request);
                if (response.Status)
                {
                    int expiration = response.Item.As<int>(30);
                    if (expiration > 0) SessionObjectCache.Instance.Expiration = TimeSpan.FromMinutes(expiration);
                }
            });
        }
Esempio n. 4
0
        public SimpleResponse<int> GetChildrenCount(ConfigRequest req)
        {
            try
            {
                string name = Util.GetConnName<Configuration>();
                var db = ImardaDatabase.CreateDatabase(name);

                object[] args = new object[5];
                args[0] = req.ID;
                Guid[] levels = req.GetLevels();
                int n = Math.Min(levels.Length, 4);
                Array.Copy(levels, 0, args, 1, n);

                int count = (int)db.ExecuteScalar("GetChildrenCount", args);
                return new SimpleResponse<int>(count);
            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle<SimpleResponse<int>>(ex);
            }
        }
 public static string CalcPreferences(ICultureConfigGroup config, IImardaConfiguration iConfig)
 {
     Guid unitSystemID = config.UnitSystem;
     if (unitSystemID == Guid.Empty)
     {
         unitSystemID = new RegionInfo(config.Region).IsMetric
             ? MetricUnitSystemID
             : USCustomaryUnitSystemID;
     }
     Guid regionID = CultureIDs.Instance.GetCountryGuid(config.Region);
     var req = new ConfigRequest(RegionMeasurementUnitsID, null, unitSystemID, regionID);
     var resp = iConfig.GetConfigValue(req);
     ErrorHandler.Check(resp);
     string regionMeasurementUnits = resp.Item.As<string>();
     string preferences = StringUtils.MergeNonArrayKeyValuePairs(
         regionMeasurementUnits,
         config.PreferredMeasurementUnits,
         "Region|" + config.Region,
         "Locale|" + config.Locale
         );
     return preferences;
 }
        /// <summary>
        /// Create the report objects. Do not download the report yet.
        /// </summary>
        /// <param name="repTask"></param>
        /// <param name="companyID"></param>
        /// <param name="reportName">The name of the report, valid filename</param>
        /// <returns>the report server URL where to download the report</returns>
        private Uri RunReport(ReportTask repTask, Guid companyID, out string reportName, out string ext)
        {
            _Log.InfoFormat("Run report {0}", repTask.ID);

            reportName = "";
            ext = "";
            ReportDef rdef = repTask.Definition;

            string pref = String.Empty;

            IImardaConfiguration service1 = ImardaProxyManager.Instance.IImardaConfigurationProxy;
            ChannelInvoker.Invoke(delegate(out IClientChannel channel)
                                                            {
                                                                channel = service1 as IClientChannel;

                                                                Guid unitSys = rdef.UnitSystemID;
                                                                _Log.InfoFormat("unitSys = {0}", unitSys);
                                                                if (unitSys == CultureHelper.MetricUnitSystemID
                                                                        || unitSys == CultureHelper.USCustomaryUnitSystemID
                                                                        || unitSys == CultureHelper.ImperialUnitSystemID)
                                                                {
                                                                    _Log.Info("Specific Unit System selected");
                                                                    Guid countryID = CultureIDs.Instance.GetCountryGuid(CultureHelper.GetRegion(rdef.Locale));
                                                                    _Log.InfoFormat("countryID = {0}", countryID);
                                                                    var req1 = new ConfigRequest(CultureHelper.RegionMeasurementUnitsID, null, unitSys,
                                                                                                                             countryID);
                                                                    GetItemResponse<ConfigValue> resp1 = service1.GetConfigValue(req1);
                                                                    ErrorHandler.CheckItem(resp1);
                                                                    _Log.InfoFormat("prefs = {0} {1}", resp1.Item.UID, resp1.Item.Value);
                                                                    pref = resp1.Item.As<string>();
                                                                }
                                                                else
                                                                {
                                                                    _Log.Info("Company/User Unit System selected");
                                                                    Guid personID = (unitSys == Guid.Empty || unitSys == new Guid("B820DAA2-6059-43EE-998B-7293A2CF4B6F")) ? Guid.Empty : repTask.TaskOwnerID;
                                                                    _Log.InfoFormat("personID = {0}", personID);
                                                                    SimpleResponse<string> resp1 =
                                                                        service1.GetCulturePreferences(new GenericRequest(personID, companyID));
                                                                    ErrorHandler.Check(resp1);
                                                                    pref = resp1.Value;
                                                                }
                                                            });
            _Log.InfoFormat("pref = {0}", pref);

            //ReportType linkedReportType = null;

            //IImardaReport service2 = ImardaProxyManager.Instance.IImardaReportProxy;
            //ChannelInvoker.Invoke(delegate(out IClientChannel channel)
            //    {
            //        channel = service2 as IClientChannel;

            //        GetItemResponse<ReportType> resp2 = service2.GetReportType(new IDRequest(rdef.ReportTypeID));
            //        ErrorHandler.CheckItem(resp2);
            //        ReportType reportType = resp2.Item;

            //        string context = rdef.ReportContext(companyID, repTask.GetTimeZoneInfo(), DateTime.UtcNow,
            //                                                                                pref);
            //        _Log.InfoFormat("Report Parameters = {0}", context);
            //        _Log.InfoFormat("Period = {0} ~ {1}", rdef.PeriodBegin, rdef.PeriodEnd);
            //        var parameters = new ParamsForCreateLinkedReportType
            //                                            {
            //                                                CompanyID = companyID,
            //                                                UserID = repTask.TaskOwnerID,
            //                                                Name = reportType.Name,
            //                                                Version = reportType.Version,
            //                                                OwnerID = repTask.TaskOwnerID,
            //                                                ReportNumber = null,
            //                                                ReportParameters = context,
            //                                                Description = string.Format(
            //                                                    // new Locale(rdef.Locale),
            //                                                    "{0} {1:dd MMM yyyy HH:mm} - {2:dd MMM yyyy HH:mm}",
            //                                                    rdef.Description, rdef.PeriodBegin, rdef.PeriodEnd)
            //                                            };

            //        resp2 = service2.CreateLinkedReportType(parameters.AsGenericRequest());
            //        ErrorHandler.CheckItem(resp2);
            //        _Log.InfoFormat("Create Linked Report", resp2.Item);
            //        linkedReportType = resp2.Item;
            //    });

            //string name = null;
            //string url = String.Empty;
            //IImardaReport service3 = ImardaProxyManager.Instance.IImardaReportProxy;
            //ChannelInvoker.Invoke(delegate(out IClientChannel channel)
            //                                                {
            //                                                    _Log.InfoFormat("Create snapshot {0}", linkedReportType.ID);
            //                                                    channel = service3 as IClientChannel;
            //                                                    channel.OperationTimeout = TimeSpan.FromMinutes(5);
            //                                                    var req = new GenericRequest(linkedReportType.ID);
            //                                                    GetItemResponse<Report> resp3 = service3.CreateSnapshot(req);
            //                                                    _Log.InfoFormat("Result {0}", resp3);
            //                                                    ErrorHandler.CheckItem(resp3);
            //                                                    Report report = resp3.Item;
            //                                                    _Log.DebugFormat("Original Format {0}", rdef.RenderFormat.ToString());
            //                                                    url = report.GetReportFormatURL(_ReportHost, rdef.RenderFormat.ToString(), out name);
            //                                                    _Log.DebugFormat("Format After Get ReportUrl{0}", rdef.RenderFormat.ToString());
            //                                                    name = MakeFileName(name, companyID, rdef.RenderFormat);
            //                                                    _Log.InfoFormat("Report URL {0} => [{1}] with Render Format => {2}", url, name, rdef.RenderFormat.ToString());
            //                                                });
            //reportName = name;
            //ext = rdef.RenderFormat.ToString();
            //return String.IsNullOrEmpty(url) ? null : new Uri(url);
            var tempuri = string.Empty;
            return String.IsNullOrEmpty(tempuri) ? null : new Uri(tempuri);
            //return new Uri();
        }
Esempio n. 7
0
        public SimpleResponse<int> SaveHierarchy(ConfigRequest req)
        {
            try
            {
                int result;
                object value = req.AppParameter;
                req.AppParameter = null;

                var resp = GetHierarchy(req);
                ErrorHandler.Check(resp);

                // Example:
                // array of existing Configuration objects:
                //
                //	L1 L2 L3 L4 L5
                // 0  -  -  -  -  -
                // 1  x1 -  -  -  -
                // 2  x1 x2 -  -  -	 existingLevel=2
                //
                // request new
                //
                //	[0] [1] [2] [3]
                //	x1  x2  n3  n4	depth=4
                //
                // create:
                //
                //	 L1 L2 L3 L4 L5
                // i=3 x1 x2 n3 -  -
                // i=4 x1 x2 n3 n4 -
                //

                var list = resp.List;
                int existingLevel = list.Count - 1;
                int depth = req.Depth;

                if (existingLevel == depth)
                {
                    if (value == null)
                    {
                        var resp1 = GetChildrenCount(req);
                        ErrorHandler.Check(resp1);
                        if (resp1.Value == 0)
                        {
                            // no child nodes: can delete
                            var resp3 = DeleteConfigurationByUID(new IDRequest(list[existingLevel].UID));
                            ErrorHandler.Check(resp3);
                            result = -1;
                        }
                        else
                        {
                            // has child nodes, can not delete: do nothing
                            result = 0;
                        }
                    }
                    else
                    {
                        Configuration c = list[existingLevel];
                        c.VersionValue = ConfigItemVersion.Create(req.ValueType, value, false, Guid.Empty).ToString();
                        var resp1 = SaveConfigurationByUID(new SaveRequest<Configuration>(c));
                        ErrorHandler.Check(resp1);
                        result = 1;
                    }
                }
                else // exisitingLevel < depth
                {
                    if (value == null)
                    {
                        result = 0;
                    }
                    else
                    {
                        Guid[] levels = new Guid[5];
                        Array.Copy(req.GetLevels(), levels, depth);
                        string sValue = ConfigItemVersion.Create(req.ValueType, value, false, Guid.Empty).ToString();
                        result = 0;
                        for (int i = existingLevel + 1; i <= depth; i++)
                        {
                            bool combine = i != 0 && req.Combine;
                            var c = new Configuration
                            {
                                ID = req.ID,
                                Combine = combine,
                                ValueType = req.ValueType,
                                Notes = req.Notes,
                                VersionValue = combine ? string.Empty : sValue,
                                Level1 = i >= 1 ? levels[0] : Guid.Empty,
                                Level2 = i >= 2 ? levels[1] : Guid.Empty,
                                Level3 = i >= 3 ? levels[2] : Guid.Empty,
                                Level4 = i >= 4 ? levels[3] : Guid.Empty,
                                Level5 = i >= 5 ? levels[4] : Guid.Empty,
                                UID = SequentialGuid.NewDbGuid(),
                            };
                            var resp2 = SaveConfigurationByUID(new SaveRequest<Configuration>(c));
                            ErrorHandler.Check(resp2);
                            result++;
                        }
                    }
                }
                return new SimpleResponse<int>(result);
            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle<SimpleResponse<int>>(ex);
            }
        }
        public SimpleResponse<string> GetCompanyCustomUnits(IDRequest request)
        {
            try
            {
                Guid companyID = request.ID;
                RemoveCachedCulture(new IDRequest(companyID));

                string result = string.Empty;

                // first get root level
                var req0 = new ConfigRequest(CultureHelper.PreferredMeasurementUnitsID, null) { IgnoreCache = true };
                var resp0 = GetConfigValue(req0);
                ErrorHandler.CheckItem(resp0);
                Guid uid0 = resp0.Item.UID;

                // then get level1, but this may not exist
                var req1 = new ConfigRequest(CultureHelper.PreferredMeasurementUnitsID, null, companyID)  { IgnoreCache = true };
                var resp1 = GetConfigValue(req1);
                ErrorHandler.CheckItem(resp1);

                Guid uid1 = resp1.Item.UID;
                if (!uid0.Equals(uid1))
                {
                    // UIDs are different, this means that level1 exists: get the value on this level
                    var resp = GetConfigurationByUID(new IDRequest(uid1));
                    result = resp.Item.VersionValue;
                }
                return new SimpleResponse<string>(result);
            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle<SimpleResponse<string>>(ex);
            }
        }
        public BusinessMessageResponse SetUserLocale(ConfigRequest req)
        {
            //
            // L0 L1 L2 | null			| not null
            // ---------+-----------------+-----------------
            // 1  0  0  | do nothing [a]  | create L1,L2 [d]
            // 1  1  0  | do nothing [b]  | create L2	[e]
            // 1  1  1  | delete L2  [c]  | update L2	[f]
            //

            BusinessMessageResponse resp = null;
            try
            {
                Guid[] levels = req.GetLevels();
                Guid companyID = levels[0]; // Database column LEVEL1
                Guid personID = levels[1];  // Database column LEVEL2

                Guid localeItemID = new Guid(CultureConfigGroup.LocaleItemID);
                req.ID = localeItemID;
                string locale = (string)req.AppParameter ?? string.Empty;
                req.AppParameter = null;

                // root level
                var req0 = new ConfigRequest(localeItemID, null) { IgnoreCache = true };
                var resp0 = GetConfigValue(req0);
                ErrorHandler.CheckItem(resp0);
                Guid uid0 = resp0.Item.UID;

                // company level (L1)
                var req1 = new ConfigRequest(localeItemID, null, companyID) { IgnoreCache = true };
                var resp1 = GetConfigValue(req1);
                ErrorHandler.CheckItem(resp1);
                Guid uid1 = resp1.Item.UID;

                // user/person level (L2)
                var req2 = new ConfigRequest(localeItemID, null, companyID, personID) { IgnoreCache = true };
                var resp2 = GetConfigValue(req2);
                ErrorHandler.CheckItem(resp2);
                Guid uid2 = resp2.Item.UID;

                if (uid1.Equals(uid0))
                {
                    // [a] or [d]
                    if (locale == string.Empty)
                    {
                        // [a]
                        resp = new BusinessMessageResponse();
                    }
                    else
                    {
                        // [d]
                        string locale0 = (string)resp0.Item.Value;
                        resp = CreateLocaleConfig(locale0, companyID, Guid.Empty);
                        ErrorHandler.Check(resp);
                        resp = CreateLocaleConfig(locale, companyID, personID);
                    }
                }
                else if (uid2.Equals(uid1))
                {
                    // [b] or [e]
                    if (locale == string.Empty)
                    {
                        // [b]
                        resp = new BusinessMessageResponse();
                    }
                    else
                    {
                        // [e]
                        resp = CreateLocaleConfig(locale, companyID, personID);
                    }
                }
                else // level 2 record exists
                {
                    // [c] or [f]
                    if (locale == string.Empty)
                    {
                        // [c]
                        resp = DeleteConfigurationByUID(new IDRequest(uid2));
                    }
                    else
                    {
                        // [f]
                        resp2.Item.Value = locale;
                        resp = UpdateConfigValue(new SaveRequest<ConfigValue>(resp2.Item));
                    }
                }
                ErrorHandler.Check(resp);
                return resp;
            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle(ex);
            }
        }
Esempio n. 10
0
        public BusinessMessageResponse SetCompanyValue(ConfigRequest req)
        {
            //
            // L0 L1 | null			| not null
            // ------+-----------------+-----------------
            // 1  0  | do nothing  [a] | create L1 [c]
            // 1  1  | update L1   [b]*| update L1 [d]
            //
            // *assign L0 value to L1, coz combine=false

            BusinessMessageResponse resp = null;
            try
            {
                Guid id = req.ID;

                // first get root level (L0)
                var req0 = new ConfigRequest(id, null) { IgnoreCache = true };
                var resp0 = GetConfigValue(req0);
                Guid uid0 = resp0.Item.UID; // we need this to compare to uid1

                string newValue = (string)req.AppParameter;
                Guid companyID = req.GetLevels()[0]; // Database column LEVEL1

                // now get L1 (company level)
                var req1 = new ConfigRequest(id, null, companyID) { IgnoreCache = true };
                GetItemResponse<ConfigValue> resp1 = GetConfigValue(req1);
                ErrorHandler.CheckItem(resp1);
                if (resp1.Item.UID.Equals(uid0))
                {
                    // Csae [a] or [c]
                    if (newValue == null)
                    {
                        // Case [a]
                        resp = new BusinessMessageResponse();
                    }
                    else
                    {
                        // Case [c]
                        Configuration cfg = new Configuration
                        {
                            UID = SequentialGuid.NewDbGuid(),
                            ID = id,
                            Combine = false,
                            ValueType = 1,
                            VersionValue = newValue,
                            Notes = req.Notes,
                            Level1 = companyID
                        };
                        resp = SaveConfigurationByUID(new SaveRequest<Configuration>(cfg));
                    }
                }
                else
                {
                    // case [b] or [d]
                    if (newValue == null)
                    {
                        // case [b]
                        resp1.Item.Value = resp0.Item.Value;
                    }
                    else
                    {
                        // case [d]
                        resp1.Item.Value = newValue;
                    }
                    resp = UpdateConfigValue(new SaveRequest<ConfigValue>(resp1.Item));
                }
                ErrorHandler.Check(resp);
                return resp;
            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle(ex);
            }
        }
Esempio n. 11
0
        public BusinessMessageResponse SetCompanyCustomUnits(ConfigRequest req)
        {
            //
            // L0 L1 | null			| not null
            // ------+-----------------+-----------------
            // 1  0  | do nothing  [a] | create L1 [c]
            // 1  1  | update L1   [b]*| update L1 [d]
            //
            // *assign L0 value to L1, coz combine=false

            BusinessMessageResponse resp = null;
            try
            {
                // first get root level
                var req0 = new ConfigRequest(CultureHelper.PreferredMeasurementUnitsID, null) { IgnoreCache = true };
                var resp0 = GetConfigValue(req0);
                ErrorHandler.CheckItem(resp0);
                Guid uid0 = resp0.Item.UID; // we need this to compare to level 1

                string newValue = (string)req.AppParameter;
                Guid companyID = req.GetLevels()[0]; // Database column LEVEL1

                // now get level 1, may not exist
                var req1 = new ConfigRequest(CultureHelper.PreferredMeasurementUnitsID, null, companyID) { IgnoreCache = true };
                GetItemResponse<ConfigValue> resp1 = GetConfigValue(req1);
                ErrorHandler.CheckItem(resp1);
                if (resp1.Item.UID.Equals(uid0))
                {
                    // Case [a] or [c]
                    if (string.IsNullOrEmpty(newValue))
                    {
                        // Case [a]
                        resp = new BusinessMessageResponse();
                    }
                    else
                    {
                        // Case [c]
                        // L1 record not in database, create one
                        Configuration cfg = new Configuration
                        {
                            UID = SequentialGuid.NewDbGuid(),
                            ID = CultureHelper.PreferredMeasurementUnitsID,
                            Combine = true,
                            ValueType = 11,
                            VersionValue = newValue,
                            Notes = req.Notes,
                            Level1 = companyID,
                        };
                        resp = SaveConfigurationByUID(new SaveRequest<Configuration>(cfg));
                    }
                }
                else
                {
                    // Case [b] or [d]
                    string val = newValue ?? string.Empty;
                    resp = UpdateConfigValue(new SaveRequest<ConfigValue>(resp1.Item));
                    // case [b] or [d]
                    if (string.IsNullOrEmpty(newValue))
                    {
                        // case [b]
                        val = (string)resp0.Item.Value;
                    }
                    else
                    {
                        // case [d]
                        val = newValue;
                    }
                    resp1.Item.Value = val;
                    resp = UpdateConfigValue(new SaveRequest<ConfigValue>(resp1.Item));
                }
                ErrorHandler.Check(resp);
                return resp;
            }
            catch (Exception ex)
            {
                return ErrorHandler.Handle(ex);
            }
        }
Esempio n. 12
0
 public BusinessMessageResponse SaveUserSecurityEntity(SaveRequest<SecurityEntity> request)
 {
     try
     {
         BusinessMessageResponse response = null;
         ImardaSecurityBusiness.IImardaSecurity service = ImardaProxyManager.Instance.IImardaSecurityProxy;
         ChannelInvoker.Invoke(delegate(out IClientChannel channel)
         {
             channel = service as IClientChannel;
             response = service.SaveUserSecurityEntity(request);
             ErrorHandler.Check(response);
         });
         var cfgservice = ImardaProxyManager.Instance.IImardaConfigurationProxy;
         ChannelInvoker.Invoke(delegate(out IClientChannel channel)
         {
             channel = cfgservice as IClientChannel;
             SecurityEntity se = request.Item;
             var localeID = new Guid("5e93c6a7-3ee3-4a75-a6f8-b783296afa7d");
             var cfgreq = new ConfigRequest(localeID, se.Locale, se.CompanyID, se.CRMId) { IgnoreCache = true };
             var cfgresp = cfgservice.SetUserLocale(cfgreq);
             ErrorHandler.Check(cfgresp);
         });
         return response;
     }
     catch (Exception ex)
     {
         return ErrorHandler.Handle(ex);
     }
 }
Esempio n. 13
0
 public GetItemResponse<SecurityEntity> GetUserSecurityEntity(IDRequest request)
 {
     try
     {
         GetItemResponse<SecurityEntity> response = null;
         ImardaSecurityBusiness.IImardaSecurity service = ImardaProxyManager.Instance.IImardaSecurityProxy;
         ChannelInvoker.Invoke(delegate(out IClientChannel channel)
         {
             channel = service as IClientChannel;
             response = service.GetSecurityEntityByCrmID(request);
         });
         var cfgservice = ImardaProxyManager.Instance.IImardaConfigurationProxy;
         ChannelInvoker.Invoke(delegate(out IClientChannel channel)
         {
             channel = cfgservice as IClientChannel;
             var localeID = new Guid("5e93c6a7-3ee3-4a75-a6f8-b783296afa7d");
             var cfgreq = new ConfigRequest(localeID, null, request.CompanyID, request.ID) { IgnoreCache = true };
             var cfgresp = cfgservice.GetConfigValue(cfgreq);
             ErrorHandler.Check(cfgresp);
             response.Item.Locale = cfgresp.Item.As<string>();
         });
         return response;
     }
     catch (Exception ex)
     {
         return ErrorHandler.Handle<GetItemResponse<SecurityEntity>>(ex);
     }
 }