public JobAssignmentGroup AddJobAssignmentGroup(/*JobAssignmentGroup jobAssignmentGroup*/)
        {
            using (var context = ctx)
            {
                var jobAssignmentGroup = new JobAssignmentGroup();
                var myaccount          = FetchUserFromUsernameAccountImpl(context, "admin");
                jobAssignmentGroup.UserAccount = myaccount;

                var city     = I.FetchCityByNameImpl(context, "Memphis");
                var firstJob = new JobAssignment();
                firstJob.City = city;
                var today = DateTime.Today.Date;
                firstJob.Deadline = today.AtTime("6:20 PM");
                firstJob.CurrentDailyTeamCount = 5;
                firstJob.FlexTeams             = 0;
                firstJob.HasStores             = true;
                firstJob.IsSoftRoute           = false;

                firstJob.JobAssignmentCheckpoints.AddRange(new[]
                {
                    new JobAssignmentCheckpoint(today.AtTime("3:15 PM"), CheckpointType.PreRouteMailCall),
                    new JobAssignmentCheckpoint(today.AtTime("5:15 PM"), CheckpointType.PreRouteUnconfirmed),
                    new JobAssignmentCheckpoint(today.AtTime("6:20 PM"), CheckpointType.Export),
                    new JobAssignmentCheckpoint(today.AtTime("6:35 PM"), CheckpointType.ScheduleMailText),
                    new JobAssignmentCheckpoint(today.AtTime("6:50 PM"), CheckpointType.ScheduleCalls),
                    new JobAssignmentCheckpoint(today.AtTime("7:15 PM"), CheckpointType.UnconfirmedCalls),
                    new JobAssignmentCheckpoint(today.AtTime("7:40 PM"), CheckpointType.UnconfirmedCallsII),
                });
                jobAssignmentGroup.JobAssignments.Add(firstJob);
                return(AddJobAssignmentGroupImpl(context, jobAssignmentGroup));
            }
        }
