예제 #1
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     if (ValidateForm())
     {
         using (var uow = UnitOfWorkFactory.CreateUnitOfWork()) {
             TruckEntity existingObj = null;
             if (truckObj == null)
             {
                 existingObj = new TruckEntity();
             }
             else
             {
                 existingObj = uow.TruckRepository.GetById(truckObj.Id);
             }
             existingObj.Name         = tbTruckID.Text.Trim();
             existingObj.LoadPrefix   = tbLoadPrefix.Text.Trim();
             existingObj.TareWeight   = decimal.Parse(tbTareWeight.Text);
             existingObj.RFIDTagId    = tbRFIDTag.Text.Trim();
             existingObj.LicensePlate = tbLicensePlate.Text.Trim();
             existingObj.IsSemi       = cbxIsSemi.Checked;
             existingObj.OwnerPhone   = tbPhone.Text.Trim();
             existingObj.OwnerName    = tbOwner.Text.Trim();
             uow.TruckRepository.Save(existingObj);
             uow.SaveChanges();
             this.DialogResult = DialogResult.OK;
             this.Close();
         }
     }
 }
예제 #2
0
        private void gridViewTrucks_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            lblTruckInstructions.Text = "Check each truck that should receive a copy of this list.";

            if (dataObj != null)
            {
                foreach (DataGridViewRow row in gridViewTrucks.Rows)
                {
                    TruckEntity truck = (TruckEntity)row.DataBoundItem;
                    if (dataObj.AssignedTrucks.Any(t => t.Id == truck.Id))
                    {
                        row.Cells[0].Value = true;
                    }

                    if (downloadedByTrucks.Contains(truck.Id))
                    {
                        DataGridViewCell         cell    = row.Cells[0];
                        DataGridViewCheckBoxCell chkCell = cell as DataGridViewCheckBoxCell;
                        chkCell.Value           = true;
                        chkCell.FlatStyle       = FlatStyle.Flat;
                        chkCell.Style.ForeColor = Color.DarkGray;
                        cell.ReadOnly           = true;
                    }
                }
            }

            gridViewTrucks.Visible = true;
            pnlTruckStep.Enabled   = true;
        }
