Beispiel #1
0
        public IHttpActionResult GetCategories()
        {
            IHttpActionResult response = null;

            if (RegisterCategories == null)
            {
                RegisterCategories = new List <RegisterCategory>();
                var command = GetCommand("usp_GetCategories", CommandType.StoredProcedure);
                command.Connection.Open();
                var reader = command.ExecuteReader();
                while (reader.Read())
                {
                    var category = new RegisterCategory
                    {
                        MainCategoryID = reader.GetInt32(reader.GetOrdinal("MainCategoryID")),
                        CategoryID     = reader.GetInt32(reader.GetOrdinal("CategoryID")),
                        CategoryName   = reader.GetString(reader.GetOrdinal("Category")),
                        CategoryTypeID = reader.GetInt32(reader.GetOrdinal("CategoryTypeID")),
                        CategoryType   = reader.GetString(reader.GetOrdinal("CategoryType"))
                    };

                    RegisterCategories.Add(category);
                }
            }
            if (RegisterCategories.Count > 0)
            {
                response = Ok(RegisterCategories);
            }
            else
            {
                response = NotFound();
            }

            return(response);
        }
Beispiel #2
0
        public ContestSettings CreateSettings(IContestInformation contest)
        {
            var defaultCat = RegisterCategory?
                             .Where(k => k.Value != 0)
                             .ToDictionary(k => k.Key, v => v.Value);

            if (defaultCat?.Count == 0)
            {
                defaultCat = null;
            }

            if (RestrictToIpRanges)
            {
                IpRanges ??= string.Empty;
            }
            else
            {
                IpRanges = null;
            }
            int restriction =
                (RestrictToIpRanges ? 1 : 0)
                | (RestrictToMinimalSite ? 2 : 0)
                | (RestrictToLastLoginIp ? 4 : 0);

            var penaltyTime =
                contest.RankingStrategy == CcsDefaults.RuleXCPC &&
                PenaltyTime != 20
                ? PenaltyTime : default(int?);

            var scoreboardPagingEnabled =
                UseScoreboardPaging switch
            {
                1 => true,
                2 => false,
                _ => default(bool?),
            };

            var settings = contest.Settings.Clone();

            settings.BalloonAvailable  = contest.Kind == CcsDefaults.KindDom && UseBalloon;
            settings.EventAvailable    = contest.Kind == CcsDefaults.KindDom && UseEvents;
            settings.Languages         = Languages;
            settings.PrintingAvailable = contest.Kind == CcsDefaults.KindDom && UsePrintings;
            settings.RegisterCategory  = defaultCat;
            settings.StatusAvailable   = StatusAvailable;
            settings.PenaltyTime       = penaltyTime;
            settings.ScoreboardPaging  = scoreboardPagingEnabled;
            settings.PreferGymUI       = contest.Kind == CcsDefaults.KindDom && PreferGymUI ? true : default(bool?);
            settings.RestrictIp        = contest.Kind != CcsDefaults.KindDom || restriction == 0 ? default(int?) : restriction;
            settings.IpRanges          = IpRanges?.Split(';', StringSplitOptions.RemoveEmptyEntries);
            return(settings);
        }
Beispiel #3
0
        //figure out what the register is, in terms of how it is stored on the video card...
        private RegisterRank ExtractRank(string type, RegisterCategory category, int array, int size)
        {
            if (category != RegisterCategory.Float4 || type.Length < 3)
            {
                return(RegisterRank.Unknown);
            }

            RegisterRank rank  = RegisterRank.Unknown;
            int          start = 0;

            switch (type.Substring(0, 3))
            {
            case "flo":                    //float
                rank  = RegisterRank.FloatNx1;
                start = 5;
                break;

            case "int":                    //int
                rank  = RegisterRank.IntNx1;
                start = 3;
                break;

            case "boo":                    //bool
                return(RegisterRank.Bool);

            default:
                return(RegisterRank.Unknown);
            }

            if (type.Length != start + 3)             //not a matrix...
            {
                return(rank);
            }

            if (type[start + 1] != 'x' ||
                !char.IsNumber(type[start + 2]))
            {
                return(RegisterRank.Unknown);
            }

            int dim = int.Parse(type[start + 2].ToString());

            //a value may be defined as float4x4, however only float4x3 may be allocated (for example)
            //the rank must be the minimum of the two.
            if (array == -1)
            {
                dim = Math.Min(dim, size);
            }

            rank += (dim - 1);
            return(rank);
        }
        public void RegisterCategoryTest()
        {
            ServiceCategory category3 = new ServiceCategory
            {
                ServiceCategoryId   = 3,
                CategoryName        = "categoria 3",
                CategoryDescription = "Descripcion de la categoria 3."
            };

            mockRepository.Setup(x => x.RegisterCategory(category3)).Returns(true);

            var handler         = new RegisterCategoryHandler(mockRepository.Object);
            RegisterCategory rs = new RegisterCategory(category3);
            var res             = handler.Handle(rs, ct);

            Assert.IsTrue(res.Result);
        }
Beispiel #5
0
 /// <inheritdoc />
 public ContestSettings Clone()
 {
     return(new ContestSettings
     {
         BalloonAvailable = BalloonAvailable,
         EventAvailable = EventAvailable,
         Languages = Languages?.ToArray(),
         PlagiarismSet = PlagiarismSet,
         PrintingAvailable = PrintingAvailable,
         RegisterCategory = RegisterCategory?.ToDictionary(k => k.Key, v => v.Value),
         StatusAvailable = StatusAvailable,
         RestrictIp = RestrictIp,
         IpRanges = IpRanges,
         PenaltyTime = PenaltyTime,
         ScoreboardPaging = ScoreboardPaging,
         PreferGymUI = PreferGymUI,
         SystemTestRejudgingId = SystemTestRejudgingId,
         RatingChangesApplied = RatingChangesApplied,
     });
 }
		//figure out what the register is, in terms of how it is stored on the video card...
		private RegisterRank ExtractRank(string type, RegisterCategory category, int array, int size)
		{
			if (category != RegisterCategory.Float4 || type.Length < 3)
				return RegisterRank.Unknown;

			RegisterRank rank = RegisterRank.Unknown;
			int start = 0;

			switch (type.Substring(0, 3))
			{
				case "flo"://float
					rank = RegisterRank.FloatNx1;
					start = 5;
					break;
				case "int"://int
					rank = RegisterRank.IntNx1;
					start = 3;
					break;
				case "boo"://bool
					return RegisterRank.Bool;
				default:
					return RegisterRank.Unknown;
			}

			if (type.Length != start + 3) //not a matrix...
				return rank;

			if (type[start + 1] != 'x' ||
				!char.IsNumber(type[start + 2]))
				return RegisterRank.Unknown;

			int dim = int.Parse(type[start + 2].ToString());

			//a value may be defined as float4x4, however only float4x3 may be allocated (for example)
			//the rank must be the minimum of the two.
			if (array == -1)
				dim = Math.Min(dim, size);

			rank += (dim - 1);
			return rank;
		}