Ejemplo n.º 1
0
        public static CConverterResult Convert(CMemberAndResults Member,
                                               CResult result,
                                               enRounds?Round,
                                               int?MembersFromQualif,
                                               enCellType DestColumnType,
                                               out bool PlainStyleSetted)
        {
            PlainStyleSetted = false;

            CConverterResult res = new CConverterResult();

            lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj)
            {
                if ((Member.HasFalsestart && DestColumnType == enCellType.SurnameAndName) ||
                    (result.AdditionalEventTypes.HasValue && result.AdditionalEventTypes.Value.HasFlag(enAdditionalEventTypes.Falsestart) &&
                     (DestColumnType == enCellType.Route1 || DestColumnType == enCellType.Route2)))
                {
                    res = new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.FalsestartFontStyle, false);
                }

                if (Round.HasValue)
                {
                    switch (Round)
                    {
                        #region Qualif, Qualif2
                    case enRounds.Qualif:
                    case enRounds.Qualif2:
                        switch (DestColumnType)
                        {
                            #region StartNumber, SurnameAndName
                        case enCellType.StartNumber:
                        case enCellType.SurnameAndName:
                            if (result.CondFormating.HasValue)
                            {
                                switch (result.CondFormating.Value)
                                {
                                case enCondFormating.StayOnStart:             // Находится на старте
                                    return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.InvitedToStartFontStyle, false),
                                                            false));

                                case enCondFormating.JustRecievedResult:             // Только что полученный результат
                                    if (result.ResultColumnNumber == enResultColumnNumber.Sum)
                                    {
                                        return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.JustRecievedResultFontStyle, false),
                                                                false));
                                    }
                                    else
                                    {
                                        break;
                                    }

                                case enCondFormating.Preparing:             // Участник готовится
                                    return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.PreparingFontStyle, false),
                                                            false));

                                default:
                                    break;
                                }
                            }
                            break;
                            #endregion

                            #region Route1, Route2, Sum
                        case enCellType.Route1:
                        case enCellType.Route2:
                        case enCellType.Sum:
                            if (result.CondFormating.HasValue)
                            {
                                switch (result.CondFormating.Value)
                                {
                                case enCondFormating.StayOnStart:             // Находится на старте
                                    return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.StayOnStartFontStyle, false),
                                                            false));

                                case enCondFormating.JustRecievedResult:             // Только что полученный результат
                                    return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.JustRecievedResultFontStyle, false),
                                                            false));

                                case enCondFormating.Preparing:             // Участник готовится
                                    break;

                                default:
                                    break;
                                }
                            }
                            break;
                            #endregion

                        default:
                            break;
                        }

                        if (Member.Place.HasValue && Member.Place > 0 && Member.Place <= MembersFromQualif)
                        {       // Участник проходит в следуюущий тур
                            return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.NextRoundMembersCountFontStyle, false),
                                                    false));
                        }
                        break;
                        #endregion

                        #region OneEighthFinal, QuaterFinal, SemiFinal, Final
                    case enRounds.OneEighthFinal:
                    case enRounds.QuaterFinal:
                    case enRounds.SemiFinal:
                    case enRounds.Final:
                        switch (DestColumnType)
                        {
                            #region StartNumber, SurnameAndName
                        case enCellType.StartNumber:
                        case enCellType.SurnameAndName:
                            break;
                            #endregion

                            #region Route1, Route2, Sum
                        case enCellType.Route1:
                        case enCellType.Route2:
                        case enCellType.Sum:
                            if (result.CondFormating.HasValue)
                            {
                                switch (result.CondFormating.Value)
                                {
                                case enCondFormating.StayOnStart:             // Находится на старте
                                    return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.StayOnStartFontStyle, false),
                                                            false));

                                case enCondFormating.JustRecievedResult:    // Только что полученный результат
                                case enCondFormating.Preparing:             // Участник готовится
                                    break;

                                default:
                                    break;
                                }
                            }
                            break;
                            #endregion

                        default:
                            break;
                        }
                        break;
                        #endregion
                    }
                }
            }

            if (res.IsEmpty)
            {
                PlainStyleSetted = true;
            }
            return(res.MixWithOther(new CConverterResult(DBManagerApp.m_AppSettings.m_Settings.PlainResultsFontStyle, true),
                                    false));
        }