示例#2
0
        private async Task <int> saveJobAssignment(JobAssignment assignment)
        {
            try
            {
                using (IDbConnection conn = _dbConnection.Connection)
                {
                    DynamicParameters param = new DynamicParameters();

                    param.Add("@jobid", assignment.jobid, DbType.Int32);
                    param.Add("@priorityid", assignment.priorityid, DbType.Int32);
                    param.Add("@clientname", assignment.clientname.Trim(), DbType.String);
                    param.Add("@loginid", assignment.loginid, DbType.Int32);

                    if (assignment.userids.Count > 0)
                    {
                        param.Add("@userid", string.Join(",", assignment.userids), DbType.String);
                    }

                    var data = await conn.QueryAsync <int>(Constants.StoredProcedure.ASSIGNJOB, param, null, null, CommandType.StoredProcedure);

                    int result = 0;

                    if (data.ToList().Count > 0)
                    {
                        result = data.ToList()[0];
                    }

                    return(result);
                }
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
        public bool AddJobAssignment(FormJobAssignmentViewModel jobAssignmentViewModel)
        {
            if (jobAssignmentViewModel == null)
            {
                return(false);
            }

            JobAssignment jobAssignment = new JobAssignment
            {
                ShippingId        = jobAssignmentViewModel.JobAssignment.ShippingId,
                TruckDriverId     = jobAssignmentViewModel.JobAssignment.TruckDriverId,
                JobAssignmentDate = jobAssignmentViewModel.JobAssignment.JobAssignmentDate,
                StartingPointJob  = jobAssignmentViewModel.JobAssignment.StartingPointJob,
                LatitudeStartJob  = jobAssignmentViewModel.JobAssignment.LatitudeStartJob,
                LongitudeStartJob = jobAssignmentViewModel.JobAssignment.LongitudeStartJob,
                DestinationJob    = jobAssignmentViewModel.JobAssignment.DestinationJob,
                LatitudeDesJob    = jobAssignmentViewModel.JobAssignment.LatitudeDesJob,
                LongitudeDesJob   = jobAssignmentViewModel.JobAssignment.LongitudeDesJob,
            };

            _context.JobAssignments.Add(jobAssignment);
            TransportationInf transportationInf =
                _context.TransportationInfs.Find(jobAssignment.ShippingId);

            if (transportationInf != null)
            {
                transportationInf.JobIsActive          = true;
                transportationInf.DateOfTransportation = jobAssignment.JobAssignmentDate;

                _context.Entry(transportationInf).State = EntityState.Modified;
            }
            _context.SaveChanges();

            return(true);
        }
        /// <summary>
        /// Invokes a lambda worker
        /// </summary>
        /// <param name="workerFunctionId"></param>
        /// <param name="environment"></param>
        /// <param name="jobAssignment"></param>
        /// <returns></returns>
        public async Task Invoke(string workerFunctionId, IEnvironment environment, JobAssignment jobAssignment)
        {
            try
            {
                Logger.Info("Invoking lambda function with name '{0}' for job assignment {1}...", workerFunctionId, jobAssignment.Id);

                await Lambda.InvokeAsync(
                    new Amazon.Lambda.Model.InvokeRequest
                {
                    FunctionName   = workerFunctionId,
                    InvocationType = "Event",
                    LogType        = "None",
                    Payload        = ResourceSerializer.Serialize(jobAssignment)
                });

                Logger.Info("Invocation of lambda function with name '{0}' for job assignment {1} succeeded.", workerFunctionId, jobAssignment.Id);
            }
            catch (Exception ex)
            {
                Logger.Error("Failed to invoke lambda function with name '{0}' for job assignment {1}. Exception: {2}",
                             workerFunctionId,
                             jobAssignment.Id,
                             ex);
                throw;
            }
        }
        public bool DeleteJobAssignment(int?jobAssignmentId)
        {
            if (jobAssignmentId == null)
            {
                return(false);
            }

            JobAssignment jobAssignmentIndb = _context.JobAssignments.Find(jobAssignmentId);

            if (jobAssignmentIndb == null)
            {
                return(false);
            }

            _context.JobAssignments.Remove(jobAssignmentIndb);

            TransportationInf transportationInf =
                _context.TransportationInfs.Find(jobAssignmentIndb.ShippingId);

            if (transportationInf != null)
            {
                transportationInf.JobIsActive = false;
            }

            _context.SaveChanges();

            return(true);
        }
示例#6
0
        public void CheckCircularDependancy()
        {   //A unit test to check that the job assignments can create be created
            //from the user input string

            List <JobAssignment> testJobsAssigned = new List <JobAssignment> {
                new JobAssignment(new Job('a'), "=>"),
                new JobAssignment(new Job('b'), "=>", new Job('c')),
                new JobAssignment(new Job('c'), "=>", new Job('f')),
                new JobAssignment(new Job('d'), "=>", new Job('a')),
                new JobAssignment(new Job('e'), "=>"),
                new JobAssignment(new Job('f'), "=>", new Job('b'))
            };

            JobAssignment.ReplaceJobs(testJobsAssigned);
            Assert.IsTrue(new JobQueue().BreakdownJobs().Contains("circular"));

            //Another jobs queue the has circular dependancy, and is also
            //non alphabetical order on linear user input
            List <JobAssignment> testTwoJobsAssigned = new List <JobAssignment> {
                new JobAssignment(new Job('a'), "=>"),
                new JobAssignment(new Job('b'), "=>"),
                new JobAssignment(new Job('c'), "=>", new Job('e')),
                new JobAssignment(new Job('e'), "=>", new Job('d')),
                new JobAssignment(new Job('d'), "=>", new Job('c')),
                new JobAssignment(new Job('f'), "=>", new Job('b'))
            };

            JobAssignment.ReplaceJobs(testTwoJobsAssigned);
            Assert.IsTrue(new JobQueue().BreakdownJobs().Contains("circular"));
        }
示例#7
0
        public void MultipleJobsNoOrder()
        {
            //A integration test to check no dependancy input
            //of multiple assignments are broken into a final sequence
            testSample = @"a => 
                           b => 
                           c =>";

            List <JobAssignment> testJobsAssigned = new List <JobAssignment> {
                new JobAssignment(new Job('a'), "=>"),
                new JobAssignment(new Job('b'), "=>"),
                new JobAssignment(new Job('c'), "=>")
            };

            JobAssignment.ReplaceJobs(testJobsAssigned);

            List <char> brokenDownJobs = new List <char> {
                'a', 'b', 'c'
            };

            JobQueue.SetOrderJobs(brokenDownJobs);

            Assert.IsTrue(new JobQueue(testSample).AssignJobStructure() == "Passed");
            Assert.IsTrue(new JobQueue().PrioritiseJobs() == "abc");
        }
示例#8
0
        public void NonChronologicalJobsBreakdownSuccess()
        {   //Similar to JobsBreakdownSuccess() but uses non alphabetically ordered,
            //custom depedancy job schema. Program is designed to follow instructions
            //in job scheme.
            testSample = @"a => 
                           f => c 
                           c => d
                           d => 
                           b => a
                           e => f";

            List <JobAssignment> nonAlphabeticalJobsAssigned = new List <JobAssignment> {
                new JobAssignment(new Job('a'), "=>"),
                new JobAssignment(new Job('f'), "=>", new Job('c')),
                new JobAssignment(new Job('c'), "=>", new Job('d')),
                new JobAssignment(new Job('d'), "=>"),
                new JobAssignment(new Job('b'), "=>", new Job('a')),
                new JobAssignment(new Job('e'), "=>", new Job('f'))
            };

            JobAssignment.ReplaceJobs(nonAlphabeticalJobsAssigned);

            List <char> brokenDownJobs = new List <char> {
                'a', 'c', 'f', 'd', 'b', 'e'
            };

            JobQueue.SetOrderJobs(brokenDownJobs);

            Assert.IsTrue(new JobQueue(testSample).AssignJobStructure() == "Passed");
            Assert.IsTrue(new JobQueue().PrioritiseJobs() == "dcfeab");
        }
        public HttpResponseMessage Insert([FromBody] JobAssignment JobAssignment)
        {
            _JobAssignmentRepo.InsertJobAssignmentDetailsAsync(JobAssignment);

            var message = Request.CreateResponse(HttpStatusCode.Created, JobAssignment);

            message.Headers.Location = new Uri(Request.RequestUri + JobAssignment.Id.ToString());
            return(message);
        }
示例#10
0
        public void Add(JobAssignment jobAssignment)
        {
            if (composite == null)
            {
                InitializeContainerElement();
            }

            composite.JobAssignments.Add(jobAssignment);
        }
        /// <summary>
        /// Invokes a worker function in-process
        /// </summary>
        /// <param name="workerFunctionId"></param>
        /// <param name="environment"></param>
        /// <param name="jobAssignment"></param>
        /// <returns></returns>
        public Task Invoke(string workerFunctionId, IEnvironment environment, JobAssignment jobAssignment)
        {
            // get the worker using the function name
            var worker = GetWorker(workerFunctionId);

            // execute the worker on a background thread
            worker.Execute(jobAssignment);

            return(Task.CompletedTask);
        }
示例#12
0
        private void RemoveWorker()
        {
            jobAssignment.Worker.gameObject.SetActive(false);
            jobAssignment.Dispose();
            jobAssignment = null;

            if (availableWorkers.HasSelected)
            {
                EnableAssignment();
            }
        }
        public void InsertJobAssignmentDetailsAsync(JobAssignment jobAssign)
        {
            if (myconn.State != ConnectionState.Open)
            {
                myconn.Open();
            }

            SqlTransaction tran = myconn.BeginTransaction();

            jobAssign.createdDate  = DateTime.Now;
            jobAssign.modifiedDate = DateTime.Now;

            SqlCommand sqlCmd = new SqlCommand();

            sqlCmd.CommandType = CommandType.StoredProcedure;
            sqlCmd.CommandText = "SP_JobAssignmentInsertUpdate";
            sqlCmd.Parameters.Add(new SqlParameter("@mode", "I"));
            sqlCmd.Parameters.Add(new SqlParameter("@Id", jobAssign.Id));
            sqlCmd.Parameters.Add(new SqlParameter("@jobID", jobAssign.jobID));
            sqlCmd.Parameters.Add(new SqlParameter("@teamID", jobAssign.teamID));
            sqlCmd.Parameters.Add(new SqlParameter("@subcontractorID", jobAssign.subcontractorID));
            sqlCmd.Parameters.Add(new SqlParameter("@jobAssignDate", jobAssign.jobAssignDate));
            sqlCmd.Parameters.Add(new SqlParameter("@startTime", jobAssign.startTime));
            sqlCmd.Parameters.Add(new SqlParameter("@endTime", jobAssign.endTime));
            sqlCmd.Parameters.Add(new SqlParameter("@notes", jobAssign.notes));
            sqlCmd.Parameters.Add(new SqlParameter("@createdDate", jobAssign.createdDate));
            sqlCmd.Parameters.Add(new SqlParameter("@modifiedDate", jobAssign.modifiedDate));
            sqlCmd.Parameters.Add(new SqlParameter("@userId", jobAssign.userId));


            try
            {
                sqlCmd.Connection  = myconn;
                sqlCmd.Transaction = tran;

                jobAssign.Id = Convert.ToInt32(sqlCmd.ExecuteScalar());

                // InsertJobAssignmentRateDetailsAsync(JobAssignmentRates, JobAssignment.JobAssignmentID, tran);
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                gs.LogData(ex);
                throw ex;
            }
            finally
            {
                if (myconn.State != ConnectionState.Closed)
                {
                    myconn.Close();
                }
            }
        }
示例#14
0
        public void Load()
        {
            JobCollection.Clear();
            DAL       dal = new DAL();
            DataTable dt  = dal.Read("select JobRequest_Id,bit_job_type.Job_Type,bit_job_type.Job_Type_Id,RequestDate,Priority,Comments,Status,bit_client_location.Location_Name,bit_client_location.Location_Id from bit_job_request, bit_job_type, bit_client_location where bit_job_request.Job_Type_Id = bit_job_type.Job_Type_Id and   bit_job_request.Location_Id = bit_client_location.Location_Id and   Status in('Requested','Acknowledged') order by JobRequest_Id");

            foreach (DataRow dr in dt.Rows)
            {
                JobAssignment job = new JobAssignment(dr);
                JobCollection.Add(job);
            }
        }
示例#15
0
        public void PlaceWorker(AbstractWorker worker, Job job)
        {
            worker.transform.parent = transform;
            worker.gameObject.SetActive(true);
            worker.transform.localPosition = Vector3.zero;

            jobAssignment = jobAssignmentFactory.Create(job, worker);

            job.TakeCost(player, worker);

            onWorkerPlacement.Invoke();
        }
示例#16
0
        public async Task UpdateJobAssignment(JobAssignment job)
        {
            // Check to see if the product exist
            var existingProduct = GetJobAssignmentById(job.Id);

            if (existingProduct != null)
            {
                await _documentClient.UpsertDocumentAsync(
                    UriFactory.CreateDocumentCollectionUri(_documentDbSettings.DatabaseId, _documentDbSettings.CollectionId),
                    job);
            }
        }
        public FormJobAssignmentViewModel MockViewModelData()
        {
            //Arrage
            var job = new JobAssignment()
            {
                JobAssignmentId     = 1,
                ShippingId          = 1,
                TruckDriverId       = 1,
                JobAssignmentDate   = new DateTime(2016, 7, 2).ToString(CultureInfo.CurrentCulture),
                StartingPointJob    = "Bangkok",
                LatitudeStartJob    = (float)12.1215,
                LongitudeStartJob   = (float)98.148,
                DestinationJob      = "Chiang Mai",
                LatitudeDesJob      = (float)16.1245,
                LongitudeDesJob     = (float)100.1454,
                JobAssignmentStatus = true
            };


            List <TruckDriver> list = new List <TruckDriver>();

            TruckDriver truckDriver = new TruckDriver
            {
                TruckDriverId              = 1,
                TruckDriverUsername        = "******",
                TruckDriverPassword        = "******",
                TruckDriverConfirmPassword = "******",
                TruckDriverFullname        = "DriverA",
                TruckDriverCitizenId       = "1579900617731",
                TruckDriverDriverLicenseId = "12345678",
                TruckDriverGender          = "Male",
                TruckDriverAddress         = "264 Chiang Saen Chiang Rai",
                TruckDriverBirthdate       = new DateTime(2010, 3, 11).ToString(CultureInfo.CurrentCulture),
                TruckDriverEmail           = "*****@*****.**",
                TruckDriverTelephoneNo     = "0970747125",
                TruckId = "CR-12345"
            };

            list.Add(truckDriver);

            var jobViewModel = new FormJobAssignmentViewModel
            {
                JobAssignment = job,
                TruckDrivers  = list,
            };

            return(jobViewModel);
        }
        // Mock Job
        private JobAssignment MockJob()
        {
            var job = new JobAssignment()
            {
                JobAssignmentId     = 1,
                ShippingId          = 1,
                TruckDriverId       = 1,
                JobAssignmentDate   = new DateTime(2016, 7, 2).ToString(CultureInfo.CurrentCulture),
                StartingPointJob    = "Bangkok",
                LatitudeStartJob    = (float)12.1215,
                LongitudeStartJob   = (float)98.148,
                DestinationJob      = "Chiang Mai",
                LatitudeDesJob      = (float)16.1245,
                LongitudeDesJob     = (float)100.1454,
                JobAssignmentStatus = true
            };

            return(job);
        }
示例#19
0
        public async Task Initialize()
        {
            await CreateDatabaseIfNotExistsAsync();
            await CreateCollectionIfNotExistsAsync();

            var job1 = new JobAssignment()
            {
                Id = "1", Description = "Job1"
            };

            CreateJobDocumentIfNotExists(job1).Wait();

            var job2 = new JobAssignment()
            {
                Id = "2", Description = "Job2"
            };

            CreateJobDocumentIfNotExists(job2).Wait();
        }
示例#20
0
        public void GetJobAssignmentByIdTest()
        {
            //Arrange
            var jobA = new JobAssignment()
            {
                JobAssignmentId     = 1,
                ShippingId          = 1,
                TruckDriverId       = 1,
                JobAssignmentDate   = new DateTime(2016, 7, 2).ToString(CultureInfo.CurrentCulture),
                StartingPointJob    = "Bangkok",
                LatitudeStartJob    = (float)12.1215,
                LongitudeStartJob   = (float)98.148,
                DestinationJob      = "Chiang Mai",
                LatitudeDesJob      = (float)16.1245,
                LongitudeDesJob     = (float)100.1454,
                JobAssignmentStatus = true
            };

            var mock = new Mock <IJobAssignmentRepository>();

            mock.Setup(j => j.GetJobAssignmentById(1)).Returns(jobA);
            var repo = mock.Object;

            // Action
            var result = repo.GetJobAssignmentById(1);

            // Assert
            Assert.AreEqual(result.ToString(), jobA.ToString());

            //Arrange
            var mockNull = new Mock <IJobAssignmentRepository>();

            if (mockNull.Object == null)
            {
                var repoNull = mockNull.Object;

                // Action
                var resultNull = repoNull.GetJobAssignmentById(null);

                // Assert
                Assert.IsNull(resultNull);
            }
        }
示例#21
0
        public static async Task Run([ServiceBusTrigger("%QueueName%", Connection = "ServiceBusConnectionString")] string queueItem,
                                     ILogger log)
        {
            log.LogInformation($"JobAssignmentMessage queue triggered.");

            // Deserialize the message into the request object.
            var msg = JsonConvert.DeserializeObject <JobAssignmentRequest>(queueItem);

            // Add the job assignment
            if (msg.ActionType == JobAssignmentRequestType.AddJobAssignment)
            {
                var repository    = new JobAssignmentRepository();
                var jobAssignment = new JobAssignment()
                {
                    Description = msg.Details, Id = Guid.NewGuid().ToString()
                };
                await repository.CreateJobAssignment(jobAssignment);
            }
        }
示例#22
0
        public void OneJobSequence()
        {
            //A integration test to check no dependancy input
            //of a single assignments is broken into a final sequence
            testSample = @"a =>";

            List <JobAssignment> testJobsAssigned = new List <JobAssignment> {
                new JobAssignment(new Job('a'), "=>")
            };

            JobAssignment.ReplaceJobs(testJobsAssigned);

            List <char> brokenDownJobs = new List <char> {
                'a'
            };

            JobQueue.SetOrderJobs(brokenDownJobs);

            Assert.IsTrue(new JobQueue(testSample).AssignJobStructure() == "Passed");
            Assert.IsTrue(new JobQueue().PrioritiseJobs() == "a");
        }
        public bool UpdateJobAssignment(FormJobAssignmentViewModel jobAssignmentViewModel)
        {
            if (jobAssignmentViewModel == null)
            {
                return(false);
            }

            JobAssignment jobAssignment = new JobAssignment
            {
                JobAssignmentId   = jobAssignmentViewModel.JobAssignment.JobAssignmentId,
                ShippingId        = jobAssignmentViewModel.JobAssignment.ShippingId,
                TruckDriverId     = jobAssignmentViewModel.JobAssignment.TruckDriverId,
                JobAssignmentDate = jobAssignmentViewModel.JobAssignment.JobAssignmentDate,
                StartingPointJob  = jobAssignmentViewModel.JobAssignment.StartingPointJob,
                LatitudeStartJob  = jobAssignmentViewModel.JobAssignment.LatitudeStartJob,
                LongitudeStartJob = jobAssignmentViewModel.JobAssignment.LongitudeStartJob,
                DestinationJob    = jobAssignmentViewModel.JobAssignment.DestinationJob,
                LatitudeDesJob    = jobAssignmentViewModel.JobAssignment.LatitudeDesJob,
                LongitudeDesJob   = jobAssignmentViewModel.JobAssignment.LongitudeDesJob,
            };

            _context.Entry(jobAssignment).State = EntityState.Modified;

            var findTransportationInf = _context.TransportationInfs.Find(jobAssignment.ShippingId);

            if (findTransportationInf == null)
            {
                return(false);
            }

            findTransportationInf.DateOfTransportation = jobAssignment.JobAssignmentDate;
            findTransportationInf.StartingPoint        = jobAssignment.StartingPointJob;
            findTransportationInf.Destination          = jobAssignment.DestinationJob;

            _context.Entry(findTransportationInf).State = EntityState.Modified;

            _context.SaveChanges();

            return(true);
        }
示例#24
0
        public List <JobAssignment> ListJobAssignment()
        {
            List <JobAssignment> listJobAssignments = new List <JobAssignment>();

            var jobA = new JobAssignment()
            {
                JobAssignmentId     = 1,
                ShippingId          = 1,
                TruckDriverId       = 1,
                JobAssignmentDate   = new DateTime(2016, 7, 2).ToString(CultureInfo.CurrentCulture),
                StartingPointJob    = "Bangkok",
                LatitudeStartJob    = (float)12.1215,
                LongitudeStartJob   = (float)98.148,
                DestinationJob      = "Chiang Mai",
                LatitudeDesJob      = (float)16.1245,
                LongitudeDesJob     = (float)100.1454,
                JobAssignmentStatus = true
            };

            listJobAssignments.Add(jobA);
            return(listJobAssignments);
        }
示例#25
0
        public IEnumerable <JobAssignment> ListJobAssignmentData()
        {
            List <JobAssignment> listJobAssignments = new List <JobAssignment>();

            var jobA = new JobAssignment()
            {
                JobAssignmentId     = 1,
                ShippingId          = 1,
                TruckDriverId       = 1,
                JobAssignmentDate   = new DateTime(2016, 7, 2).ToString(CultureInfo.CurrentCulture),
                StartingPointJob    = "Bangkok",
                LatitudeStartJob    = (float)12.1215,
                LongitudeStartJob   = (float)98.148,
                DestinationJob      = "Chiang Mai",
                LatitudeDesJob      = (float)16.1245,
                LongitudeDesJob     = (float)100.1454,
                JobAssignmentStatus = true
            };
            var jobB = new JobAssignment()
            {
                JobAssignmentId     = 2,
                ShippingId          = 2,
                TruckDriverId       = 2,
                JobAssignmentDate   = new DateTime(2017, 10, 01).ToString(CultureInfo.CurrentCulture),
                StartingPointJob    = "Chiang Rai",
                LatitudeStartJob    = (float)15.2154,
                LongitudeStartJob   = (float)97.148,
                DestinationJob      = "Chonburi",
                LatitudeDesJob      = (float)13.1245,
                LongitudeDesJob     = (float)92.1454,
                JobAssignmentStatus = false
            };

            listJobAssignments.Add(jobA);
            listJobAssignments.Add(jobB);

            return(listJobAssignments);
        }
示例#26
0
        internal async Task <ResponseModel> SaveJobAssignment(JobAssignment assignment)
        {
            ResponseModel response = new ResponseModel();

            using (IDbConnection conn = _dbConnection.Connection)
            {
                DynamicParameters param = new DynamicParameters();

                param.Add("@jobid", assignment.jobid, DbType.Int32);
                param.Add("@priorityid", assignment.priorityid, DbType.Int32);
                param.Add("@loginid", assignment.loginid, DbType.Int32);

                if (assignment.userids.Count > 0)
                {
                    param.Add("@userid", string.Join(",", assignment.userids), DbType.String);
                }
                if (!string.IsNullOrWhiteSpace(assignment.clientname))
                {
                    param.Add("@clientname", assignment.clientname.Trim(), DbType.String);
                }

                var data = await conn.QueryAsync <int>(Constants.StoredProcedure.ASSIGNJOB, param, null, null, CommandType.StoredProcedure);

                int result = 0;

                if (data.ToList().Count > 0)
                {
                    result = data.ToList()[0];
                }

                response.ResultStatus   = result;
                response.RequestType    = Constants.RequestType.POST;
                response.SuccessMessage = result == 0 ? string.Empty : "Job assigned successfully.";
                response.ErrorMessage   = result == 0 ? "Error occurred while assigning job.  Please try again." : string.Empty;
            }

            return(response);
        }
示例#27
0
        public void JobsBreakdownSuccess()
        {   //An intregration test to check that the jobs assignments have been broken down into
            //partially prioritized sequence
            testSample = @"a => 
                           b => c 
                           c => f
                           d => a
                           e => b
                           f =>";

            List <JobAssignment> testJobsAssigned = new List <JobAssignment> {
                new JobAssignment(new Job('a'), "=>"),
                new JobAssignment(new Job('b'), "=>", new Job('c')),
                new JobAssignment(new Job('c'), "=>", new Job('f')),
                new JobAssignment(new Job('d'), "=>", new Job('a')),
                new JobAssignment(new Job('e'), "=>", new Job('b')),
                new JobAssignment(new Job('f'), "=>")
            };

            JobAssignment.ReplaceJobs(testJobsAssigned);

            List <char> brokenDownJobs = new List <char> {
                'a', 'c', 'b', 'f', 'd', 'e'
            };

            JobQueue.SetOrderJobs(brokenDownJobs);

            Assert.IsTrue(new JobQueue(testSample).AssignJobStructure() == "Passed");
            Assert.IsTrue(new JobQueue().PrioritiseJobs() == "fcbead");

            //Assert.IsTrue(new JobQueue().BreakdownJobs() == "Nearly Done");
            /////////////////////////////////////////////////////////////////
            //Circular dependancy is decteced while breaking down the input into
            //non fully prioritised jobs, so passing in a complete list to test
            //without checking a defined dependancy schema is misread as a Circular dependancy
            //and fails test.
        }
示例#28
0
        public void CheckForDependancy()
        {
            //A integration test to check if a given job has a dependancy,
            //to place it in a list before the dependee and move on.
            testSample = @"a => 
                           b => c 
                           c =>";

            List <JobAssignment> testJobsAssigned = new List <JobAssignment> {
                new JobAssignment(new Job('a'), "=>"),
                new JobAssignment(new Job('b'), "=>", new Job('c')),
                new JobAssignment(new Job('c'), "=>")
            };

            JobAssignment.ReplaceJobs(testJobsAssigned);

            List <char> brokenDownJobs = new List <char> {
                'a', 'c', 'b'
            };

            JobQueue.SetOrderJobs(brokenDownJobs);
            Assert.IsTrue(new JobQueue(testSample).AssignJobStructure() == "Passed");
            Assert.IsTrue(new JobQueue().PrioritiseJobs() == "acb");
        }
        // List Job
        public IEnumerable <JobAssignment> MockJobAssignmentsList()
        {
            var listJob = new JobAssignment[]
            {
                new JobAssignment()
                {
                    JobAssignmentId     = 1,
                    ShippingId          = 1,
                    TruckDriverId       = 1,
                    JobAssignmentDate   = new DateTime(2016, 7, 2).ToString(CultureInfo.CurrentCulture),
                    StartingPointJob    = "Bangkok",
                    LatitudeStartJob    = (float)12.1215,
                    LongitudeStartJob   = (float)98.148,
                    DestinationJob      = "Chiang Mai",
                    LatitudeDesJob      = (float)16.1245,
                    LongitudeDesJob     = (float)100.1454,
                    JobAssignmentStatus = true
                },
                new JobAssignment()
                {
                    JobAssignmentId     = 2,
                    ShippingId          = 2,
                    TruckDriverId       = 2,
                    JobAssignmentDate   = new DateTime(2017, 10, 01).ToString(CultureInfo.CurrentCulture),
                    StartingPointJob    = "Chiang Rai",
                    LatitudeStartJob    = (float)15.2154,
                    LongitudeStartJob   = (float)97.148,
                    DestinationJob      = "Chonburi",
                    LatitudeDesJob      = (float)13.1245,
                    LongitudeDesJob     = (float)92.1454,
                    JobAssignmentStatus = false
                }
            };

            return(listJob);
        }
        public JobAssignment GetJobAssignmentById(int?jobAssignmentId)
        {
            JobAssignment jobAssignmentInDb = _context.JobAssignments.Include(j => j.TruckDriver).Include(t => t.TransportationInf).SingleOrDefault(j => j.JobAssignmentId == jobAssignmentId);

            return(jobAssignmentInDb);
        }