public void AddPriorityTest()
        {
            var position = GetRandomVector3();
            var entity   = new PriorityEntity(1, position, 0, 1);
            var entity2  = new PriorityEntity(1, position, 0, 1);
            var entity3  = new PriorityEntity(1, new Vector3(position.X, position.Y + 1, position.Z), 0, 1);
            var entity4  =
                new PriorityEntity(1, new Vector3(position.X, position.Y + 1, position.Z + 1), 0, 2)
            {
                IsHighPriority = true
            };

            grid2.Add(entity);
            grid2.Add(entity2);
            grid2.Add(entity3);
            grid2.Add(entity4);
            using (var enumerator = grid2.Find(position, 0).GetEnumerator())
            {
                var currSet = new HashSet <IEntity>();
                while (enumerator.MoveNext())
                {
                    currSet.Add(enumerator.Current);
                }
                Assert.True(currSet.Contains(entity));
                Assert.True(currSet.Contains(entity2));
                Assert.True(currSet.Contains(entity4));
                Assert.False(currSet.Contains(entity3));
            }
        }
示例#2
0
 /// <summary>
 /// OBTENER LAS PRIORIDADES
 /// </summary>
 /// <param name="oBe"></param>
 /// <returns></returns>
 public List <PriorityEntity> SHPR_PRIORITY_LIST(PriorityEntity oBe)
 {
     using (var odr = oDa.SHPR_PRIORITY_LIST(oBe))
     {
         var oList = new List <PriorityEntity>();
         ((IList)oList).LoadFromReader <PriorityEntity>(odr);
         return(oList);
     }
 }
示例#3
0
 public PriorityModel(PriorityEntity entity)
 {
     Id            = entity.PRIORITYID.ToString();
     PriorityLevel = entity.PRIORITYLEVEL ?? 1;
     Year          = entity.YEARS;
     Criteria      = entity.CRITERIA;
     PriorityFunds = entity.PRIORITYFUNDS.Any()
         ? entity.PRIORITYFUNDS.Select(pf => new PriorityFundModel(pf)).ToList()
         : new List <PriorityFundModel>();
 }
        public HttpResponseMessage SHPR_PRIORITY_LIST(PriorityEntity oBe)
        {
            try
            {
                if (string.IsNullOrWhiteSpace((string)HttpContext.Current.Session["username"]))
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Acceso no autorizado."));
                }

                var oBr   = new TicketRule();
                var oList = oBr.SHPR_PRIORITY_LIST(oBe);
                return(Request.CreateResponse(HttpStatusCode.OK, oList));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
示例#5
0
 /// <summary>
 /// OBTENER LA LISTA DE PRIORIDADES
 /// </summary>
 /// <param name="oBe"></param>
 /// <returns></returns>
 public IDataReader SHPR_PRIORITY_LIST(PriorityEntity oBe)
 {
     try
     {
         oDb  = oDg.getDataBase();
         oCon = oDg.getConnection();
         if (oCon.State == ConnectionState.Closed)
         {
             oCon.Open();
         }
         var ocmd = oDb.GetStoredProcCommand("usp_Prioridad");
         ocmd.CommandTimeout = 2000;
         var odr = oDb.ExecuteReader(ocmd);
         return(odr);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         oCon.Close();
     }
 }
示例#6
0
 public void UpdatePriority(PriorityEntity entity)
 {
     entity.PRIORITYLEVEL = PriorityLevel;
     entity.YEARS         = Year;
     entity.CRITERIA      = Criteria;
 }
示例#7
0
        /// <summary>
        /// Executes an upsert/delete operation on a simulation's priority library data
        /// Throws a RowNotInTableException if no simulation is found
        /// </summary>
        /// <param name="model">PriorityLibraryModel</param>
        /// <param name="db">BridgeCareContext</param>
        /// <returns>PriorityLibraryModel</returns>
        private PriorityLibraryModel SaveSimulationPriorityLibrary(PriorityLibraryModel model, BridgeCareContext db)
        {
            var id = int.Parse(model.Id);

            var simulation = db.Simulations.Include(s => s.PRIORITIES)
                             .Include(s => s.PRIORITIES.Select(p => p.PRIORITYFUNDS))
                             .Single(s => s.SIMULATIONID == id);

            if (simulation.PRIORITIES.Any())
            {
                simulation.PRIORITIES.ToList().ForEach(priorityEntity =>
                {
                    var priorityModel = model.Priorities
                                        .SingleOrDefault(m => m.Id == priorityEntity.PRIORITYID.ToString());

                    if (priorityModel == null)
                    {
                        PriorityEntity.DeleteEntry(priorityEntity, db);
                    }
                    else
                    {
                        priorityModel.matched = true;
                        priorityModel.UpdatePriority(priorityEntity);

                        if (priorityEntity.PRIORITYFUNDS.Any())
                        {
                            priorityEntity.PRIORITYFUNDS.ToList().ForEach(priorityFundEntity =>
                            {
                                var priorityFundModel = priorityModel.PriorityFunds
                                                        .SingleOrDefault(m => m.Id == priorityFundEntity.PRIORITYFUNDID.ToString());

                                if (priorityFundModel == null)
                                {
                                    PriorityFundEntity.DeleteEntry(priorityFundEntity, db);
                                }
                                else
                                {
                                    priorityFundModel.matched = true;
                                    priorityFundModel.UpdatePriorityFund(priorityFundEntity);
                                }
                            });
                        }

                        if (priorityModel.PriorityFunds.Any(m => !m.matched))
                        {
                            db.PriorityFunds.AddRange(priorityModel.PriorityFunds
                                                      .Where(priorityFundModel => !priorityFundModel.matched)
                                                      .Select(priorityFundModel => new PriorityFundEntity(priorityEntity.PRIORITYID, priorityFundModel))
                                                      .ToList()
                                                      );
                        }
                    }
                });
            }

            if (model.Priorities.Any(m => !m.matched))
            {
                db.Priorities.AddRange(model.Priorities
                                       .Where(priorityModel => !priorityModel.matched)
                                       .Select(priorityModel => new PriorityEntity(id, priorityModel))
                                       .ToList()
                                       );
            }

            db.SaveChanges();

            return(new PriorityLibraryModel(simulation));
        }