예제 #3
0
        private void btnDeleteSelected_Click(object sender, EventArgs e)
        {
            List <TruckEntity> itemsToDelete = new List <TruckEntity>();

            foreach (DataGridViewRow row in dataGridTrucks.Rows)
            {
                TruckEntity doc = (TruckEntity)row.DataBoundItem;
                if (Convert.ToBoolean(row.Cells[0].Value))
                {
                    itemsToDelete.Add(doc);
                }
            }

            if (itemsToDelete.Count() > 0)
            {
                using (var uow = UnitOfWorkFactory.CreateUnitOfWork())
                {
                    BusyMessage.Show("Checking fields for assigned modules...", this.FindForm());
                    var undeletableFieldIds = uow.TruckRepository.GetUndeletableIds(itemsToDelete);
                    int undeletableCount    = 0;
                    BusyMessage.Close();
                    foreach (DataGridViewRow row in dataGridTrucks.Rows)
                    {
                        var doc = (TruckEntity)row.DataBoundItem;
                        if (Convert.ToBoolean(row.Cells[0].Value))
                        {
                            if (undeletableFieldIds.Contains(doc.Id))
                            {
                                undeletableCount++;
                            }
                        }
                    }

                    if (undeletableCount > 0)
                    {
                        if (MessageBox.Show(string.Format("{0} trucks(s) cannot be deleted because they are linked to one or more pickup lists. Would you like to continue and delete trucks that are not linked?", undeletableCount), "Info", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            return;
                        }
                        itemsToDelete.RemoveAll(item => undeletableFieldIds.Contains(item.Id));
                    }

                    if (itemsToDelete.Count() > 0 && MessageBox.Show("Are you sure you want to delete the " + itemsToDelete.Count.ToString() + " selected truck(s)?", "Delete?", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        BusyMessage.Show("Deleting...", this.FindForm());
                        uow.TruckRepository.BulkDelete(itemsToDelete);
                        uow.SaveChanges();

                        BusyMessage.Close();
                        refresh();
                    }
                }
            }
            else
            {
                MessageBox.Show("No records were selected to delete.");
            }
        }
예제 #4
0
    void OnTriggerEnter(Collider other)
    {
        if (other.tag != "Truck")
        {
            return;
        }
        TruckEntity te = other.GetComponent <TruckEntity>();

        te.ChangeDirection(RoadEntity.ReverseDirection(te.direction), Turn.Reverse);
    }
        private void handleTagsReported(List <TagItem> tagsReported)
        {
            try
            {
                TagItem     truckTag      = null;
                TruckEntity selectedTruck = null;

                lock (_trucks)
                {
                    /*foreach (var tag in tagsReported)
                     * {
                     *  Logging.Logger.Log("INFO", "EPC: " + tag.Epc + " SN: " + tag.SerialNumber + " ANTENNA PORT: " + tag.AntennaePort.ToString() + " FIRST SEEN LOCAL TIME: " + tag.Firstseen.ToLocalTime().ToString() + " PEAK RSSI: " + tag.PeakRSSI.ToString() + " PHASE ANGLE: " + tag.PhaseAngle.ToString());
                     * }*/

                    var truckTagIds = _trucks.Select(t => t.RFIDTagId).ToArray();
                    truckTag = tagsReported.FirstOrDefault(t => truckTagIds.Contains(t.SerialNumber) || truckTagIds.Contains(t.Epc));

                    if (truckTag != null)
                    {
                        using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
                        {
                            selectedTruck = dp.TruckRepository.FindSingle(t => t.RFIDTagId == truckTag.SerialNumber || t.RFIDTagId == truckTag.Epc);
                            var lastLoad = dp.LoadScanRepository.LastLoad();
                            if (lastLoad != null && lastLoad.TruckID == selectedTruck.Name && lastLoad.Created.AddMinutes(15) > DateTime.UtcNow)
                            {
                                selectedTruck = null;
                                Logging.Logger.Log("INFO", "Truck Tag ignored: " + truckTag.SerialNumber);
                                TagDataProvider.ClearBuffer();
                            }
                        }
                    }

                    if (selectedTruck != null)
                    {
                        Logging.Logger.Log("INFO", "Truck Tag for truck: " + selectedTruck.Name + " scanned.  Starting weigh in.");
                        //check to see if this truck
                        var vm = new WeighInPageViewModel(NavService);
                        //TagDataProvider.ClearBuffer();
                        NavService.ShowPage(PageType.WEIGHT_IN_PAGE, false, (BasePageViewModel)vm);
                        vm.Initialize(selectedTruck);
                    }
                    else
                    {
                        //TagDataProvider.ClearBuffer();
                    }
                }
            }
            catch (Exception exc)
            {
                Logging.Logger.Log(exc);
                Logging.Logger.WriteBuffer();
            }
        }
예제 #6
0
        private TruckEntity GetTruckFromContext(TruckEntity t)
        {
            var existingEntity = _context.Truck.Local.SingleOrDefault(x => x.Id == t.Id);

            if (existingEntity != null)
            {
                return(existingEntity);
            }
            else
            {
                _context.Truck.Attach(t);
                _context.Entry <TruckEntity>(t).State = EntityState.Modified;
                return(t);
            }
        }
예제 #7
0
 public DialogResult ShowEdit(TruckEntity doc)
 {
     clearErrors();
     tbTruckID.Text      = doc.Name;
     tbLoadPrefix.Text   = doc.LoadPrefix;
     tbTareWeight.Text   = doc.TareWeight.ToString();
     cbxIsSemi.Checked   = doc.IsSemi;
     tbRFIDTag.Text      = doc.RFIDTagId;
     tbLicensePlate.Text = doc.LicensePlate;
     tbOwner.Text        = doc.OwnerName;
     tbPhone.Text        = doc.OwnerPhone;
     truckObj            = doc;
     this.Text           = "Update Truck";
     return(this.ShowDialog());
 }
예제 #8
0
        private void btnEditSelected_Click(object sender, EventArgs e)
        {
            AddEditTruck dialog = new AddEditTruck();

            DataGridViewRow row = null;

            if (dataGridTrucks.SelectedRows.Count > 0)
            {
                row = dataGridTrucks.SelectedRows[0];
                TruckEntity doc = (TruckEntity)row.DataBoundItem;
                if (dialog.ShowEdit(doc) != DialogResult.Cancel)
                {
                    refresh();
                }
            }
            else
            {
                MessageBox.Show("Please select a row to edit.");
            }
        }
        public void Initialize(TruckEntity selectedTruck)
        {
            Logging.Logger.Log("INFO", "Entering Weighin Initialize");
            //lock (_dataLocker)
            //{
            _activeTruck = selectedTruck;
            using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
            {
                isUnattendedMode = bool.Parse(dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.UNATTENDED_MODE, "FALSE"));

                GinName         = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.GIN_NAME, "");
                _allTrucks      = dp.TruckRepository.GetAll().ToList();
                WelcomeMessage  = selectedTruck.Name + " PULLING ONTO SCALE";
                IsSplitWeight   = _activeTruck.IsSemi;
                IsSplitCanceled = !_activeTruck.IsSemi;
                _yellowLightOn  = false;
                zeroWeightCount = 0;
                if (TagDataProvider.TagsInBuffer() >= 1)
                {
                    TagDataProvider.SetGPOState(1, true);
                    _yellowLightOn = true;
                    TagDataProvider.SetGPOState(2, false);
                    TagDataProvider.SetGPOState(3, false);
                }

                timer           = new System.Timers.Timer();
                timer.Interval  = int.Parse(dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.WEIGH_IN_TIMEOUT, "30")) * 1000;
                timer.AutoReset = false;
                timer.Elapsed  += Timer_Elapsed;
                timer.Start();

                autoSaveTimer           = new System.Timers.Timer();
                autoSaveTimer.Interval  = int.Parse(dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.WEIGHT_AUTO_SAVE_TIMEOUT, "10")) * 60 * 1000;
                autoSaveTimer.AutoReset = false;
                autoSaveTimer.Elapsed  += AutoSaveTimer_Elapsed;;
                autoSaveTimer.Start();
            }

            _initialized = true;
            //}
        }
        public async Task <JsonResult> SaveNewTruckNumber(int assignmentItemId, string newTruckNumber, string newIdCardNumberOfDriver, string newIdCardNumberOfAssistant)
        {
            //var truckEntity = new TruckEntity();
            var truckEntity = new TruckEntity
            {
                AssignmentItemId        = assignmentItemId,
                TruckNumer              = newTruckNumber,
                IdCardNumberOfDriver    = newIdCardNumberOfDriver,
                IdCardNumberOfAssistant = newIdCardNumberOfAssistant,
                Status = 1
            };
            //truckEntity.AssignmentItemId = assignmentItemId;
            //truckEntity.TruckNumer = newTruckNumber;
            //truckEntity.Status = 1;
            bool isSavedSuccessfully;

            try
            {
                _context.Add(truckEntity);
                int count = await _context.SaveChangesAsync();

                if (count == 1)
                {
                    isSavedSuccessfully = true;
                }
                else
                {
                    isSavedSuccessfully = false;
                }
            }
            catch (Exception)
            {
                isSavedSuccessfully = false;
            }

            return(Json(isSavedSuccessfully));
        }
        public async Task <IActionResult> GateTruckIndex([FromBody] DTParameters dtParameters)
        {
            var searchBy                = dtParameters.Search?.Value;
            var orderCriteria           = string.Empty;
            var orderAscendingDirection = true;

            if (dtParameters.Order != null)
            {
                // in this example we just default sort on the 1st column
                try
                {
                    orderCriteria           = dtParameters.Columns[dtParameters.Order[0].Column].Data;
                    orderAscendingDirection = dtParameters.Order[0].Dir.ToString().ToLower() == "asc";
                }
                catch (Exception)
                {
                    orderCriteria           = "Id";
                    orderAscendingDirection = false;
                }
                //orderAscendingDirection = dtParameters.Order[0].Dir.ToString().ToLower() == "asc";
                // orderCriteria = "Id";
            }
            else
            {
                // if we have an empty search then just order the results by Id ascending
                orderCriteria           = "Id";
                orderAscendingDirection = false;
            }

            var user = (await _userManager.FindByNameAsync(HttpContext.User.Identity.Name)); //same thing

            TimeSpan time      = DateTime.Now.TimeOfDay;
            int      hour      = time.Hours;
            int      mins      = time.Minutes;
            int      totalTime = (hour * 100) + mins;

            var result = await _context.TruckEntities
                         .Include(a => a.AssignmentItem)
                         .Include(a => a.AssignmentItem.Assignment)
                         .Include(a => a.AssignmentItem.CnFProfile)
                         .Include(a => a.AssignmentItem.Yard)
                         .Include(a => a.AssignmentItem.Yard.Gate)
                         .Where(a => (a.AssignmentItem.Status == 3 && a.AssignmentItem.Assignment.DeliveryDate.Date == DateTime.Now.Date && a.AssignmentItem.Yard.GateId == user.GateId && (a.AssignmentItem.Assignment.DeliveryStart <= totalTime && totalTime <= a.AssignmentItem.Assignment.DeliveryEnd)) || ((a.Status == 2 || a.Status == 3) && a.AssignmentItem.Yard.GateId == user.GateId))
                         .ToListAsync();

            List <TruckEntity> truckEntities = new List <TruckEntity>();

            foreach (var item in result)
            {
                TruckEntity tempTruckEntity = new TruckEntity
                {
                    Id         = item.Id,
                    TruckNumer = item.TruckNumer,
                    AssignmentItemCnFProfileName  = item.AssignmentItem.CnFProfile.Name,
                    AssignmentItemContainerNumber = item.AssignmentItem.ContainerNumber,
                    AssignmentItemVerifyNumber    = item.AssignmentItem.VerifyNumber,
                    AssignmentItemExitNumber      = item.AssignmentItem.ExitNumber,
                    Status = item.Status,
                };
                truckEntities.Add(tempTruckEntity);
            }

            if (!string.IsNullOrEmpty(searchBy))
            {
                truckEntities = truckEntities.Where(r =>
                                                    r.TruckNumer != null && r.TruckNumer.ToUpper().Contains(searchBy.ToUpper()) ||
                                                    r.AssignmentItemCnFProfileName != null && r.AssignmentItemCnFProfileName.ToUpper().Contains(searchBy.ToUpper()) ||
                                                    r.AssignmentItemContainerNumber != null && r.AssignmentItemContainerNumber.ToUpper().Contains(searchBy.ToUpper()) ||
                                                    r.AssignmentItemVerifyNumber != null && r.AssignmentItemVerifyNumber.ToUpper().Contains(searchBy.ToUpper()) ||
                                                    r.AssignmentItemExitNumber != null && r.AssignmentItemExitNumber.ToUpper().Contains(searchBy.ToUpper())
                                                    ).ToList();
            }

            truckEntities = orderAscendingDirection ? truckEntities.AsQueryable().OrderByDynamic(orderCriteria, LinqExtensions.Order.Asc).ToList() : truckEntities.AsQueryable().OrderByDynamic(orderCriteria, LinqExtensions.Order.Desc).ToList();

            // now just get the count of items (without the skip and take) - eg how many could be returned with filtering
            var filteredResultsCount = result.Count();
            var totalResultsCount    = await _context.TruckEntities
                                       .Include(a => a.AssignmentItem)
                                       .Include(a => a.AssignmentItem.Assignment)
                                       .Include(a => a.AssignmentItem.CnFProfile)
                                       .Include(a => a.AssignmentItem.Yard)
                                       .Include(a => a.AssignmentItem.Yard.Gate)
                                       .Where(a => (a.AssignmentItem.Status == 3 && a.AssignmentItem.Assignment.DeliveryDate.Date == DateTime.Now.Date && a.AssignmentItem.Yard.GateId == user.GateId && (a.AssignmentItem.Assignment.DeliveryStart <= totalTime && totalTime <= a.AssignmentItem.Assignment.DeliveryEnd)) || ((a.Status == 2 || a.Status == 3) && a.AssignmentItem.Yard.GateId == user.GateId))
                                       .CountAsync();

            if (dtParameters.Length == -1)
            {
                return(Json(new
                {
                    draw = dtParameters.Draw,
                    recordsTotal = totalResultsCount,
                    recordsFiltered = filteredResultsCount,
                    data = truckEntities
                           .Skip(dtParameters.Start)
                           .ToList()
                }));
            }
            else
            {
                return(Json(new
                {
                    draw = dtParameters.Draw,
                    recordsTotal = totalResultsCount,
                    recordsFiltered = filteredResultsCount,
                    data = truckEntities
                           .Skip(dtParameters.Start)
                           .Take(dtParameters.Length)
                           .ToList()
                }));
            }
        }
