private async void OnGUI()
        {
            if (!_isWalked)
            {
                _scanStartVector = EditorGUILayout.Vector3Field("Scan Start Vector", _scanStartVector);
                _scanX           = EditorGUILayout.IntField("scan x", _scanX);
                _scanY           = EditorGUILayout.IntField("scan y", _scanY);
                var click = GUILayout.Button("Bake");

                if (!click)
                {
                    return;
                }

                _isWalked = true;
                Work      = CurrentWork.Scan;
                SceneName = SceneManager.GetActiveScene().name;
                _mapImageMaker.Setting(_scanStartVector, _scanX, _scanY);
                await Task.Run(_mapImageMaker.ScanMap);

                while (Work != CurrentWork.MakeHeader)
                {
                    await Task.Delay(1000);
                }
                Debug.Log("MakeHeader");
                await Task.Run(_mapImageMaker.PrintBmpFile);

                Work = CurrentWork.Ready;
            }
            else
            {
                switch (Work)
                {
                case CurrentWork.Ready:
                    _isWalked = false;
                    break;

                case CurrentWork.Scan:
                    GUILayout.Label("[ON RAY CAST]");
                    GUILayout.Label($"[CURRENT WORK POINT] X:{_curX}/{_scanX}  Y:{_curY}/{_scanY}");
                    break;

                case CurrentWork.MakeHeader:
                    GUILayout.Label("[Make Header]");
                    break;

                case CurrentWork.PrintPixel:
                    GUILayout.Label("[Print pixel to bmp file...]");
                    GUILayout.Label($"[CURRENT WORK POINT] X:{_curX}/{_scanX}  Y:{_curY}/{_scanY}");
                    break;

                case CurrentWork.WriteFile:
                    GUILayout.Label("[Write bmp file...]");
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }
Exemple #2
0
        public void TrimAndUppercaseFirst()
        {
            Email    = Email?.TrimAndUppercaseFirst();
            Skype    = Skype?.TrimAndUppercaseFirst();
            LinkedIn = LinkedIn?.TrimAndUppercaseFirst();

            DesirablePosition    = DesirablePosition.TrimAndUppercaseFirst();
            ExperienceAtITLab    = ExperienceAtITLab.TrimAndUppercaseFirst();
            ProfessionalPurposes = ProfessionalPurposes.TrimAndUppercaseFirst();

            CurrentPosition    = CurrentPosition.TrimAndUppercaseFirst();
            CurrentWork        = CurrentWork.TrimAndUppercaseFirst();
            EmploymentDuration = EmploymentDuration.TrimAndUppercaseFirst();
        }
Exemple #3
0
        private bool CheckMe(decimal?workerId)
        {
            if (!workerId.HasValue)
            {
                ShowMessage(string.Format("К пользователю '{0}' не привязан работник. Невозможно создать выполнение работы", WMSEnvironment.Instance.AuthenticatedUser.GetSignature()));
                return(false);
            }

            if (!OpenCloseInArgumentArgument.Get(_context))
            {
                return(true);
            }

            var workerFilter = string.Format("{0} = {1} and {2} = {3} and {4} is null"
                                             , Working.WORKERID_RPropertyName
                                             , workerId.Value
                                             , Working.WORKID_RPropertyName
                                             , CurrentWork.GetKey()
                                             , Working.WORKINGTILLPropertyName);

            var warehouseCode = WarehouseCode.Get(_context);
            var filter        = GetWorkersFilter(false); // в данном случае неважно, есть ли working

            filter += (!string.IsNullOrEmpty(filter) ? " and " : string.Empty) +
                      string.Format("(workerid = {0})", workerId);
            Worker[] items;
            using (var mgr = IoC.Instance.Resolve <IBaseManager <Worker> >())
                items = mgr.GetFiltered(filter, GetModeEnum.Partial).ToArray();
            if (items.Length == 0)
            {
                ShowMessage(
                    string.Format(
                        "Сотрудник (код '{0}') не существует или не привязан к складу (код '{1}') на даты работ",
                        workerId, warehouseCode));
                return(false);
            }

            using (var mgr = IoC.Instance.Resolve <IBaseManager <Working> >())
            {
                var workingItems = mgr.GetFiltered(workerFilter, GetModeEnum.Partial).ToArray();
                if (workingItems.Length > 0)
                {
                    var action = ShowMessage(string.Format("Сотрудник '{0}' уже выполняет работу (код '{1}'). Создать новую детализацию?", items.FirstOrDefault().WorkerFIO, CurrentWork.GetKey()), "Внимание!", MessageBoxButton.YesNo, MessageBoxImage.Warning);
                    return(action == MessageBoxResult.Yes);
                }
            }

            return(true);
        }
 protected override void UpdateCore(float elapseSeconds, float realElapseSeconds)
 {
     if (CurrentWork.WorkStatus == WorkStatus.Running)
     {
         CurrentWork.Update(elapseSeconds, realElapseSeconds);
     }
     if (CurrentWork.WorkStatus == WorkStatus.Complete)
     {
         if (CurrentWorkIndex + 1 < Works.Count)
         {
             CurrentWorkIndex++;
             CurrentWork.Start();
         }
     }
 }
Exemple #5
0
        private bool CloseMyWorkings()
        {
            var workerId = WMSEnvironment.Instance.WorkerId;

            if (!CheckMe(workerId))
            {
                return(false);
            }

            var workerFilter = string.Format("{0} = {1} and {2} = {3} and {4} is null"
                                             , Working.WORKERID_RPropertyName
                                             , workerId
                                             , Working.WORKID_RPropertyName
                                             , CurrentWork.GetKey()
                                             , Working.WORKINGTILLPropertyName);

            try
            {
                using (var mgr = IoC.Instance.Resolve <IBaseManager <Working> >())
                {
                    var workings = mgr.GetFiltered(workerFilter, GetModeEnum.Partial).ToArray();

                    foreach (var working in workings)
                    {
                        working.WORKINGTILL = GetCorrectDate();
                    }
                    mgr.Update(workings);
                }
                return(true);
            }
            catch (Exception ex)
            {
                var message = ExceptionHelper.GetErrorMessage(ex);
                _log.Warn(message, ex);
                ShowMessage(message, "Ошибка при добавлении выполнения работ");

                return(false);
            }
        }
Exemple #6
0
        private bool AddMe()
        {
            var workerId = WMSEnvironment.Instance.WorkerId;

            try
            {
                if (!ValidateWorkingByWorkerId(workerId))
                {
                    return(false);
                }

                if (!CheckMe(workerId))
                {
                    return(false);
                }

                var w = new Working
                {
                    WORKERID_R  = workerId,
                    WORKID_R    = CurrentWork.GetKey <decimal>(),
                    WORKINGFROM = GetCorrectDate(),
                    TruckCode   = WMSEnvironment.Instance.TruckCode,
                    WORKINGADDL = false
                };

                using (var mgr = IoC.Instance.Resolve <IBaseManager <Working> >())
                    mgr.Insert(ref w);
            }
            catch (Exception ex)
            {
                var message = ExceptionHelper.GetErrorMessage(ex);
                _log.Warn(message, ex);

                ShowMessage(message, "Ошибка при добавлении сотрудника");
                return(false);
            }
            return(true);
        }
Exemple #7
0
 private string GetWorkersFilter(bool freeOnly)
 {
     return(RclShowWorkManageActivity.GetWorkersFilter(CurrentWork.GetKey <decimal?>(), WarehouseCode.Get(_context), freeOnly));
 }
 protected override void StartCore()
 {
     base.StartCore();
     CurrentWork.Start();
 }