public bool TryCreateTemplate(string name)
        {
            if (!TryCreateHostGroup("Metrics.NET"))
            {
                return(false);
            }

            using (var context = _contextCreator())
            {
                try
                {
                    var service  = new ZabbixApi.Services.TemplateService(context);
                    var template = service.GetByPropety("name", name);
                    if (template == null)
                    {
                        template        = new Template();
                        template.host   = name;
                        template.name   = name;
                        template.groups = new List <HostGroup> {
                            _HostGroupMetricsCache
                        };
                        template.hosts = new List <Host> {
                            _HostCache
                        };
                        template.Id = service.Create(template);
                    }
                    else
                    {
                        if (template.hosts.FirstOrDefault(h => h.Id == _HostCache.Id) == null)
                        {
                            template.hosts.Add(_HostCache);
                            if (service.Update(template) == null)
                            {
                                return(false);
                            }
                        }
                    }
                    if (template.Id != null)
                    {
                        TryCreateApplication(name, template.Id);
                        _TemplateCache = template;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                catch (Exception ex)
                {
                    MetricsErrorHandler.Handle(ex, string.Format("Error on configuring zabbix template, zabbix api {0}", _url));
                    return(false);
                }
            }
        }
        public bool TryCreateTemplate(string name)
        {
            if (!TryCreateHostGroup("Metrics.NET")) return false;

            using (var context = _contextCreator())
            {
                try
                {
                    var service = new ZabbixApi.Services.TemplateService(context);
                    var template = service.GetByPropety("name", name);
                    if (template == null)
                    {
                        template = new Template();
                        template.host = name;
                        template.name = name;
                        template.groups = new List<HostGroup> { _HostGroupMetricsCache };
                        template.hosts = new List<Host> { _HostCache };
                        template.Id = service.Create(template);
                    }
                    else
                    {
                        if (template.hosts.FirstOrDefault(h => h.Id == _HostCache.Id) == null)
                        {
                            template.hosts.Add(_HostCache);
                            if (service.Update(template) == null) return false;
                        }
                    }
                    if (template.Id != null)
                    {
                        TryCreateApplication(name, template.Id);
                        _TemplateCache = template;
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                catch (Exception ex)
                {
                    MetricsErrorHandler.Handle(ex, string.Format("Error on configuring zabbix template, zabbix api {0}", _url));
                    return false;
                }
            }
        }