예제 #12
0
    void OnTriggerEnter(Collider other)
    {
        if (other.tag != "Truck")
        {
            return;
        }
        if (gameObject.name == "LeftCollider2")
        {
            // Debug.Log("Debug");
        }
        TruckEntity te = other.GetComponent <TruckEntity>();
        //INNER PART
        int numberOfConditions = roadDirectionCondition.Length;

        for (int i = 0; i < numberOfConditions; i++)
        {
            if (myRoadEntity.direction == roadDirectionCondition[i])
            {
                if (truckDirectionCondition[i] == te.direction)
                {
                    te.ChangeDirection(newTruckDirection[i], newTurn[i]);
                    return;
                }
            }
        }



        //ENDROADPART
        if (endRoad == false)
        {
            return;
        }
        CardinalPoint thisDirection = truckDirectionCondition[0];

        if (te.direction == thisDirection)
        {
            CardinalPoint direction = te.direction;
            RoadEntity    NextTile;
            if (gameObject.name == "TopCollider")
            {
                if (direction != CardinalPoint.N)
                {
                    return;
                }
            }
            if (gameObject.name == "BottomCollider")
            {
                if (direction != CardinalPoint.S)
                {
                    return;
                }
            }
            if (gameObject.name == "LeftCollider")
            {
                if (direction != CardinalPoint.W)
                {
                    return;
                }
            }
            if (gameObject.name == "RightCollider")
            {
                if (direction != CardinalPoint.E)
                {
                    return;
                }
            }


            if (MapController.s.CheckNextTile(myRoadEntity.position, direction, out NextTile))
            {
                bool b = RoadEntity.CheckConnection(myRoadEntity, NextTile);
                if (!b)
                {
                    te.ChangeDirection(RoadEntity.ReverseDirection(te.direction), Turn.Reverse);
                }
            }
            else
            {
                //Da la vuelta al camion
                te.ChangeDirection(RoadEntity.ReverseDirection(te.direction), Turn.Reverse);
            }
        }
    }