Ejemplo n.º 2
0
 public OneCellInterior(enCellType CellType)
 {
     m_CellType = CellType;
 }
        public override object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            enCellType DestColumnType = parameter == null ? enCellType.None : (enCellType)parameter;

            CResult result = values[0] as CResult;

            if (values.Length == 4)
            {
                if (result == null || !(values[1] is byte) || !(values[2] is int) || !(values[3] is int))
                {
                    if (result != null && result.CondFormating.HasValue && (values[1] is byte) && values[3] is int)
                    {                           // Возможно участник стоит на старте
                        lock (DBManagerApp.m_AppSettings.m_SettigsSyncObj)
                        {
                            if (result.CondFormating.Value == enCondFormating.StayOnStart &&
                                DestColumnType != enCellType.StartNumber &&
                                DestColumnType != enCellType.SurnameAndName)
                            {
                                return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.StayOnStartFontStyle, false));
                            }
                        }
                    }
                    else
                    {
                        return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.PlainResultsFontStyle, true));
                    }
                }
            }
            else if (values.Length == 2)
            {
                if (result == null || !(values[1] is byte))
                {
                    return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.PlainResultsFontStyle, true));
                }
            }
            else
            {
                return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.PlainResultsFontStyle, true));
            }

            enRounds Round = (enRounds)((byte)values[1]);

            if (!(result == null || result.CondFormating == null))
            {
                lock (DBManagerApp.m_AppSettings.m_SettigsSyncObj)
                {
                    switch (result.CondFormating.Value)
                    {
                    case enCondFormating.StayOnStart:                             // Находится на старте
                        switch (DestColumnType)
                        {
                        case enCellType.StartNumber:
                        case enCellType.SurnameAndName:
                            if (Round == enRounds.Qualif || Round == enRounds.Qualif2)
                            {
                                return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.InvitedToStartFontStyle, false));
                            }
                            break;

                        case enCellType.None:
                            return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.StayOnStartFontStyle, false));

                        default:
                            break;
                        }
                        break;

                    case enCondFormating.JustRecievedResult:                             // Только что полученный результат
                        if (Round == enRounds.Qualif ||
                            Round == enRounds.Qualif2 ||
                            (Round > enRounds.Qualif2 && Round <= enRounds.Final && result.ResultColumnNumber == enResultColumnNumber.Sum))
                        {                                       // Тут подсветка не нужна
                            break;
                        }
                        else
                        {
                            return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.JustRecievedResultFontStyle, false));
                        }

                    case enCondFormating.Preparing:                             // Участник готовится
                        if (Round == enRounds.Qualif || Round == enRounds.Qualif2)
                        {
                            switch (DestColumnType)
                            {
                            case enCellType.StartNumber:
                            case enCellType.SurnameAndName:
                                return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.PreparingFontStyle, false));

                            default:
                                break;
                            }
                        }
                        break;

                    default:
                        break;
                    }
                }
            }

            if (values.Length == 4)
            {
                int RoundPlace        = values[2] is int?(int)values[2] : 0;
                int MembersFromQualif = values[3] is int?(int)values[3] : 0;
                if (RoundPlace > 0 && RoundPlace <= MembersFromQualif)
                {                       // Участник проходит в следуюущий тур
                    return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.NextRoundMembersCountFontStyle, false));
                }
                else
                {
                    return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.PlainResultsFontStyle, true));
                }
            }
            else
            {
                return(ConvResultVal(DBManagerApp.m_AppSettings.m_Settings.PlainResultsFontStyle, true));
            }
        }
Ejemplo n.º 4
0
        // CTOR
        public stCell(Vector3    cellPosition,
				 enCellDir  cellDirection,
				 enCellType cellType)
        {
            this.CellPosition  = cellPosition;
                this.CellDirection = cellDirection;
                this.CellType 	= cellType;
                this.CellTheme  = csTempleRun.enCellTheme.Stone;

                this.NeighbourN = null;
                this.NeighbourS = null;
                this.NeighbourE = null;
                this.NeighbourW = null;
        }