Beispiel #1
0
        public bool RegisterListListener(LoginSession session, String server, int list)
        {
            try
            {
                IListServiceClient callback = _callbackCreator();

                lock (_subscribersLock)
                {
                    if (!_subscribers.Exists(client => client.IsCurrentCallback(callback)))
                    {
                        _subscribers.Add(new AsyncListServiceClient(callback));
                    }
                    _subscribers.Find(client => client.IsCurrentCallback(callback)).AddChannel(new Channel(server, list));
                }

                CheckClients(null, null);

                return(true);
            }
            catch (CommunicationException ex)
            {
                ServiceLogger.Error("Error while registering ListListener", ex);
                return(false);
            }
        }
        private IEnumerable <MediaInfo> Execute(Expression <Func <MediaInfo, Boolean> > expression)
        {
            var adcUri = new Uri(
                Config.Instance.ConfigObject.DataServiceConnectionOptions.DataServiceAddress);
            var adcDB = new AdcModelContainer(adcUri);

            var query = adcDB.MediaInfos.Expand(@"ContentTable").Expand(@"SegmentInfos").Where(expression) as DataServiceQuery <MediaInfo>;

            var result = new List <MediaInfo>();

            if (query != null)
            {
                try
                {
                    var response = (QueryOperationResponse <MediaInfo>)query.Execute();
                    while (response != null)
                    {
                        var part = new List <MediaInfo>();
                        part.AddRange(response);
                        result.AddRange(part);
                        var continuation = response.GetContinuation();
                        response = continuation != null?adcDB.Execute(continuation) : null;
                    }
                }
                catch (Exception ex)
                {
                    ServiceLogger.Error(ex.Message, ex);
                    return(result);
                }
            }
            return(result);
        }
        private void StartHTTPCompanionService(string URL)
        {
            //URL = Zeus.Lib.Extensions.ExtensionHelpers.GetAddress(URL);
            WebServiceHTTP.WebServiceBaseAddress = URL;

            string WebServiceHTTPBaseAddress = URL + "Admin/";

            try
            {
                Uri uri = new Uri(WebServiceHTTPBaseAddress);
                oWebServiceHost = new WebServiceHost(oServiceHTTPType, uri);

                var endpoint = CreateEndpoint(oServiceHTTPInterfaceType, WebServiceHTTPBaseAddress);
                oWebServiceHost.AddServiceEndpoint(endpoint);

                //oWebServiceHost.Authorization.ServiceAuthorizationManager = new RestAuthorizationManager();
                oWebServiceHost.Open();
            }
            catch (Exception ex)
            {
                ServiceLogger.Error("Companion service cannot be started, reason: " + ex.Message);
                return;
            }

            ServiceLogger.Info("SERVICE HTML ADMIN STARTED");
            ServiceLogger.Info("Listening on: " + WebServiceHTTPBaseAddress);
        }
        private IEnumerable <ASDB> Execute(Expression <Func <ASDB, Boolean> > expression)
        {
            var asdbUri = ConfigurationManager.AppSettings.Get("AsdbUri");
            var asdbDB  = new ASDBModelContainer(new Uri(asdbUri));

            var query = asdbDB.ASDBs.Where(expression) as DataServiceQuery <ASDB>;

            var result = new List <ASDB>();

            if (query != null)
            {
                try
                {
                    var response = (QueryOperationResponse <ASDB>)query.Execute();
                    while (response != null)
                    {
                        var part = new List <ASDB>();
                        part.AddRange(response);
                        result.AddRange(part);
                        var continuation = response.GetContinuation();
                        response = continuation != null?asdbDB.Execute(continuation) : null;
                    }
                }
                catch (Exception ex)
                {
                    ServiceLogger.Error(ex.Message, ex);
                    return(result);
                }
            }
            return(result);
        }
        /// <summary>
        /// Запускает импорт
        /// </summary>
        /// <returns></returns>
        public int Start(string path)
        {
            using (var reader = new StreamReader(path, Encoding.UTF8, true))
            {
                var serializer = new XmlSerializer(typeof(FLInfoList));
                try
                {
                    var arrayOfInfo = (FLInfoList)serializer.Deserialize(reader);

                    List <SS_FlInfo> list = new List <SS_FlInfo>();
                    ServiceLogger.Info("{info}", "начало мапинга");
                    foreach (var item in arrayOfInfo.FLInfos)
                    {
                        list.Add(CustomMapper(item));
                    }
                    ServiceLogger.Info("{info}", "конец мапинга");
                    using (var db = new dbModel(connection))
                    {
                        db.CommandTimeout = 1200000;
                        using (var tr = db.BeginTransaction())
                        {
                            try
                            {
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo_Dupl перезапись начало");
                                db.AbonentInfoDelete();
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo_Dupl перезапись конец");
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo очищена");

                                ServiceLogger.Info("{info}", "таблица SS_FlInfo запись начало");
                                InsertBulk(list, db);
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo запись окончание");

                                ServiceLogger.Info("{info}", "таблица SS_FlInfo обновление начало");
                                db.AbonentInfoUpdate();
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo обновление конец");

                                tr.Commit();
                                ServiceLogger.Info("{info}", "импорт завершён");

                                return(list.Count);
                            }
                            catch (Exception e)
                            {
                                ServiceLogger.Error("{error}", e.ToString());
                                return(0);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    ServiceLogger.Error("{error}", e.ToString());
                    //string sd = @"�";
                    return(0);
                }
            }
        }
 /// <summary>
 /// Вставляет список записей в таблицу
 /// </summary>
 /// <returns></returns>
 private void InsertBulk(IEnumerable <SS_FlInfo> list, dbModel db)
 {
     try
     {
         db.BulkCopy(list);
     }
     catch (Exception e)
     {
         ServiceLogger.Error("{error}", e.ToString());
     }
 }
Beispiel #7
0
        /// <summary>
        /// Время ожидания запуска интеграции
        /// </summary>
        /// <param name="runTime"></param>
        /// <returns></returns>
        private int MilisecondsToWait(string runTime)
        {
            if (TimeSpan.TryParse(runTime, out TimeSpan _runTime))
            {
                return(MilisecondsToWait(_runTime));
            }
            string errorMessage = "ошибка определения времени выполнения";

            ServiceLogger.Error("{error}", errorMessage);
            throw new Exception(errorMessage);
        }
Beispiel #8
0
        /// <summary>
        /// Returns the error view
        /// </summary>
        /// <param name="ex">The exception</param>
        /// <param name="caller">The caller (optional, auto fill)</param>
        /// <returns>The error message</returns>
        private object ErrorView(Exception ex, [CallerMemberName] string caller = "")
        {
            ServiceLogger.Error(caller, ex);
            var data = new
            {
                BaseData = GetBaseData(),
                ex.Message
            };

            return(View["error.html", data]);
        }
Beispiel #9
0
 /// <summary>
 /// Запуск
 /// </summary>
 /// <param name="args"></param>
 protected override void OnStart(string[] args)
 {
     try
     {
         integrationWorker = new Thread(WannaKill);
         integrationWorker.Start();
     }
     catch (Exception e)
     {
         ServiceLogger.Error("{work}", $"глобальная ошибка {e.ToString()}");
     }
 }
Beispiel #10
0
 /// <summary>
 /// На старт
 /// </summary>
 /// <param name="args"></param>
 protected override void OnStart(string[] args)
 {
     try
     {
         serviceWorker = new Thread(DoBackups);
         serviceWorker.Start();
     }
     catch (Exception e)
     {
         ServiceLogger.Info("{error}", "произошла ошибка");
         ServiceLogger.Error("{error}", e.ToString());
     }
 }
        public WebServiceResponse GetExcutableMethods()
        {
            var result = new WebServiceResponse();

            result.Status  = (int)0;// ErrorCodes.ALL_OK;
            result.Message = "Success";
            try
            {
                result.Items = Tasks.GetExcutableMethods().ToArray <object>();
            }
            catch (Exception ex)
            {
                result.Status  = (int)1;// ErrorCodes.GENERAL_ERROR;
                result.Message = ex.Message;
                ServiceLogger.Error("ExecuteTask error: " + ex.Message);
            }
            return(result);
        }
Beispiel #12
0
 public void UnregisterConnectionStateListener(LoginSession session, String server)
 {
     try
     {
         IListServiceClient callback = _callbackCreator();
         lock (_subscribersLock)
         {
             if (_subscribers.Exists(client => client.IsCurrentCallback(callback)))
             {
                 _subscribers.Find(client => client.IsCurrentCallback(callback)).RemoveServer(server);
             }
             //_subscribers.RemoveAll(client => !client.HasCallbacks());
             RemoveDeadClients();
         }
     }
     catch (CommunicationException ex)
     {
         ServiceLogger.Error("Error while unregistering ConnectionStateListener", ex);
     }
 }
Beispiel #13
0
        /// <summary>
        /// The main entry point of the program
        /// </summary>
        /// <param name="args">The command line arguments</param>
        private static void Main(string[] args)
        {
            try
            {
                if (args.Any(a => a.ContainsIgnoreCase("debug")))
                {
                    var manager = new ServiceManager();
                    manager.Start();

                    Console.WriteLine("Press enter to exit.");
                    Console.ReadLine();

                    manager.Stop();
                }
                else
                {
                    HostFactory.Run(c =>
                    {
                        c.Service <ServiceManager>(s =>
                        {
                            s.ConstructUsing(sf => new ServiceManager());
                            s.WhenStarted(sa => sa.Start());
                            s.WhenStopped(sa => sa.Stop());
                        });

                        c.UseNLog();
                        c.RunAsLocalSystem();
                        c.SetServiceName(Helper.Settings.Service.ServiceName);
                        c.SetDisplayName(Helper.Settings.Service.DisplayName);
                        c.SetDescription(Helper.Settings.Service.Description);
                    });
                }
            }
            catch (Exception ex)
            {
                ServiceLogger.Error(
                    "An error has occured. Please check exception message for more information.",
                    ex);
                Console.ReadLine();
            }
        }
        public WebServiceResponse GetStatus()
        {
            var result = new WebServiceResponse();

            result.Status  = (int)0;// ErrorCodes.ALL_OK;
            result.Message = "Success";
            try
            {
                var Status = ServiceTasks.ServiceStatus;
                // This does not work know types should be set up before service object creation
                //WebServiceKnownTypesProvider.KnownTypes.Add(typeof(WebServiceStatus));
                result.Item = Status;
            }
            catch (Exception ex)
            {
                result.Status  = (int)1;// ErrorCodes.GENERAL_ERROR;
                result.Message = ex.Message;
                ServiceLogger.Error("ExecuteTask error: " + ex.Message);
            }
            return(result);
        }
Beispiel #15
0
 public bool RegisterConnectionStateListener(LoginSession session, String server)
 {
     try
     {
         IListServiceClient callback = _callbackCreator();
         lock (_subscribersLock)
         {
             if (!_subscribers.Exists(client => client.IsCurrentCallback(callback)))
             {
                 _subscribers.Add(new AsyncListServiceClient(callback));
             }
             _subscribers.Find(client => client.IsCurrentCallback(callback)).AddServer(server);
         }
         return(true);
     }
     catch (CommunicationException ex)
     {
         ServiceLogger.Error("Error while registering ConnectionStateListener", ex);
         return(false);
     }
 }
        public WebServiceResponse ExecuteTask(string TaskNames)
        {
            if (!string.IsNullOrEmpty(TaskNames))
            {
                TaskNames = TaskNames.Trim();
            }
            var result = new WebServiceResponse();

            result.Status  = (int)0;// ErrorCodes.ALL_OK;
            result.Message = "Success";
            try
            {
                ServiceTasks.DoTasks(TaskNames);
            }
            catch (Exception ex)
            {
                result.Status  = (int)1;// ErrorCodes.GENERAL_ERROR;
                result.Message = ex.Message;
                ServiceLogger.Error("ExecuteTask error: " + ex.Message);
            }
            return(result);
        }
Beispiel #17
0
        /// <summary>
        /// Создание backup-ов
        /// </summary>
        private void DoBackups()
        {
            ServiceLogger.Info("{thread}", "поехали");
            while (enableService)
            {
                DateTime now = DateTime.Now;

                if (!CheckFirstSaturdayOfMonth(now))
                {
                    DateTime deltaTime = new DateTime(now.AddDays(1).Year,
                                                      now.AddDays(1).Month, now.AddDays(1).Day, 0, 0, 0);
                    Thread.Sleep(deltaTime.Subtract(now));
                    continue;
                }

                int executeWait = MilisecondsToWait(_params.StartTime);
                int hoursWait   = executeWait / 1000 / 60 / 60;
                int minutesWait = (executeWait - (hoursWait * 60 * 60 * 1000)) / 1000 / 60;
                int secWait     = (executeWait - (hoursWait * 60 * 60 * 1000) - (minutesWait * 60 * 1000)) / 1000;
                ServiceLogger.Info("{thread}", $"дата запуска: первая суббота месяца");
                ServiceLogger.Info("{thread}", $"время запуска: {_params.StartTime}");
                ServiceLogger.Info("{thread}", $"импорт будет выполнен через: " +
                                   $"{hoursWait} час. {minutesWait} мин. {secWait} сек.");

                Thread.Sleep(executeWait);

                try
                {
                    Launcher.Start(_params);
                }
                catch (Exception e)
                {
                    ServiceLogger.Error("{error}", e.ToString());
                }
                // спать день
                Thread.Sleep(86400000);
            }
        }
        protected override void OnStart(string[] args)
        {
            try
            {
                //if (!SecureWebConfig.Secured)
                //{
                //    SecureWebConfig.Secure();
                //}
            }
            catch (Exception ex)
            {
                ServiceLogger.Error("Configuration cannot be read, reason: " + ex.Message);
            }


            ServiceTasks.LoadConfig();

            // collect and pass back the list of known types
            WebServiceKnownTypesProvider.KnownTypes.Add(typeof(WebServiceStatus));

            oServiceHost = new ServiceHost(oServiceType);

            try
            {
                if (oServiceHost.BaseAddresses.Count == 0)
                {
                    string ba = DefaultHTTPUrl; //ExtensionHelpers.GetConfigString("WebServiceBaseURL");
                    if (string.IsNullOrEmpty(ba))
                    {
                        if (UseHTTPS)
                        {
                            ba = DefaultHTTPSUrl;
                        }
                        else
                        {
                            ba = DefaultHTTPUrl;
                        }
                    }
                    else
                    {
                        if (ba.Contains("http://"))
                        {
                            UseHTTPS = false;
                        }
                    }

                    var baseAddresses = new Uri[] { new Uri(ba) };
                    oServiceHost = new ServiceHost(oServiceType, baseAddresses);

                    var endpoint = CreateEndpoint(oServiceInterfaceType, ba);
                    oServiceHost.AddServiceEndpoint(endpoint);

                    ServiceMetadataBehavior metadataBehavior = new ServiceMetadataBehavior();
                    //metadataBehavior.HttpGetEnabled = true;
                    oServiceHost.Description.Behaviors.Add(metadataBehavior);
                }

                oServiceHost.Authorization.ServiceAuthorizationManager = new RestAuthorizationManager();
                oServiceHost.Open();
            }
            catch (Exception ex)
            {
                ServiceLogger.Error("Service cannot be started, reason: " + ex.Message);
                return;
            }

            //Tasks.StartTimer();
            StartHTTPCompanionService(oServiceHost.BaseAddresses[0].ToString());

            ServiceLogger.Info("SERVICE STARTED");
            foreach (var uri in oServiceHost.BaseAddresses)
            {
                ServiceLogger.Info("Listening on: " + uri);
            }
        }