예제 #13
0
        private void ExecuteSaveCommand()
        {
            refreshErrorState();
            if (!HasErrors)
            {
                try
                {
                    using (var uow = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
                    {
                        //get this truck
                        var         syncedSetting = uow.SyncedSettingsRepo.GetAll().FirstOrDefault();
                        TruckEntity thisTruck     = uow.SettingsRepository.GetCurrentTruck();

                        string clientName = "";
                        if (_selectedProducer.ID == "")
                        {
                            clientName = _NewProducerText.Trim();
                        }
                        else
                        {
                            clientName = _selectedProducer.DisplayText.Trim();
                        }

                        string farmName = "";
                        if (ShowNewFarmText)
                        {
                            farmName = _NewFarmText.Trim();
                        }
                        else
                        {
                            farmName = _selectedFarm.DisplayText.Trim();
                        }

                        string fieldName = "";
                        if (ShowFieldText)
                        {
                            fieldName = _NewFieldText.Trim();
                        }
                        else
                        {
                            fieldName = _selectedField.DisplayText.Trim();
                        }

                        ClientEntity client = uow.ClientRepository.EnsureClientCreated(clientName, InputSource.TRUCK);
                        uow.SaveChanges();
                        FarmEntity farm = uow.FarmRepository.EnsureFarmCreated(client, farmName, InputSource.TRUCK);
                        uow.SaveChanges();
                        FieldEntity field = uow.FieldRepository.EnsureFieldCreated(farm, fieldName, InputSource.TRUCK);
                        uow.SaveChanges();

                        var    coords = GPSDataProvider.GetLastCoords();
                        double lat    = CottonDBMS.DataModels.Helpers.GPSHelper.SafeLat(coords);
                        double lng    = CottonDBMS.DataModels.Helpers.GPSHelper.SafeLong(coords);

                        PickupListEntity list = new PickupListEntity();
                        list.Id                 = Guid.NewGuid().ToString();
                        list.Name               = _listName.Trim();
                        list.Source             = InputSource.TRUCK;
                        list.AssignedModules    = new List <ModuleEntity>();
                        list.AssignedTrucks     = new List <TruckEntity>();
                        list.DownloadedToTrucks = new List <TruckEntity>();
                        list.FieldId            = field.Id;
                        list.PickupListStatus   = PickupListStatus.OPEN;
                        list.ModulesPerLoad     = (syncedSetting != null) ? syncedSetting.ModulesPerLoad : 4;

                        if (uow.SettingsRepository.CoordsOnGinYard(lat, lng) || uow.SettingsRepository.CoordsAtFeeder(lat, lng))
                        {
                            list.Destination = PickupListDestination.GIN_FEEDER;
                        }
                        else
                        {
                            list.Destination = PickupListDestination.GIN_YARD;
                        }

                        if (thisTruck != null)
                        {
                            list.AssignedTrucks.Add(thisTruck);
                            list.DownloadedToTrucks.Add(thisTruck);
                        }

                        uow.PickupListRepository.Add(list);
                        uow.SaveChanges();

                        GalaSoft.MvvmLight.Messaging.Messenger.Default.Send <PickupListAddedMessage>(new PickupListAddedMessage {
                            Id = list.Id
                        });
                    }
                    _windowService.CloseModalWindow(WindowType.AddFieldWindow);
                }
                catch (Exception exc)
                {
                    Logging.Logger.Log(exc);
                    System.Windows.MessageBox.Show("An error occured trying to save list. " + exc.Message);
                }
            }
        }