Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Вырать профиль (1 admin / 2 user / 3 cop /4 student / 5 company)");
            string menu = Console.ReadLine();

            switch (menu)
            {
            default:
                break;

            case "1":
            {
                #region Админ
                Admin.Administrator admin1 = new Administrator();
                Console.WriteLine("1. Активировать аккаунт\n" +
                                  "2. Создать учетку\n3. Показать " +
                                  "критерии приемлимости компании для процесса найма\n" +
                                  "4. Принять или отклонить посещение компании");
                string adminchoice = Console.ReadLine();
                switch (adminchoice)
                {
                default:
                    break;

                case "1": admin1.activateAccount(); break;

                case "2": admin1.createRole(); break;

                case "3": admin1.showCriteria(); break;

                case "4": admin1.acceptAttendance(); break;
                }
                #endregion
            }
            break;

            case "2":
            {
            }
            break;

            case "3":
            {
                cop.COPcl cop1 = new cop.COPcl();
                Console.WriteLine("1. посмотреть уведомление о посещении компании\n" +
                                  "2. Отправить уведомление о посещении студенту\n" +
                                  "3. Выбор студента для компании" +
                                  "4. Отправка уведомления студенту");
                string copChoice = Console.ReadLine();
                switch (copChoice)
                {
                default:
                    break;

                case "1": { } break;

                case "2": { cop1.sendAttendance(); } break;

                case "3": { } break;

                case "4": { cop1.sendNotification(); } break;
                }
            }
            break;

            case "4": { } break;

            case "5":    //только для компании создается объект в мэйне т.к. только она может сама зарегаться
            {
                Company.Company company1 = new Company.Company();
                company1.menu();        //делегаты интерфейс и наследование тут
            } break;
            }

            Console.ReadKey();
        }
Esempio n. 2
0
 public abstract Task ProcessCompany(Company.Company company, IServiceProvider sp);
Esempio n. 3
0
 public async Task Send(Company.Company f, Company.Company to, IEdiMessage message)
 {
 }
