Ejemplo n.º 1
0
        public void CreateProfile(Profile profile)
        {
            var jobD = new JobDirectory
            {
                Date        = DateTime.UtcNow,
                Description = profile.JobDirectory.Description,
                MinSalary   = profile.JobDirectory.MinSalary,
                MaxSalary   = profile.JobDirectory.MaxSalary,
                State       = "Создано"
            };

            _db.JobDirectories.Add(jobD);
            _db.SaveChanges();
            var currentUser = HttpContext.Current.User.Identity.Name;
            var user        = _db.AspNetUsers.FirstOrDefault(x => x.UserName == currentUser);

            if (user == null)
            {
                throw new Exception("Пользователь не найден");
            }
            var profileEntity = new Profile
            {
                Date           = DateTime.Now,
                PersonId       = user.People.FirstOrDefault(x => x.UserId == user.Id).PersonId,
                State          = "Заявление создано",
                SpecialityId   = profile.SpecialityId,
                JobDirectoryId = jobD.JobDirectoryId
            };

            _db.Profiles.Add(profileEntity);
            _db.SaveChanges();
        }
Ejemplo n.º 2
0
        public void CreateApplication(Application app)
        {
            logger.Debug("Создание Job Directory");
            JobDirectory jobDirectory = new JobDirectory
            {
                Date        = DateTime.UtcNow,
                MaxSalary   = app.JobDirectory.MaxSalary,
                MinSalary   = app.JobDirectory.MinSalary,
                State       = AppState.Draft,
                Description = app.JobDirectory.Description
            };

            logger.Debug("Сохранение Job Directory");
            _db.JobDirectories.Add(jobDirectory);
            _db.SaveChanges();
            logger.Debug("Создание компании");
            Company company = new Company
            {
                Name            = app.Company.Name,
                City            = app.Company.City,
                Country         = app.Company.Country,
                HouseNumber     = app.Company.HouseNumber,
                Street          = app.Company.Street,
                ApartmentNumber = app.Company.ApartmentNumber
            };

            _db.Companies.Add(company);
            _db.SaveChanges();
            logger.Debug("Сохранение информации о компании");
            logger.Debug("Создание заявления");
            Application appEntity = new Application
            {
                Date           = DateTime.UtcNow,
                JobDirectoryId = jobDirectory.JobDirectoryId,
                SpecialityId   = app.SpecialityId,
                Duties         = app.Duties,
                Requirements   = app.Requirements,
                State          = AppState.Draft,
                CompanyId      = company.CompanyId
            };

            logger.Debug("Создание заявления");
            _db.Applications.Add(appEntity);
            _db.SaveChanges();
        }
Ejemplo n.º 3
0
        public void CleanOldJobs(string key)
        {
            if (key != ScheduleConfiguration.TaskKey)
            {
                throw new HttpResponseException(HttpStatusCode.Forbidden);
            }

            TimeSpan oldJobExpiryInterval = TimeSpan.FromSeconds(TranscodingConfiguration.JobExpiryIntervalSeconds);

            foreach (DirectoryInfo jobDirectory in JobDirectory.EnumerateDirectories("*", SearchOption.TopDirectoryOnly))
            {
                if (DateTime.UtcNow - jobDirectory.CreationTimeUtc > oldJobExpiryInterval)
                {
                    try
                    {
                        jobDirectory.Delete(true);
                    }
                    catch
                    {
                    }
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Erzeugt eine neue Verwaltungsinstanz und lädt die aktuellen Auftragsliste.
        /// </summary>
        /// <param name="rootDirectory">Meldet das Verzeichnis, unterhalb dessen alle
        /// Aufträge und Protokolle angelegt werden.</param>
        /// <param name="server">Die VCR.NET Instanz, der diese Verwaltung zugeordnet ist.</param>
        internal JobManager(DirectoryInfo rootDirectory, VCRServer server)
        {
            // Remember
            RootDirectory = rootDirectory;
            Server        = server;

            // Create root directory
            RootDirectory.Create();

            // Create working directories
            CollectorDirectory.Create();
            ArchiveDirectory.Create();
            JobDirectory.Create();
            LogDirectory.Create();

            // Load all jobs
            foreach (var job in VCRJob.Load(JobDirectory))
            {
                if (job.UniqueID.HasValue)
                {
                    m_Jobs[job.UniqueID.Value] = job;
                }
            }
        }