BikeInCity.Web.Tasks.BikeTask.Execute C# (CSharp) Method

Execute() public method

public Execute ( IJobExecutionContext context ) : void
context IJobExecutionContext
return void
        public void Execute(IJobExecutionContext context)
        {
            string instName = context.JobDetail.Key.Name;
            string instGroup = context.JobDetail.Key.Group;

            if (!Global.CityStatuses.ContainsKey(instName))
            {
                Global.CityStatuses.Add(instName, "Not yet executed");
            }
            try
            {
                var dataMap = context.JobDetail.JobDataMap;
                var session = SessionFactory.OpenSession();
                //use one session per the list of cities

                IBikeCity bikeCity = Global.GetBikeCity(instName);
                List<City> cities = bikeCity.ProcessCity();

                foreach (var city in cities)
                {
                    UpdateCityStations(city, session);
                    session.Close();
                }

                Global.CityStatuses[instName] = "OK";

            }
            catch (Exception ex)
            {
                _log.Error("Error while downloading the cities in the task: " + instName,ex);
                Global.CityStatuses[instName] = ex.Message;
            }
        }