Esempio n. 4
0
        public override async Task ProcessCompany(Company.Company company, IServiceProvider sp)
        {
            var driverRepo  = sp.GetService <BaseRepository <Driver.Driver> >();
            var vehicleRepo = sp.GetService <BaseRepository <Vehicle.Vehicle> >();
            var userRepo    = sp.GetService <BaseRepository <ApplicationUser> >();
            var safetyRepo  = sp.GetService <BaseRepository <DriverSafety.DriverSafety> >();
            var config      = sp.GetService <Config <SamsaraConfig> >();
            var mediator    = sp.GetService <IMediator>();
            var samsaraApi  = new SamsaraApi(config.Cached.ApiKey, config.Cached.GroupId);

            if (config.Cached.Enabled == false || config.Cached.ApiKey == null || config.Cached.GroupId == null)
            {
                return;
            }

            if (config.Cached.SyncDrivers)
            {
                var vehicles = samsaraApi.GetFleetList();
                foreach (var item in vehicles)
                {
                    var v = vehicleRepo.Get().FirstOrDefault(p => p.ExternalIds.SamsaraId == item.id) ??
                            new Vehicle.Vehicle();

                    v.Vin            = item.vin;
                    v.Name           = item.name;
                    v.EngineHours    = item.engineHours;
                    v.OdometerMeters = item.odometerMeters;
                    v.Note           = item.note;
                    v.CompanyId      = company.Id;
                    if (v.ExternalIds == null)
                    {
                        v.ExternalIds = new BlockArray.ServiceModel.ExternalIds();
                    }

                    v.ExternalIds.SamsaraId = item.id;

                    await vehicleRepo.Save(v);
                }

                var locations = samsaraApi.GetFleetLocations();
                foreach (var item in locations)
                {
                    var v = vehicleRepo.Get().FirstOrDefault(p => p.Vin == item.vin);
                    if (v == null)
                    {
                        continue;
                    }
                    v.CurrentLocation = new TrackingLocationServiceModel()
                    {
                        Lat       = item.latitude,
                        Lng       = item.longitude,
                        Timestamp = new DateTime(1970, 1, 1).AddMilliseconds(item.time)
                    };
                    await vehicleRepo.Save(v);
                }

                var drivers = samsaraApi.GetFleetDrivers();
                foreach (var item in drivers)
                {
                    var driver = driverRepo.Get().FirstOrDefault(p => p.ExternalIds.SamsaraId == item.id) ??
                                 new Driver.Driver();
                    var vehicle = vehicleRepo.Get()
                                  .FirstOrDefault(p => p.ExternalIds.SamsaraId == item.currentVehicleId);

                    driver.CurrentVehicleId = vehicle?.Id;
                    if (vehicle?.CurrentLocation?.Lat != 0)
                    {
                        driver.CurrentLocation = vehicle?.CurrentLocation;
                    }

                    if (!string.IsNullOrEmpty(config.Cached.EmailDomain))
                    {
                        driver.Email = $"{item.username}@{config.Cached.EmailDomain}";
                    }

                    driver.LicenseNumber = item.licenseNumber;
                    driver.LicenseState  = item.licenseState;
                    driver.Notes         = item.notes;
                    driver.Name          = item.name;
                    driver.Phone         = item.phone;
                    driver.CompanyId     = company.Id;
                    if (string.IsNullOrEmpty(driver.InvoiceItemCategoryId))
                    {
                        driver.InvoiceItemCategoryId = config.Cached.InvoiceItemCategoryId;
                        driver.PayrollRate           = config.Cached.PayrollRate;
                        driver.PayrollType           = config.Cached.PayrollType;
                    }
                    if (driver.ExternalIds == null)
                    {
                        driver.ExternalIds = new BlockArray.ServiceModel.ExternalIds();
                    }

                    driver.ExternalIds.SamsaraId = item.id;

                    ApplicationUser usr = null;
                    if (userRepo.Get().FirstOrDefault(p => p.NormalizedEmail == driver.Email.ToUpper()) != null)
                    {
                        usr = userRepo.Get().FirstOrDefault(p => p.NormalizedEmail == driver.Email.ToUpper());
                    }
                    else if (!string.IsNullOrEmpty(driver.LicenseNumber))
                    {
                        usr = _companyAccountService.CreateCompanyUser(driver.Email, driver.LicenseNumber.ToLower(),
                                                                       company.Id,
                                                                       new[] { "Driver" }, true).Result;
                    }

                    if (usr != null)
                    {
                        driver.UserId = usr.Id;
                    }
                    await driverRepo.Save(driver);


                    var safetyRecord = samsaraApi.GetSafetyRecord(item.id);
                    if (safetyRecord != null)
                    {
                        var record = safetyRepo.Get().FirstOrDefault(p => p.DriverId == driver.Id) ??
                                     new DriverSafety.DriverSafety();
                        record.CrashCount                = safetyRecord.crashCount;
                        record.SafetyScore               = safetyRecord.safetyScore;
                        record.HarshAccelCount           = safetyRecord.harshAccelCount;
                        record.HarshBrakingCount         = safetyRecord.harshBrakingCount;
                        record.HarshTurningCount         = safetyRecord.harshTurningCount;
                        record.TotalHarshEventCount      = safetyRecord.totalHarshEventCount;
                        record.SafetyScoreRank           = Convert.ToInt32(safetyRecord.safetyScoreRank);
                        record.TotalDistanceDrivenMeters = Convert.ToInt64(safetyRecord.totalDistanceDrivenMeters);
                        record.TotalTimeDrivenMs         = Convert.ToInt64(safetyRecord.totalTimeDrivenMs);
                        record.TimeOverSpeedLimitMs      = Convert.ToInt64(safetyRecord.timeOverSpeedLimitMs);
                        record.DriverId = driver.Id;
                        await safetyRepo.Save(record);
                    }
                }
            }
        }